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.

[参考译文] TMS570LS3137:当我执行引导加载程序时、svcEntry

Guru**** 2577385 points


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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1164595/tms570ls3137-svcentry-when-i-do-a-bootloader

器件型号:TMS570LS3137

大家好! 我对引导加载程序应用程序有疑问。 当我使用 RTOS .bin 创建引导加载程序时、当我通过 CAN 发送运行命令时、程序会跳转到 scvEntry。 我不确定为什么我有此条目、引导加载程序是成功的、因为我可以在没有 RTOS 的情况下与另一个.bin 一起使用。  

引导加载程序会记录.bin 中的字节、但 无法跳转到应用程序。

请参阅内存浏览器图片。

e2e.ti.com/.../RTOS.zip

我离开我正在使用的程序。

谢谢!

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

    您能否共享引导加载程序的 sys_intvecs.asm?

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

    对于 ARM Cortex-R4/5微控制器、程序计数器(PC)始终将两条指令指针指向当前已执行指令之上。

    例如,在接收到软件(SVC)中断后,CPU 转移到0x08 (SVC 或软件中断):

    b  svcEntry  -->分支到引导加载程序中定义的 svcEntry

    要使用 SVC 中断服务例程、您需要将  引导加载程序的"bsvcEntry"更改为:

    b #20018 ;;0x20018 = 0x20020 - x8

    分支偏移量必须考虑预取操作、这会导致 PC 在当前指令之前为2个字(8个字节)。

    目的地址为 PC + OFFSET = 0x08 + 0x08 + 0x20018 = 0x20028 ->、这是应用程序异常向量表中软件指令的地址。