主题中讨论的其他器件:HALCOGEN
我们在0x00位置有一个引导加载程序。 和应用从 oxc000开始。 成功刷写应用程序后,我们将跳转到引导加载程序中的应用程序代码,如下所示:
((void (*)(void)) 0xc000)();
我们能够成功跳转到应用程序代码、因为我们可以看到应用程序发出的调试消息。 但是、每当我们使用 rtiStartCounter (0)启动 RTI 计数器时、系统都会复位。 供参考、我们在引导加载程序中未使用 RTI。
以下是应用程序链接器文件:
引导程序(X):origin=0x0000C000 length=0x00000020
保留(R):origin=0x0000C020 length=0x000000E0
FLASH0 (RX):origin=0x0000C100 length=0x00033EFF
应用 sys_intvecs.asm:
.sect ".intvecs"
ARM
;------------------------------------------------------------------
;中断例程的导入引用
.ref _c_int00
.ref _dabort
.ref _irqDispatch
.ref phantomInterrupt
.def resetEntry
;------------------------------------------------------------------
;中断向量
resetEntry
b _c_int00
UndefEntry
b 未定义尝试
svcEntry
b svcEntry
PrefetchEntry
B prefetchEntry
b _dabort
b 相位中断
b _irqDispatch
LDR PC、[PC、#-0x1b0]
引导加载程序链接器:
引导程序(X):origin=0x00000000 length=0x00000020
Flash_API (RX):origin=0x00000020 length=0x000014E0
FLASH0 (RX):origin=0x00001500 length=0x0000AAFF
引导加载程序 sys_intvecs.asm:
.sect ".intvecs"
ARM
;------------------------------------------------------------------
;中断例程的导入引用
.ref _c_int00
.ref _dabort
.ref phantomInterrupt
.def resetEntry
;------------------------------------------------------------------
;中断向量
resetEntry
b _c_int00
UndefEntry
b 未定义尝试
svcEntry
b svcEntry
PrefetchEntry
B prefetchEntry
b _dabort
b 相位中断
LDR PC、[PC、#-0x1b0]
LDR PC、[PC、#-0x1b0]
请帮助。