数据表指出 、默认情况下禁用 FPU、并需要以下代码来启用 FPU 指令。 为了执行 float 指令语法、当(float)指令看起来调用 eabi.lib 的一部分时、CCS 编译器如何以及为什么不抛出异常? 遇到编译的 float 指令并且 CCS 调试在 float 变量中显示浮点十进制时、运行时应用程序如何不会对 MCU 产生故障?
3.1.5.7启用 FPU
FPU 复位时被禁用。 必须先启用它、然后才能使用任何浮点指令。 处理器必须处于特权模式才能读取和写入协处理器访问控制(CPAC)寄存器。 下面的示例代码序列在特权和用户模式下启用 FPU。
;CPACR 位于地址0xE000ED88 LDR.W R0,=0xE000ED88 ;读取 CPACR LDR R1,[R0] ;设置位20-23以启用 CP10和 CP11协处理器 ORR R1、R1、#(0xF <<20) ;将修改后的值写回 CPACR STR R1,[R0]; 等待存储完成 DSB ;现在已启用 FPU ISB