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.

利用CCS6.0编译调试TMS320C28346程序,是否能定义双精度浮点数?

Other Parts Discussed in Thread: TMS320C28346

现在需要利用TMS320C28346对数据进行IIR滤波,为了保证计算结果相位准确,计算中系数和中间变量需要使用双精度浮点数。我就想问问CCS6.0中进行调试编译,变量定义为double型是有效的吗?

  • 高性能 32 位 CPU(TMS320C28x)

    – IEEE-754 单精度浮点单元(FPU)

    硬件上有单精度浮点单元

    double有效,但是是软浮点。

  • 谢谢您的回复,我利用sizeof运算符,可以看到float和double 两类型的变量长度一致,都是4个字节,而且调试时也发现二者数据的有效位数是一样的;但是对于long double型变量呢,其字节长度为8,但是数据有效位数和double一样。我不理解这是因为什么,因为可以看到两个long double 变量的地址是相差4(16进制表示),为什么给long double 分配了8个字节的长度,但是数据有效位数没变呢?

  • 以上这个是我在程序调试中定义的三种类型变量,左边是程序中定义的变量值,右边则是程序运行中,通过expression窗口看到的数据值。其中double和float两种变量的数据字长和有效位数一致,而long double的数据分析看来有效位数有8位。这种情况是因为什么呢?到底硬件中有单精度浮点数运算单元对这个变量定义有哪些影响;还是说变量定义可以在CCS中通过参数配置来调整?