本帖最后由 wangzhihai1986 于 2013-11-15 16:36 编辑
网上查了很少有人在STM32F4上开FPU时移植UCOS的,自己动手移植了,来和大家分享交流。
前段时间有些网友给我反映,说开FPU后会有问题,但一直没有时间去看它,今天没事又研究了下,发现开FPU后会进HardFault_Handler中断。
通过仔细的阅读编程手册,最终解决问题。
关键地方说明如下:
一定要开FPU,这样才能编译出浮点指令。
因为使用了ARM DSP_LIB库,所以框起来的要加上。
AND LR, LR, #0xFFFFFFE0
在第一次执行时,切换到带浮点处理。很重要!
ORR LR, LR, #0x04
这行是为了让程序从ISR中返回到任务中时使用PSP堆栈指针。
另外一点,允许访问FPU在此已实现。 |