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.

[参考译文] CCS/MSP430G2211:可以#39;不使用更高版本的CCS和编译器-浮点数学运算被炸毁

Guru**** 2606725 points


请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/tools/code-composer-studio-group/ccs/f/code-composer-studio-forum/631914/ccs-msp430g2211-can-t-use-later-versions-of-ccs-and-compiler---floating-point-math-blew-up

部件号:MSP430G2211

工具/软件:Code Composer Studio

多年来,我一直在笔记本电脑和台式计算机上运行5.1 Studio版本:带编译器4.0 的.0.0.9万。  我的桌面最近死机了,所以我第一次尝试加载最新版本的CCS v7。  当我把它开起来时,我很失望地发现那种恩典已经被放弃了。  我对所有项目都使用了Grace,并希望继续。  在在线参考资料中的某个地方,我发现CCS 6.3 是最后一个支持Grace的人。  这是不正确的,因为有某种错误。  我终于找到了一个版本6.2 (如果我记错了),它能很好地工作。  当我去构建我的一个项目时,我收到一个错误,说.text不适合。  现在,这个在v 4.0 0编译器下构建的项目是1684字节,当然,它适合我的微控制器的2K ROM。  使用编译器4.4 的CCS 6下,我认为它超过了5000 字节!  该项目使用浮点数学的单线实现PID。  不忙的是,当我评论这条线时,代码是合适的,但当然是无用的。  经过大量的努力-我甚至不记得我遇到的所有问题-我又回到了新的Windows 10笔记本电脑上的CCS 5和编译器4。 因此,我终于有了一个即使不受支持也能正常工作的系统,但这是一个令人沮丧和失望的体验。

我很想知道为什么编译器中的浮点数学计算结果这么差,以及这是否在更高版本中得到了纠正。  BTW更改编译器优化设置不会执行任何操作。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    我怀疑您遇到的问题与 本主题中讨论的问题相同。  该线程中的编译器是C2000,而不是MSP430。  但我认为同样的基本解释也适用。  库中的浮点数学代码经历了重大的变化,而增加的代码大小是不幸的结果之一。

    谢谢,此致,

    -George

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    我的最后一个帖子并不完全错。  同时,这也不是导致代码大小增加的可能原因。

    您可能在MSP430编译器版本4.0 .0中使用COFF ABI。  在COFF ABI中,类型DOUBLE为32位。  在较新的EABI中,类型double为64位。  特别是,64位操作的RTS功能更大。  在MSP430编译器的更高版本中,COFF ABI不再可用,仅EABI可用。  因此,实际上,您只能通过更改编译器版本,从32位浮点更改为64位浮点。

    很抱歉我没有早点意识到这一点。

    谢谢,此致,

    -George

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    感谢您的回复。 我正在使用类型float (单精度)。 我有一个且只有一个此类型的变量;其他类型为int和unsigned int。