This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

msp430g2553中math.h问题

Other Parts Discussed in Thread: MSP430G2553

再主程序中调用了#include"math.h"但是使用到是sqrt(),cos(),sin()等都显示错误。错误提示是:10099-D  program will not fit into lnk_msp430g2553.cmd   求专家解答。

  • 这里提示的错误是代码量太大了。

    我不是太清楚标准C的math库中这些函数是如何实现的,但是我估计会有大量的乘法或者除法运算,对于堆栈的要求也很大。而MSP430是没有乘法和除法指令的,只能通过指令模拟,所以会产生大量的代码和Stack。

    建议这样做,cos()和sin()通过查表的方式实现。sqrt()可以通过算法,比如像牛顿迭代法去计算。不过这样需要自己去实现这些函数。

  • 在ccs5.1的库函数里包含有math.h头文件,里面的算法都有,就是在调用的时候出错,点击提示是在ink_msp430g2553.cmd里面的.bss   :{} > RAM     这一句错误,我试过将math.h里的内容重新创建一个.h文件调用,但是还是不行。

  • 重新创建math.h没用的,只是一个头文件而已,源文件又没有修改。

    而且,在编译过程中,math库中没有使用到的函数,编译器不会加到程序中的。问题所在还是这3个函数代码量太大。

  • 刚在LaunchPad for MSP430G2553芯片上验证了一下sqrt(), 可以正常编译运行,没有出现楼主的报错啊

    #include  <msp430g2553.h>

    #include <math.h>

    volatile unsigned int i,j;

    i = 4;

    j = sqrt(i);

  • 重建一个工程,先逐个验证sqrt(),cos(),sin()等正常操作后,在逐步把代码加进去调试