启用MicroLIB uCOSIII工作正常,关闭MicroLIB后执行OSStart进入HardFault_Handler

2019-07-21 02:28发布

我用STM32CubeMX图形工具创建一个工程,然后将原子哥的uCOSiii移植过去,当MicroLIB开启的时候运行正常,而关闭MicroLIB后则停止在OSStart函数里。

跟踪了一下,发现进入os_cpu_a.asm中的OSStartHighRdy函数时进入死循环,网上查了一些资料,一般出现这种问题都是PendSV_Handler没有正确开启或名字错误。

检查了一下都正常的,麻烦有经验的同学指导一下是什么问题,万分感谢!
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
6条回答
tw919
1楼-- · 2019-07-21 05:32
 精彩回答 2  元偷偷看……
tw919
2楼-- · 2019-07-21 11:11
调试进度更新:

再次调试发现OSStartHighRdy函数正常执行,没有问题,PendSV_Handler也能正常执行,然而执行到最后一条BX LR时,LR的值为0xFFFFFFED,然后PC指针跳到0x00000000处开始运行,这样正常吗?
正点原子
3楼-- · 2019-07-21 15:12
 精彩回答 2  元偷偷看……
hhlh2l
4楼-- · 2019-07-21 15:38
 精彩回答 2  元偷偷看……
hhlh2l
5楼-- · 2019-07-21 17:13



这个是你的main函数,我下的文件没有错吧,

    OSInit(&err);          
    OSTaskCreate (/*创建一个任务*/);                               
    OSStart(&err);  
至少需要这些流程,ucos才会正常调度的。
hhlh2l
6楼-- · 2019-07-21 19:23
谢谢你的分享。
 我好奇的是我的姿势一般和标准的啊。
 可以分享下正确的姿势吗?
 hhlh2l@163.com

一周热门 更多>