那个是ucOS特有的bug...
CM4有十多个常规寄存器 还有好多浮点寄存器...好像是30多个...
ucOS在做任务切换的时候 需要保存寄存器...
KEIL编译器在用不到浮点寄存器的时候会把浮点寄存器当常规寄存器用来加快速度...
也就是函数从第5个参数开始会放在浮点寄存器中...
而ucOS只保留了常规寄存器....
所以就出错误了...
解决方法是
1.加入浮点寄存器压栈出栈...
2.更新ucOS...
3.换FreeRTOS 7.1
只有第3个是靠谱的...
因为ucOS你很难找到干净的版本...大多数都是各种"高手"修改的面目全非的版本....
|