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.

[参考译文] RM57L843:应用程序跳转会导致数据中止

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1423122/rm57l843-application-jump-causes-data-abort

器件型号:RM57L843

工具与软件:

您好!

我实现了一个以太网引导加载程序、用于通过 TFTP 接受应用固件并将其下载到 RM57 HDK 板上的地址0x00200000。 此应用在0x00200000处具有其自己的向量。 引导加载程序基本上通过比较链接寄存器值来重定向异常。 IAM 能够使用 TFTP 将应用固件编程到该地址并在闪存中设置引导标志。  main 函数检查此标志、如果它与预期值匹配、则跳转到0x00200000处的应用程序复位矢量。 但是、当我通过执行以下吸入来重置系统时、它不会跳至应用。 但是、当我按下 RM57 HDK 板上的复位按钮时、效果会很好。 有人能告诉我、在执行以下指令后、如何让引导加载程序跳转到应用程序

.systemREG1->SYSECR |= 0x00008000;

谢谢!

Ravi

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

    尊敬的 Ravi:

    我怀疑导致此问题的问题与以下问题相同:

    (+) RM57L843:UART_Bootlader_RM57问题-基于 Arm 的微控制器论坛-基于 Arm 的微控制器- TI E2E 支持论坛

    请参阅我在上面的主题中的以下评论:

    然后根据它进行修改、然后让它进行测试。

    ——
    谢谢、此致、
    Jagadish。

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

    尊敬的 Jagadish:

    感谢您的答复。  

    这似乎解决了问题。 但我有一个小小的疑问。

    我们是否也应该在 systemInit ()之前调用以下函数?

    _memInit_();
    _coreEnableEventBusExport_();
    如果((esmREG->SR1[2])!= 0U)

    esmGroup3Notification (esmREG、esmREG->SR1[2]);
    }

    谢谢!

    Ravi

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

    尊敬的 Ravi:

    无需调用这些函数、因为相同的函数会调用引导加载程序的启动代码。

    您可以从"systemInit"函数开始调用。

    ——
    谢谢、此致、
    Jagadish。