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.

[参考译文] TMS320F28374D:修改代码后不适当的内存写入

Guru**** 2422790 points


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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1200064/tms320f28374d-inappropriate-memory-writing-after-code-modification

器件型号:TMS320F28374D

您好!

我在一个由中断例程调用的函数中添加了几个代码行、在无错误地完成了项目建设并将其上载到目标上之后、当系统运行时、我注意到一个变量在代码上没有写入指令的情况下发生了变化。

我添加的代码行以及我修改的整个函数、不会使用错误更改的变量。 我试图在存储上述变量的存储器区域插入一个观察点以了解更改的原因、似乎 没有写入证据。

是否有解决此异常行为的建议?

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

    您好!

    您查看过映射文件了吗? 你能在 main ()的入口点初始化变量,然后设置观察点吗?

    您可以打开内存窗口并观察我们分步执行代码的内存。

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

    尊敬的 Santosh:

    感谢您的答复。

    我将变量声明为全局变量、在 RAM 段中分配、并在 main 的入口点进行初始化。 我逐步执行代码、一切都正常。 此外、在引入新代码行之后、对上述变量的所有操作都是正确的、但一段时间后、变量更改其值、而不执行明显的操作。 我想说的是、我修改的部分代码对提到的变量不起作用。

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

    您好、Riccardo、

    您是否仅在此变量中看到此不当行为、或者其他变量也会受到影响? 通常、这是堆栈溢出或内存溢出的症状。 您可以查看映射文件、它位于分配给该变量的存储器任一侧。 作为调试步骤、尝试将该变量分配到完全不同的 RAM 部分、是否仍然会出现此行为?

    您可以使用此链接作为调试堆栈损坏和观察点问题的指南。

    https://www.ti.com/lit/an/spra820/spra820.pdf

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

    尊敬的 Santosh:

    我曾尝试调试堆栈损坏、但未发生。 查看映射文件、将变量分配到具有一些可用空间的存储器段中。

    感谢您的支持。

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

    您好、Riccardo、

    是否可以共享映射文件和要声明变量的代码部分? 如果你想私下发送,那么我可以发送朋友请求,然后我们可以脱机交换文件。

    此致、Santosh