ARM重映射机制与初始化

详细讲解,很多地方都有,我简单总结下:

1.重映射针对的是什么对象?

主要针对的是中断向量表。系统上电或复位后,处理器将从地址0x0处取第一条指令,因此,上电的时候,地址0x0处必须是非易失性的ROM或FLASH。

2.为什么要重映射?

因为系统复位第一件事就是找到中断向量表,然后通过向量表的跳转指令去找初始化代码,进行初始化。中断向量和初始化代码都在ROM中,但是ROM不能改写,读取速度也慢,所以需要把中断向量表和初始化代码映射到RAM,这样中断向量表的某个中断源的函数地址就可以被赋值了,而且可以流畅运行。做法就是把RAM重新映射到地址0x0处。

所以有下面的代码

但不是所有芯片都会用重映射的方法的,详情看http://blog.csdn.net/yuanzhangmei1/article/details/8395028

3.如下图,重映射前,0x0是在ROM中,映射后ROM改为0x4000000,而0x0映射在RAM中。vector就是中断向量表,把它放在32位的RAM中,可以加快读取速率,加快中断处理的响应速度。


以上图片转自《ARM体系结构与编程》第12章

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值