uboot学习笔记之异常向量表(二)

1、异常向量表

异常向量表的实质是一段固定位置(内存地址固定)、固定结构(大小和内容固定)的内存空间:

uboot学习笔记之异常向量表(二)_第1张图片

2、uboot启动

在uboot启动过程中的第一段程序就是对异常向量表的实现,而在启动过程中,先是将uboot代码(BL1)从外存搬移到iRAM,但是三星公司的地址映射表中,iROM的起始地址才是0x00,那么如果将异常向量表从片外ROM拷贝到iRAM后,异常向量表的首地址就不再是0x00了,而是iRAM的首地址了,这个时候一旦产生了异常,就无法跳转到对应异常向量表项。不仅是在iRAM中,uboot拷贝到片外RAM中也是一样。因此三星公司提供的解决方案是:

在iRAM中,专门为异常向量表开辟了专门的区域,如果是运行在iRAM的时候,需要将自身写的异常向量表拷贝到这个特殊区域:

uboot学习笔记之异常向量表(二)_第2张图片

如果是在片外RAM中,则是借助于CP15协处理器中的特殊寄存器,将异常向量表在片外RAM中的地址保存在该寄存器中,当有异常产生需要跳转的时候,作为基地址参与跳转地址计算。

 

你可能感兴趣的:(uboot学习笔记)