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.

[参考译文] TMS320F28069:控制跳转到 ITRAP

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/724638/tms320f28069-control-jumps-to-itrap

器件型号:TMS320F28069

大家好、

我正在尝试使用 CAN 引导 ROM 在微控制器的 RAM 部分上载内核。 我生成了 CAN 引导 ROM 接受的.txt 文件。 我能够在 CAN msg 0x01上以两个字节的形式接收消息、但从 CAN 引导 ROM 返回 EntryPoint 时、控制器进入陷阱、微控制器被重置、而不是跳转到内核部分

当我尝试调试 CAN 引导 ROM 代码时、它将入口点显示为0x0000C45D、这是 RAML4的一部分。

AA 08 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 5D C4 02 00 00 00 00 40 00 59 C5。

有人能不能建议控制为什么要被陷阱、我如何检查哪个指令是控制要被陷阱的部分。

此致、

Chandrakant Pal

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

    您是否了解了您希望查找应用程序的存储器位置? 它们是否正确?
    如果 CPU 运行一个无效指令(通常为操作码0xFFFF)、它将进入 itrap。 听起来您的程序在错误的位置进行编程或编程不正确。

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

    感谢你的答复
    我能够解决这个问题。 但我不知道为什么微控制器会被复位。 我进行了以下更改。

    我已经编写了一个代码来跳转到应用程序中的 CAN 引导 ROM 地址。并且从应用程序中、我能够跳转到 CAN 引导 ROM 地址并从 PC 接收 CAN 闪存内核文件。 但是、当 IN 在接收到内核后、当它尝试在内核入口点跳转时、控制器会被重置。
    在浏览应用程序和内核的链接器文件后,我注意到应用程序中的 RAML4用于.ebss 段,而在 CAN 闪存内核中,RAML4用于.text 段。
    我刚刚将内核的.text 部分更改为应用程序中未使用的 RAML8、并尝试检查、微控制器未被复位、并且从 CAN 引导 ROM 控制跳转到内核、从内核我能够再次加载应用程序。

    应用和内核中的常见 RAM 使用是否是微控制器复位的问题?
    我无法得出结论

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

    是的、这是可能的。 或许通过堆栈或来自 ebss 的全局变量尝试读取。 也可能会发生预取、如果存储器现在为0xFFFF、则可能会导致 itrap。

    此致
    Chris
x 出现错误。请重试或与管理员联系。