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.

[参考译文] TMS320F2.8377万S:数组中的值错误

Guru**** 2482105 points


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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1089625/tms320f28377s-wrong-values-in-array

部件号:TMS320F2.8377万S

您好,

RAM中的值与pin_code数组定义中写入的常量有何不同?

RAM = 0 0 12 0 0 0 0  

PIN_CODE = 99 23 45 65 34 2

请参阅下面的调试会话:

  

  

如上所示,pin_code数组被声明为const,但我没有const关键字就有同样的行为。 请注意,重置之间总是会发生这种情况,但是如果我重新刷新目标,问题可能会消失,然后在执行下一个(或更多)闪存代码操作后,问题可能会再次出现。 当然,使用相同的代码。

RAM中的值从栈中的地址0x04B1开始:

非常感谢您的支持,我将不胜感激。

此致,

Loic

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

    Loic,

    我认为这里可能会有一些优化,因为这些值不是全局值,可能会有一些循环进入/退出堆栈。

    此外,虽然不直观,但底层汇编代码可能不会在停止的C代码部分初始化这些代码。  您能否找到一个使用其中一个PIN码的代码行,在该处设置BP,然后观察这些值?  我想确认它们在使用时是正确的,然后我们可以了解是否有任何选项可以设置以使其更易读取。

    最佳,

    Matthew

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

    Mattew

    感谢您的快速响应。 我有另一个示例与之前讨论的行为相同。

    在这里,选项卡未按预期初始化:

    然后,在使用时,值仍然错误:

    (这就是为什么我们输入txoem = 1;指令)

    此致,

    Loic

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

    Loic,

    是否可以压缩并附加您的项目,以便我在本地试用并调试问题。  我可能需要加入工具团队,但我想先看看是否可以在我的一侧/HW上进行复制。  

    最佳,

    Matthew

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

    Matthew,您好!

    再次感谢您的快速回复。 您无需在本地试用,因为我们发现了问题!

    我们遇到一些问题的固件通过引导加载程序上载到闪存中,但在闪存写入之前,它没有擦除固件所需的所有扇区。 bootloader擦除闪存扇区C,D,E和F,而固件在最近的固件更新后保留C,D,E,F和NOW G。 然后 ,操作码 或其他东西被改变,导致我们在运行时出现这些奇怪的行为。

    此致,

    Loic