TI中文支持网
TI专业的中文技术问题搜集分享网站

DM3730如何更改异常向量表的基地址

硬件环境:DM3730评估板 + TRACE32调试器

软件环境:GNU

嗨,

我要将异常中断向量表重定向到指定位置,方法如下:

get_vbase:
	MRC p15, 0, r0, c12, c0, 0
	mov pc, lr
	
set_vbase:
	MCR p15, 0, r0, c12, c0, 0
	mov pc, lr

通过get_vbase得到基地址是0x14000,我把自定义的handler放入这块向量表中后,该handler被执行了!

然后通过set_vbase重定向到RAM的一个数组中,数组中也保存了向量表,这个handler没有执行,并且发现 PC 执行 0 地址处,请教各位这是什么原因?

从DM3730手册上看 0x14000 是内部ROM的起始地址。

Tao Han:

Hi Kavin:

猜想你看过TI的TRM,Table 2-1 Global memory space mapping 中指明了0x40014000 是片内ROM的起始地址。

在表中说明了0x40014000 到0x4001BFFF 是32位可执行的只读区,个人认为你自己的中断向量是写不尽这个区域,你看看是不是由于写入出错导致ARM 重启又跳到了ROM代码开头重新执行了?即使你用外部NOR来引导,ROM部分也会先执行。( 26.4.7.3有说明)所以这个ROM是跳不过去的。

Thanks!

Han Tao

赞(0)
未经允许不得转载:TI中文支持网 » DM3730如何更改异常向量表的基地址
分享到: 更多 (0)