ARM处理器Remap的详解

0.什么是remap
我的理解是:在rom从0x0用几句指令引导系统之后,把ram映射到0x0就是remap。
1.remap的作用
当arm处理器上电或者reset之后,处理器从0x0 取指。因此,必须保证系统上电时,0x0 处有指令可以执行。所以,上电的时候,0x0地址处必定是rom 或者flash(nor)。但是,为了加快启动的速度,也方便可以更改异常向量表,加快中断响应速度,往往把异常向量表映射到更快、更宽(32bit/16bit)的ram 中。但是异常向量表的开始地址是由arm架构决定的,必须位于0x0处,因此,必须把ram映射到0x0。
2.remap的配置
remap的实现和arm处理器的实现相关。
1)如果处理器有专门的寄存器可以完成remap。那么remap 是通过remap 寄存器的相应bit置1 完成的。如atmel at91xx
2)如果处理器没有专门的寄存器,但是memory的bank控制寄存器可以用来配置bank的起始地址,那么只要把ram的起始地址编程为0x0,也可以完成remap。如samsung s3c4510
3)如果上面两种机制都没有,那么remap就不要做了。因为处理器实现决定了sdram对应的bank地址是不能改变的。如samsung s3c2410.
3.remap配置前后要做的工作
remap 前后,不同之处就是ram 的位置变了。为了达到remap 的目的,就是加快启动的速度和异常处理速度,一定要初始化异常堆栈和建立异常向量表的。
4.如果象2410那样不能remap的话怎么办?
2410 不是不能remap吗?为了加快启动速度,可以这样做
1)使用它的nand boot 模式。为什么nand boot 会比较快,那是因为2410 里面有块小石头——“steppingstone”,一块4kb sram,它是映射在0x0 的。启动程序会自动被copy 到这个石头里面。自然异常向量的入口放到这个地方,一样可以达到比nor boot 快的启动、异常响应速度。
2)如果你对nor boot 情有独衷,那么你只好把你的异常向量的入口copy到sdram里面,实现所谓的high vector

村田制作所在智能LED照明领域的浅析
打游戏用什么蓝牙耳机比较好,高性价比游戏耳机的推荐
基于电磁涡流检测的远洋船舶冷水机组探伤检测与优化管理
Microsemi发布第十版Libero SoC集成式设计环境
重载连接器的原理是怎样的
ARM处理器Remap的详解
学习微电子能拯救中国吗?
磁场中电流的作用力 电线上相互承载电流的力
砷化镓概念股有哪些? 砷化镓概念股一览
晶华微携全新产品亮相2023慕尼黑上海电子展
2019年电信行业整体增速放缓,未来创新电信业务拉动增长
芯片引脚的功能和用途
VME总线原理、特点、功能结构及发展分析
需求减少,台湾地区芯片分销商调低Q1销售预测
为什么要限制变频器与电机之间电缆长度?
Q3出货量增长90.4%,折叠屏手机率先成为手机市场回暖标志
光伏逆变器是干什么用的 光伏逆变器怎么调电压 光伏逆变器的工作原理是什么
如何在嵌入式系统中使用音频编解码器更轻松地优化音频性能?
对于云服务器它自身的安全性能怎么样
关于互动远程教育分析和介绍