21,618
社区成员
发帖
与我相关
我的任务
分享
我老实用我的开发板试了下,在我的板子上使用的异常向量表是被映射到0地址的SRAM上。另外,由于我的TLB把0x0 - 0xa0000000的虚拟地址映射到了对应的实地址,所以不管开没开MMU都是使用的SRAM上的中断向量。
至于你的情况,
一、你在u-boot中检查下SRAM中的内容,是否被改变。
二、检查CP15 c0的V位设置,有源码就看看开,关MMU的语句。
如果这个位被置为‘1’,则异常向量表的位置将不再是地址‘0’。
三、异常向量表的跳转指令是否正确。
关MMU不能执行异常中断应该是这三处地方……
.globl _start
_start: b reset
#ifndef CONFIG_NAND_SPL
ldr pc, _undefined_instruction
ldr pc, _software_interrupt
ldr pc, _prefetch_abort
ldr pc, _data_abort
ldr pc, _not_used
ldr pc, _irq
ldr pc, _fiq
所以,大部分的u-boot中两份中断向量表是不存在的。