uCOS-II无法启动多任务,否则死机(硬件错误死循环)(2012-08-06 23:47:37)
自己的问题解决方法: 出现上述问题,包括其他类似死机的问题时,请先检查堆栈是否太小,这是最常出现的问题! #define Task_StkSize 以上为任务堆栈大小宏定义,注意堆栈的定义变量是OS_STK,在<OS_CPU.h>中定义,注意此处定义的数量大小并不一定是字节数,一般是与cpu的位宽相对应。因为是主要用来保存cpu的寄存器数据用的。 typedef unsigned int 例如在32位机:int是4 byte 在16位机:int是2 byte <以下来自百度知道> ucos无法运行多个任务的原因,请检查一下原因: 存在4个问题,修改就可以了 由于ST的固件版本一直在更新,所以上面的代码仅作参考,只要明白代码所要表达的意思即可。 在firmware 版本v3.5的函数中实现的代码如下: void { } (2)printf()是DOS服务,不可重入,必须改成可重入的函数,如PC_DispStr()函数,或者写为 这个一定要注意。 大部分都是错在这个地方。调用系统函数的时候一定要搞清楚所调用的函数的功能和特性。 (3)另外OSTimeDlyHMSM(0,0,0,3000)是不允许的,要写为OSTimeDlyHMSM(0,0,3,0); 低级错误,不允许出现! (4)因为prio=10,20,30,所以OS_CFG.H中要至少定义 在os配置中注意设置。 |
|