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.

[参考译文] 编译器/MSP430FR5969:在中断中内联函数上启用优化器时,执行不正确

Guru**** 2573695 points


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

https://e2e.ti.com/support/tools/code-composer-studio-group/ccs/f/code-composer-studio-forum/596451/compiler-msp430fr5969-incorrect-execution-when-optimizer-is-enable-on-inline-function-in-interrupt

部件号:MSP430FR5969

工具/软件:TI C/C++编译器

当我在启用优化器的情况下编译时,从ISR传递到内联函数的变量被错误地假定为0。  

此问题出现在USSCII2C.CPP中的第175行:

否则,如果(isWrInt)

  UCB0TXBUF = curCmd;

即使isWriInt == 1,也不执行以下行。 如果我关闭优化器,它就可以工作。

此处代码:  

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

    您的项目使用MSP430 GCC编译器版本4.6 .3构建。  这是一个相对较旧的编译器。  升级是否实用?  请使用Code Composer Studio中的Apps Center功能来完成此操作。  我不确定升级是否能解决您的特定问题,但我认为您的机会不错。

    谢谢,此致,

    -George