工具/软件:TI-RTOS
您好!
我在 CC1310闪存中存储的两个应用之间经常跳转时遇到问题。
我的产品在闪存中存储了两个固件:引导加载程序和应用程序。
引导加载程序存储在地址0x0000。
应用程序存储在地址0x6000。
我分别测试了每个跳转:
1.在引导加载程序中启动 CC1310、然后跳转到应用程序。 它正在工作!
跳转代码:
|
1
2.
3.
4.
|
asm(" MOV R0, #0x06000 "); asm(" LDR R1, [R0, #0x4] "); asm(" LDR SP, [R0, #0x0] "); asm(" BX R1 "); |
2.在应用程序中启动 CC1310、然后跳转至引导加载程序。 它正在工作:
跳转代码:
|
1
2.
3.
4.
|
asm(" MOV R0, #0x00000 "); asm(" LDR R1, [R0, #0x4] "); asm(" LDR SP, [R0, #0x0] "); asm(" BX R1 "); |
但我真正需要做的是从应用程序跳转到引导加载程序、执行一些操作、然后跳回到应用程序。
今天、我可以从应用程序跳转到引导加载程序、但无法跳回到应用程序。 正如我在前面所说的、从引导加载程序跳转到应用程序的操作正常。当我在引导加载程序中启动 CC1310时、测试了它。
简单地说:我可以从一个固件跳转到另一个固件、但我无法跳回到第一个固件。
你有一些线索吗?
是否有更好的方法来执行跳转?



