复位中断 Reset_Handler 需前置 FPU 汇编,写入 CPACR 开启 CP10/CP11 协处理器,补齐 DSB、ISB 同步屏障,缺失则硬件 FPU 未激活,浮点输出 NaN、运算错乱。
检查堆栈 8 字节对齐,FPU 浮点寄存器压栈要求对齐,启动文件栈空间不足会造成寄存器溢出、数值篡改。
向量表需弱定义 FPU_IRQHandler,无浮点异常入口会持续报错;RTOS 工程缺少浮点上下文保存,任务切换浮点数据损坏。
确认启动文件与编译 ABI 匹配,工程设 hard 浮点,同步定义__FPU_PRESENT、__FPU_USED 宏,否则软硬浮点混用导致结果异常
|