我将脚本环境与 XDS560v2调试器结合使用。 我将一个程序加载到 RAM H0区域、以读取 L0区域并将其从器件传输出去。 我加载程序、运行不涉及传输的所有代码(在设定的断点处停止)、我暂停 CPU 并让 XDS560v2写入 L0区域、然后运行代码的其余部分。 但是、一旦我允许 CPU 运行代码来从器件上传输数据、该区域中的一些地址总是被修改为相同的错误值(特别是0x8856地址)。 我让调试器在运行所有代码后读回整个区域、并验证这些地址是否已更改。
这是使用 XDS560的结果吗?
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.
我将脚本环境与 XDS560v2调试器结合使用。 我将一个程序加载到 RAM H0区域、以读取 L0区域并将其从器件传输出去。 我加载程序、运行不涉及传输的所有代码(在设定的断点处停止)、我暂停 CPU 并让 XDS560v2写入 L0区域、然后运行代码的其余部分。 但是、一旦我允许 CPU 运行代码来从器件上传输数据、该区域中的一些地址总是被修改为相同的错误值(特别是0x8856地址)。 我让调试器在运行所有代码后读回整个区域、并验证这些地址是否已更改。
这是使用 XDS560的结果吗?
感谢您访问 E2E 论坛。
您能建议您在0x8856处看到什么值吗?
如果您看到0x7625、这是 ESTOP0指令的操作码、CCS 放置该操作码来创建 SW 断点。 一旦您准备好导出数据、如果清除断点、它将在您将该指令扫描出来之前从存储器中删除该指令。
另一种可能是堆栈也位于 L0中、您可以检查链接器文件(.cmd)以查看堆栈的放置位置。 通常情况下、它位于 M0或 M1中、但检查它不会损坏。 您可以根据内存可用性对其进行重新定位。
请告诉我以上内容、我们可以根据需要进行调试。
最棒的
Matthew