发新帖我要提问
12
返回列表
打印
[开发工具]

IAR 4.42A For STM32 的危险 Bug !

[复制链接]
楼主: seawwh
手机看帖
扫描二维码
随时随地手机跟帖
21

有Bug不可怕,可怕的是新版本的软件更正了Bug,但你没有更

目前还没有人敢说可以设计出没有Bug的软件,因此软件是需要不断地维护的,作为软件的用户也应该承担报告Bug和不断更新软件版本的义务。

使用特权

评论回复
22
老狼| | 2009-2-3 19:49 | 只看该作者

这种bug并不可怕!

只要在编程的时候注意一点,就不会出现,复合运算,尽量用括号,建议多看看这方面的资料!MISRA工业标准C语言编程规范,还有 高质量C++编程指南(林锐),再就是自己总结了!没有不出错的编译器,没有不出错的程序员,调试能力远比编程能力更重要!

使用特权

评论回复
23
seawwh|  楼主 | 2009-2-4 17:27 | 只看该作者

关于软件补丁的咨询


1. IAR 针对4.42A 出了关于此Bug 的补丁吗? 哪位同行发现了请通报我一下。
2. 经测试5.02版确实改正了此Bug, 4.42A到5.02的升级是免费的吗?

使用特权

评论回复
24
leebai_001| | 2009-2-4 18:01 | 只看该作者

这是个问题!!!

对于STM32,现在应该都是C代码了吧,用汇编语言编写代码还具有可操作性吗?
一旦编译器出现问题,将是灾难性的。
各位有什么方法可以避免类似问题的出现呢?

使用特权

评论回复
25
香水城| | 2009-2-4 19:05 | 只看该作者

避免类似问题出现的唯一办法是尽量用最简单的语法写程序

并在测试过程中,尽可能地提高程序测试的覆盖率。

当然,编译器是个软件,你自己的程序也是个软件,如果谁能设计出没有Bug的软件,或者有有效的办法设计出没有Bug的软件,那这个人、这些人、这个公司或这些公司将创造历史。

使用特权

评论回复
26
wangtezi| | 2009-2-5 10:35 | 只看该作者

4.42A版和V5.2版有什么区别呀?4.42A下的软件能直接用到V5.2么?

使用特权

评论回复
27
colaring| | 2009-2-5 15:02 | 只看该作者

天哪,这bug太毒了!

使用特权

评论回复
28
wlq_9| | 2009-2-5 15:50 | 只看该作者

ARM7

上测试,IAR4.42无问题.
谁有STM32的例程可以发一个上来,我也测试下.

使用特权

评论回复
29
seawwh|  楼主 | 2009-2-5 20:00 | 只看该作者

附件是测试Bug的代码,你可以试一下

使用特权

评论回复
30
wlq_9| | 2009-2-5 20:49 | 只看该作者

实践

证明:
加volatile搞定.
如果称之为BUG,似乎并不合适.只能说对IAR的优化规则掌握的不好.

使用特权

评论回复
31
wlq_9| | 2009-2-5 20:51 | 只看该作者

香版

这个裤头也太好得了吧

使用特权

评论回复
32
唐靖丰| | 2009-2-6 03:58 | 只看该作者

IAR的确会出一些意想不到的问题。

好在仿真的手段好。STLINK也便宜,否则就真的麻烦了。

使用特权

评论回复
33
zchong| | 2009-2-6 08:15 | 只看该作者

to 30楼 wlq_9

请问有没有讲IAR编译器优化规则的文档?

使用特权

评论回复
34
nylyt| | 2009-2-8 23:06 | 只看该作者

关键是自己调试要细心

此问题我遇到过在项目中,比较隐蔽,解决方法就是加括号。在移位操作的时候或者加局部变量。好在STM中的RAM够多

使用特权

评论回复
35
老狼| | 2009-2-9 00:26 | 只看该作者

加括号

    我在前面已经说过了!可是这哥们儿就是说不好用!我估计是这哥们儿加器件补丁的时候,和我上次一样,出了问题,我最开始也使用4.42+器件补丁的方式,调试stm32f103zet6,发现有问题,同样的程序,在stm32f103bvt6下面,就没问题。升级包是在万历网站下载的,看到zet6的例程有5.2版本的,自然就去下一个新的版本了,从发现有问题,到解决问题,就是半天的功夫(包括下载软件)。这种事情,是经常事儿!调试多了,解决问题的方法就多了!当然,我也有掉沟里的时候,(说说也无妨,N年前,那个franc C51(好像叫这个,就是keil c的前身),当时,我用这个编译器,调试一个汇编语言程序,程序调试的时候,没有发现问题,但是客户反映,有的时候,用一段时间,就乱了,而且,出现的几率很少,我花了一个星期,也没找到毛病,后来,又找了一个大哥帮我调,看了一天,也没找到毛病,后来烦了,随手加了一段,开机初始化,所有ram全清零,好了!我这个郁闷呀。

    再说说加括号的事儿,我向来不相信优先级!加括号是最好的选择。这样做有道理么?没道理,也有道理!c语言好像有15个优先级,我记不住!以前,也记过,但是没几天就忘了!以后干脆就用括号!(这样讲,说明我很老实,不玩虚的)
    后来,我发现有一本书 c陷阱与缺陷,里面说,也可以这样干!这本书的确很好,建议大家看看!这本书,还有一个让我高兴的地方,就是提到,避免使用指针,提倡使用程序库,看来大师和我的想法也差不多。我前面还提到过两本书,也都不错!强烈建议大家看看,有好处的。
    也希望大家有啥好书,和我一起分享!

使用特权

评论回复
36
jueju300| | 2009-2-12 10:55 | 只看该作者

..

正要对STM的SDIO开工 路过看看
林锐的书一直束之高阁
还有更多的书被束之高阁
被自己的书吓晕了~~~

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则