[开发工具] 大家使用IAR编译STM32系列工程都使用优化功能吗?

[复制链接]
4964|13
 楼主| jessemok 发表于 2008-2-16 17:19 | 显示全部楼层 |阅读模式
最近发现一个问题,使用IAR的编译优化的时候,对采样数据有很大的影响。

现在做的这个项目使用STM32101 64K的片子,程序到47K了,但还没有做完,于是想试下IAR4.41的优化功能,选择High(Maximun Optimization),编译出来有
31K多,心想这下不愁没空间。但是一运行程序,采样数据跳动很大,计算出来的值完全不能满足精度要求,于是把优化去掉,选择None(Best debug support),采样值跳动不厉害了,计算出来的值大概在+-0.1之间跳动,可以满足精度要求。

大家是否也碰到过同样的问题?
香水城 发表于 2008-2-16 17:58 | 显示全部楼层

怀疑你在采样过程中使用了软件延时,导致优化后时序失调

硬件的特性不可能因为程序的优化与否而产生变化。
 楼主| jessemok 发表于 2008-2-20 12:22 | 显示全部楼层

没有使用延时

没有使用延时,只是使用定时器来采样。

硬件的特性不可能因为程序的优化与否而产生变化。
这一点我也同意,可能是程序优化后不稳定吧。哪里不稳定,我也不知道
flowingray 发表于 2008-2-20 14:16 | 显示全部楼层

Re

只能跟一下采样部分的代码,看是哪里被优化掉了。
或者不要一下子升到High,可以一点点地把优化级别升上去,看什么时候出问题,然后对比手册里不同优化级别之间的区别,判断问题所在。
americ 发表于 2008-2-20 17:00 | 显示全部楼层

当然要选择优化

例如 inLine等。

都是根据需要设置的。

认真看一下生成的汇编,分析一下即可!



hwashing 发表于 2008-2-22 18:29 | 显示全部楼层

尽量不要使用优化

使用了优化就把小命交给IAR的link工具了
我从来不敢用优化。
hotpower 发表于 2008-2-22 18:47 | 显示全部楼层

哈哈~~~没听说过不敢优化的~~~

ATmega32L 发表于 2008-2-22 20:27 | 显示全部楼层

从来就是用最高优化

从来就是用最高优化
ijk 发表于 2008-2-23 16:43 | 显示全部楼层

根据需要进行优化

  一般我在项目开始时不优化或者低级别优化,在项目后期会使用中级别优化
kgp0213 发表于 2008-11-21 15:52 | 显示全部楼层

肯定部分程序被优化掉了

bear1 发表于 2014-12-3 17:42 | 显示全部楼层
楼主,解决了吗?找到最终原因了吗?
gotofly21 发表于 2014-12-7 13:05 | 显示全部楼层
从来就是用最高优化   size和speed  ,size不行就speed ,speed不行就size  ,感觉size更快些
您需要登录后才可以回帖 登录 | 注册

本版积分规则

10

主题

91

帖子

2

粉丝
快速回复 在线客服 返回列表 返回顶部