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

2019-07-28 19:14发布

你好,我调试程序时发现如下两行代码生成的文件大小有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左右),大家一般是如何处理的呢?
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
8条回答
dirtwillfly
1楼-- · 2019-07-29 00:41
不清楚你用的那个型号的msp430。
msp430和51单片机一样,要尽量避免直接进行大量的浮点数计算的。
有些msp430带硬件乘法器,如果有硬件乘法器的话尽量使用硬件乘法器进行浮点数计算吧。尽量使用对msp430优化过的数学库(ti官网有库文件)。
另外,如果对这两个行代码的计算时间没有太大限制的话,可以尝试调整编译时的优化选项。

Unshining
2楼-- · 2019-07-29 02:25
 精彩回答 2  元偷偷看……
myqq12
3楼-- · 2019-07-29 05:25
dirtwillfly 发表于 2015-1-21 22:14
不清楚你用的那个型号的msp430。
msp430和51单片机一样,要尽量避免直接进行大量的浮点数计算的。
有些msp4 ...

表情里面没有大拇指,哈哈,确实,我一般都是用最高优化,然后选择平衡,不过副作用就是有时候调试的时候有的地方断点进不去,
mmbs
4楼-- · 2019-07-29 08:16
这个还真的没有注意过呢。
as564335sa
5楼-- · 2019-07-29 11:27
myqq12 发表于 2015-1-22 11:18
表情里面没有大拇指,哈哈,确实,我一般都是用最高优化,然后选择平衡,不过副作用就是有时候调试的时候 ...

断点进不去是被优化掉了吧
myqq12
6楼-- · 2019-07-29 15:48
as564335sa 发表于 2015-1-23 10:30
断点进不去是被优化掉了吧

是的

一周热门 更多>