开发工具自己提供了在定点DSP上进行浮点运算的子程序. 比如下面的程序:
float c = 0.5, d = 0.25, e;
e = c+d;
那个浮点加法开发工具是使用单独的一个子函数去实现的.其他的*,/,-都有各自的子程序.而如果是整数运算,直接就是一条指令ADD或MPY,或SUB就可以搞定的,(貌似TI的DSP没有除法指令?).
至于溢出,建议你写一个类似上面的小程序,然后使用MIXED SOURCE模式,研究一下显示的汇编程序应该可以搞清楚. 对32位的定点数,在内存里可以用4个字节存贮,但最终运算的时候还是要把数读到16位的寄存器里,那至少要两个寄存器才能表示一个32位的浮点数,也许溢出就发生在这个地方.
在定点DSP里进行浮点运算, 会消耗很多的处理能力, 尽量别用.
|