打印

MSP430下C语言代码中常量计算导致代码体积变化的问题

[复制链接]
1499|8
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
gyj163nt|  楼主 | 2015-1-21 16:37 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
你好,我调试程序时发现如下两行代码生成的文件大小有2K左右的区别, MSP430编译器不会先把常量计算编译时先计算好,在链接时字节使用吗?  记的以前用keil C51时如下2行是没有问题的。

     //注意:下面2行代码导致的代码体积变化明显
      //ucRow = (unsigned char)(sin(usI*3.14159*4/127)*20+32);   
      ucRow = (unsigned char)(sin(usI*0.0989478)*20+32);   

多谢大家了。我用的MSP430G2553,16K空间有点紧张了。

另外发现使用三角函数也会使代码体积剧增(10K左右),大家一般是如何处理的呢?

相关帖子

沙发
dirtwillfly| | 2015-1-21 22:14 | 只看该作者
不清楚你用的那个型号的msp430。
msp430和51单片机一样,要尽量避免直接进行大量的浮点数计算的。
有些msp430带硬件乘法器,如果有硬件乘法器的话尽量使用硬件乘法器进行浮点数计算吧。尽量使用对msp430优化过的数学库(ti官网有库文件)。
另外,如果对这两个行代码的计算时间没有太大限制的话,可以尝试调整编译时的优化选项。

使用特权

评论回复
板凳
Unshining| | 2015-1-21 22:29 | 只看该作者
LZ如果打开优化呢?

使用特权

评论回复
地板
myqq12| | 2015-1-22 11:18 | 只看该作者
dirtwillfly 发表于 2015-1-21 22:14
不清楚你用的那个型号的msp430。
msp430和51单片机一样,要尽量避免直接进行大量的浮点数计算的。
有些msp4 ...

表情里面没有大拇指,哈哈,确实,我一般都是用最高优化,然后选择平衡,不过副作用就是有时候调试的时候有的地方断点进不去,

使用特权

评论回复
5
mmbs| | 2015-1-22 23:46 | 只看该作者
这个还真的没有注意过呢。

使用特权

评论回复
6
as564335sa| | 2015-1-23 10:30 | 只看该作者
myqq12 发表于 2015-1-22 11:18
表情里面没有大拇指,哈哈,确实,我一般都是用最高优化,然后选择平衡,不过副作用就是有时候调试的时候 ...

断点进不去是被优化掉了吧

使用特权

评论回复
7
myqq12| | 2015-1-23 16:21 | 只看该作者
as564335sa 发表于 2015-1-23 10:30
断点进不去是被优化掉了吧

是的

使用特权

评论回复
8
angerbird| | 2015-1-25 20:59 | 只看该作者
这个很明显就是跟算法相关系的啊

使用特权

评论回复
9
angerbird| | 2015-1-25 21:00 | 只看该作者
可以将那个算法拆开,一步一步的往下计算的,这样其运行起来生产的文件大小肯定是远远小于2K的。

使用特权

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

本版积分规则

2

主题

2

帖子

0

粉丝