通过近一周的移植,uC/OS-II终于在开发板上正常跑起来了,小LED灯以5Hz的闪烁,是那么的耀眼,那么美丽……
Cortex-M4也是在Arm7构架上升级的产品,其指令集兼容Cortex-M3。因此,从理论上说,Cortex-M3的uC/OS-II的port文件可以直接用于LM4F232上,当然,我也是这样做。
我使用的是LM3S8962上面的成功移植案例,在Keil IDE开发环境下,编译成功的。LED灯以5Hz的频率闪烁
移植才是主要的工作任务,因此,只运行了两个任务,一个是taskCreat,一个是taskLed,如下图所示:
在感叹之后,便是近一周以来不断的学习,不断的实践,不断的再学习,不断的再实践的过程——有点像马哲课上老师说的了,不要拍砖啊~~
近一周的调试,问题肯定是有的,主要是水平偏低才造成的。我也不要面子,以我的近一周的付出,希望为了广大网友换来节省宝贵的时间。
LM4F232是支持浮点运行的,而程序默认情况是不开启,在Keil 4.22a里可以通过选项卡将其禁用,就可以直接使用Cortex-M3的port了。
但是,如果让uC/OS-II支持浮点运算,那么就必须更改uC/OS-II的port文件,即重写OSTaskStkInit函数,添加对浮点堆栈处理, FPSCR,S15~S0,72个字节压栈,还有S31~S16,64字节压栈。并修改PendSV中断,加入浮点寄存器31~S16的压栈和出栈处理。
(引自http://www.deyisupport.com/question_answer/w/faq/275.aspx)
我出现错误就在于我使用了IAR 编译环境,未将FPU禁用,所以一启动就进入了FaultISR,而我一直以为是我移植的问题,因此,花耗了大量的时间去研究uC/OS-II的移植,嘿嘿,也算是仔细地再学习了一遍邵贝贝老师的书吧~~
附:文中图片来源http://www.deyisupport.com/question_answer/w/faq/275.aspx感谢其帖主:JSW-Token。
最后感谢EEWORLD论坛提供开发板,感谢网友若惕提供底层驱动~~
[
本帖最后由 jobszheng5 于 2012-5-21 00:16 编辑 ]