magnbudie 发表于 2015-1-14 13:33:10

采用stm32cubemx生成freertos的bug分析




magnbudie 发表于 2015-1-14 13:34:00

如图中所示,设置为1000的时候没有问题。

magnbudie 发表于 2015-1-14 13:35:38

magnbudie 发表于 2015-1-14 13:34
如图中所示,设置为1000的时候没有问题。

编译后,没有问题。

magnbudie 发表于 2015-1-14 13:36:27

当把频率改为10000时候。编译后会出现除数为零的错误。

magnbudie 发表于 2015-1-14 13:45:17

magnbudie 发表于 2015-1-14 13:36
当把频率改为10000时候。编译后会出现除数为零的错误。

错误如图所示!

品读记忆 发表于 2015-1-14 13:53:31

上生成的错误代码

magnbudie 发表于 2015-1-14 13:58:23

品读记忆 发表于 2015-1-14 13:53
上生成的错误代码

按照ST官方研讨会的说法,代码生成成功率很高的。这种错误怎么能有呢?附件为.ico配置文件

magnbudie 发表于 2015-1-14 14:02:08

我把被注释的语句注释替换后,问题消失。但是反观ST的代码,预编译时候,已经进行过强制转换,按道理没错啊,不应该出现这样的警告的,求原因

cxtarm 发表于 2015-1-14 14:25:25

设置成10000?楼主太高估单片机的能力了。你设置成10000,就是要设置成100us进一次tick中断,OS进行一次任务调度,先不说软件的问题,MCU硬件能处理得了吗?
再看软件的问题。ST的代码是做强制类型转换了,没错,但是它转换成的是无符号整型数。那个宏定义展开后就成 1000 / 10000 了,其结果肯定是0了。这个结果再用来分频滴答时钟自然会出现除数为零的错误。

cxtarm 发表于 2015-1-14 14:28:46

另外,你把值改成0.1后,虽然编译没有问题,但是程序能正常运行吗?
页: [1] 2
查看完整版本: 采用stm32cubemx生成freertos的bug分析