hj007 发表于 2018-11-15 12:47

keil编译uCOS-III必须选择Micro LIB才能跑起来,哪位大神遇到...

最近一直在学习uCOS-III,移植了一个工程(基于STM32F429IG),刚开始跑不起来,到网上查了很久,有人说uCOS-III官方版本不支持带浮点处理的MCU(原因是浮点寄存器出入栈的问题,具体还不是很了解),我把浮点处理关闭了也不行;有人说不要选择Micro Lib,我本来就没选,可是我选择microlib后竟然跑起来了。请问问题出在哪里?下面是我建工程过程: 这里选择了keil的manage run-time environment进行配置,选择了STM32CubeMX和RTOS。 生成的工程就是这样的移植部分(其实keil已经移植好了99%了): 这是我的任务: 开始任务:

hj007 发表于 2018-11-15 21:34

最新发现,不是选择micro lib的原因,我将编译优化等级提高就能跑了。
未优化时生产的代码空间如下:
Program Size: Code=47102 RO-data=1254 RW-data=192 ZI-data=18128

这里有什么坑吗?

另外附上我的工程

airwill 发表于 2018-11-18 21:41

编译优化器, 对代码执行是有影响的, 不过我之前遇到的情况都是低优化等级能跑, 而高优化会有问题

这是编译器的问题, 这是个新特例, 看来要多个看法了.

〖SNOW〗 发表于 2018-11-26 15:10

代码优化后又能跑起来,90%的可能是你的任务栈设的太小了,你设大点应该就不用优化了。

狮子歌歌 发表于 2018-12-14 11:32

微库和优化都可以减少程序占用空间,所以应该是你给任务分配的空间不足引起的
页: [1]
查看完整版本: keil编译uCOS-III必须选择Micro LIB才能跑起来,哪位大神遇到...