大家好! 我对引导加载程序应用程序有疑问。 当我使用 RTOS .bin 创建引导加载程序时、当我通过 CAN 发送运行命令时、程序会跳转到 scvEntry。 我不确定为什么我有此条目、引导加载程序是成功的、因为我可以在没有 RTOS 的情况下与另一个.bin 一起使用。
引导加载程序会记录.bin 中的字节、但 无法跳转到应用程序。
请参阅内存浏览器图片。

我离开我正在使用的程序。
谢谢!
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.
大家好! 我对引导加载程序应用程序有疑问。 当我使用 RTOS .bin 创建引导加载程序时、当我通过 CAN 发送运行命令时、程序会跳转到 scvEntry。 我不确定为什么我有此条目、引导加载程序是成功的、因为我可以在没有 RTOS 的情况下与另一个.bin 一起使用。
引导加载程序会记录.bin 中的字节、但 无法跳转到应用程序。
请参阅内存浏览器图片。

我离开我正在使用的程序。
谢谢!
对于 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 ->、这是应用程序异常向量表中软件指令的地址。