你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

采用stm32cubemx生成freertos的bug分析

[复制链接]
magnbudie 提问时间:2015-1-14 13:33 /



收藏 评论19 发布时间:2015-1-14 13:33

举报

19个回答
magnbudie 回答时间:2015-1-14 14:46:53
cxtarm 发表于 2015-1-14 14:38
F4系列的貌似的确可以跑100us。cubemx是ST刚推出来没多久,有BUG正常,自己能找出来解决掉就好了。我不太 ...

其实他的代码风格我挺喜欢的,我挺喜欢用的。
大部分初始化都是通过预编译完成的。我感觉HAL库跟标准库在资源占用方面差别不是很明显。
还有就是他的自带函数都封装的挺好的,以及回调函数,弱定义之类的,都挺好用的,我现在的代码量直线下降。只不过,到现在为止,库函数的介绍一直没有中文版。说好的F1年前支持,也没兑现
cxtarm 回答时间:2015-1-14 14:25:25
设置成10000?楼主太高估单片机的能力了。你设置成10000,就是要设置成100us进一次tick中断,OS进行一次任务调度,先不说软件的问题,MCU硬件能处理得了吗?
再看软件的问题。ST的代码是做强制类型转换了,没错,但是它转换成的是无符号整型数。那个宏定义展开后就成 1000 / 10000 了,其结果肯定是0了。这个结果再用来分频滴答时钟自然会出现除数为零的错误。
magnbudie 回答时间:2015-1-14 14:31:51
cxtarm 发表于 2015-1-14 14:25
设置成10000?楼主太高估单片机的能力了。你设置成10000,就是要设置成100us进一次tick中断,OS进行一次任 ...

多谢分析,怪我没仔细看数据类型。我说明一下,片子是STM32F4,主频180M的 。这样的话,可以确认是STM32cubemx的bug了,如图中我画的第二条红线所示,最大可以设置为32768的。


QQ截图20150114133224.png
magnbudie 回答时间:2015-1-14 13:34:00
如图中所示,设置为1000的时候没有问题。
QQ截图20150114133224.png
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时候。编译后会出现除数为零的错误。

错误如图所示!
QQ截图20150114134432.png
品读记忆 回答时间:2015-1-14 13:53:31
上生成的错误代码
magnbudie 回答时间:2015-1-14 13:58:23

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

JJ.rar

下载

2.2 KB, 下载次数: 22, 下载积分: ST金币 -1

magnbudie 回答时间:2015-1-14 14:02:08
我把被注释的语句注释替换后,问题消失。但是反观ST的代码,预编译时候,已经进行过强制转换,按道理没错啊,不应该出现这样的警告的,求原因
QQ截图20150114140010.png
cxtarm 回答时间:2015-1-14 14:28:46
另外,你把值改成0.1后,虽然编译没有问题,但是程序能正常运行吗?
magnbudie 回答时间:2015-1-14 14:33:05
cxtarm 发表于 2015-1-14 14:28
另外,你把值改成0.1后,虽然编译没有问题,但是程序能正常运行吗?

编译有问题的,8个警告的。整数的话,是得不出小数的
magnbudie 回答时间:2015-1-14 14:33:43
magnbudie 发表于 2015-1-14 14:33
编译有问题的,8个警告的。整数的话,是得不出小数的

所以程序不修改根本没法用
magnbudie 回答时间:2015-1-14 14:34:25
magnbudie 发表于 2015-1-14 14:33
编译有问题的,8个警告的。整数的话,是得不出小数的

不好意思,没仔细看你的问题,改后,程序正常。
cxtarm 回答时间:2015-1-14 14:38:43
magnbudie 发表于 2015-1-14 14:31
多谢分析,怪我没仔细看数据类型。我说明一下,片子是STM32F4,主频180M的 。这样的话,可以确认是STM32c ...

F4系列的貌似的确可以跑100us。cubemx是ST刚推出来没多久,有BUG正常,自己能找出来解决掉就好了。我不太喜欢用这一类东西,生成的代码执行效率不知道怎么样。
12下一页

所属标签

相似问题

关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版