极术管理员 · 2020年03月02日

关于开机启动的几个问题

1)读0地址和读4地址这两件事情应该也是两条指令驱动的,这两条指令存放在哪里呢?
2)reset handler程序一般存放在哪里呢?
3)reset handler执行完之后,经过怎样的经过最终到了Mbed OS或者其他操作系统的引导呢?

2 个回答 得票排序 · 时间排序
天津 · 2020年03月03日

1、复位启动是硬件驱动,不是软件驱动,也就是说读取0和4是不需要指令的
2、reset handler放在startup.s里面,接在vector table后,你可以反汇编你的.axf文件,会发现reset handler这个函数在地址空间里面也是接在vector table之后的
3、如楼上的代码,通过 LDR 和 BX跳转

夜云 · 2020年03月02日

放在启动文件里例如
Reset_Handler PROC

            GLOBAL  Reset_Handler
            ENTRY
            IMPORT  __main
            LDR     R0, =__main
            MOV     R8, R0
            MOV     R9, R8
            BX      R0
            ENDP
你的回答