我用STM32CubeMX图形工具创建一个工程,然后将原子哥的uCOSiii移植过去,当MicroLIB开启的时候运行正常,而关闭MicroLIB后则停止在OSStart函数里。
跟踪了一下,发现进入os_cpu_a.asm中的OSStartHighRdy函数时进入死循环,网上查了一些资料,一般出现这种问题都是PendSV_Handler没有正确开启或名字错误。
检查了一下都正常的,麻烦有经验的同学指导一下是什么问题,万分感谢!
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
再次调试发现OSStartHighRdy函数正常执行,没有问题,PendSV_Handler也能正常执行,然而执行到最后一条BX LR时,LR的值为0xFFFFFFED,然后PC指针跳到0x00000000处开始运行,这样正常吗?
这个是你的main函数,我下的文件没有错吧,
OSInit(&err);
OSTaskCreate (/*创建一个任务*/);
OSStart(&err);
至少需要这些流程,ucos才会正常调度的。
我好奇的是我的姿势一般和标准的啊。
可以分享下正确的姿势吗?
hhlh2l@163.com
一周热门 更多>