初中生
最后登录1970-1-1
在线时间 小时
注册时间2021-3-22
|
看例子里的 imx6 汇编启动程序里 向量表是这样设置的
_start:
ldr pc, =Reset_Handler /* Reset */
ldr pc, =Undefined_Handler /* Undefined instructions */
ldr pc, =SVC_Handler /* Supervisor Call */
ldr pc, =PrefAbort_Handler /* Prefetch abort */
ldr pc, =DataAbort_Handler /* Data abort */
.word 0 /* RESERVED */
ldr pc, =IRQ_Handler /* IRQ interrupt */
ldr pc, =FIQ_Handler /* FIQ interrupt */
由于mkimage.sh设置的程序运行位置是 image_entry_point=0x80002000 所以在后面设置vbar的时候
__set_VBAR((uint32_t)0x80002000);
那么如果稍微改动下
_start:
mrc p15, 0, r0, c1, c0, 0
mcr p15, 0, r0, c1, c0, 0
ldr pc, =Reset_Handler /* Reset */
ldr pc, =Undefined_Handler /* Undefined instructions */
ldr pc, =SVC_Handler /* Supervisor Call */
ldr pc, =PrefAbort_Handler /* Prefetch abort */
ldr pc, =DataAbort_Handler /* Data abort */
.word 0 /* RESERVED */
ldr pc, =IRQ_Handler /* IRQ interrupt */
ldr pc, =FIQ_Handler /* FIQ interrupt */
最开始加上2句 读c1写到r0 读r0写到c1 这时候vbar的地址该设置成多少呢
有点迷惑
|
|