微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > LPC启动过程和重映射概念

LPC启动过程和重映射概念

时间:11-20 来源:互联网 点击:

重映射的原因:

由于ARM处理器的存储器结构比较复杂,可能同时存在片内存储器和片外存储器等,他们在存储器映射上的起始地址都不一样,因此ARM内核要访问的中断向量表可能不在0x0000~0x003F地址上,因此采用了存储器重映射来实现将存在与不同地方的中断向量表都映射到0x0000~0x003F地址上。

注意:Boot Block 也存在中断向量表,而且复位后这段代码首先映射到 0x0000~0x003F地址上,也就是说复位后首先运行的是Boot Block程序。各个存储区域的中断向量表也不尽相同。

从上面可以看出中断向量表可以来自4个不同的存储区域。通过下图的激活方式,可以在0x0000~0x003F地址处访问到从其他存储区域重映射过来的中断向量表。

注意:除了“用户片内FLASH模式”外,其他模式下都无法访问片内FLASH的0x0000~0x003F区域。

6.系统启动代码

从系统上电到正式运行用户的main函数之前,要运行一段代码,这段代码称为“启动代码”。

启动代码大部分是由汇编指令构成,它可以实现向量表定义,堆栈的初始化,系统变量初始化,中断系统初始化,I/O初始化,外围初始

化,地址重映射等操作。

启动代码与ARM的Boot Block不同,Boot Block是芯片厂家固化在芯片中的,不能对其进行修改,而启动代码是用户添加的。系统上

电后首先运行的是Boot Block,然后才运行启动代码。


Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top