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.

[参考译文] 编译器/TMS320F28377S:CPU 访问错误的变量地址

Guru**** 2482105 points
Other Parts Discussed in Thread: TMS320F28377S

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

https://e2e.ti.com/support/tools/code-composer-studio-group/ccs/f/code-composer-studio-forum/646863/compiler-tms320f28377s-cpu-access-the-wrong-address-for-variables

器件型号:TMS320F28377S

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

你(们)好

          我的一位客户使用 CCSv6.1通过 TMS320F28377S 开发他们的软件平台、编译器版本为 TI v6.4.2。

         现在、他们遇到 了一个问题、即  分配语句的结果错误。

          请查看下面显示问题的图片。

         相同的赋值按顺序执行两次、但可以获得不同的结果。

          汇编语句显示 CPU 访问 AR7寄存器 以获取   第一条语句的 itest 变量地址、

         而访问第二条语句的 AL、以及第二条语句可以获得正确的结果。

        此 itest 变量使用易失性定义、针对速度的优化设置为2、优化级别设置为0。

         但是客户以前版本的软件不会出现这个问题、这个问题发生在代码大小高于某个级别(更多变量和更多函数)之后。

        请帮助您 提供建议、以确定 这一根本原因是什么、 为什么 CPU 仅 对 本陈述进行 AR7访问、以及对其他人进行 AL 访问。

        我将编译器版本升级到 TI v6.4.12、但无法正常工作。

        我检查 RAM 大小分配、没有问题。

       这有点紧急、 感谢您及时 提供反馈来解决此问题

        

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

    你(们)好

            请看一下这个问题、我不知道 为什么变量 itest 值被移入 AR7 (在0x3b3处找到 DP、添加偏移量0x0以获得正确的 itest 值)、然后访问 AL 以设置 ADC[e_V_Bus_P]、它肯定是错误的操作、  这种操作是如何 发生的?

           期待您对此问题的建议/评论。

          

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

    很抱歉耽误你的时间。

    对于包含问题源代码的文件、请发送测试用例、如文章 如何提交编译器测试用例中所述。  这样我就可以重现问题。

    谢谢、此致、

    乔治

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

    要关闭这个上的环路... 我确实通过其他通道收到了测试用例。  我能够证明编译器不是此问题的原因。  在没有我的情况下,对其他可能的原因进行了调查。

    谢谢、此致、

    乔治