"); //-->
关于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吗?为了加快启动速度,可以这样做
a)使用它的NAND boot模式。为什么NAND boot会比较快,那是因为2410里面有块小石头——“SteppingStone”,一块4KB SRAM,它是映射在0x0的。启动程序会自动被copy到这个石头里面。自然异常向量的入口放到这个地方,一样可以达到比NOR boot快的启动、异常响应速度。
b)如果你对NOR Boot情有独衷,那么你只好把你的异常向量的入口copy到SDRAM里面,实现所谓的High Vector 我个人认为,如果中断向量放在rom中的0x0位置,就用不着remap,但是无法再更改中断向量,如果放在ram或其他的存储器中,那么就应该用的remap,因为在系统复位后,对系统环境的初始化是从中断向量中的中断reset开始的,而系统运行必须是从rom的0x0开始的,因此应该利用remap把放中断向量的初始地址映射到rom的0x0处,以使程序进行正确的初始化.这样既可以初始化,有可以使程序运行的快一些,因为毕竟rom的速度是比较慢的.
专栏文章内容及配图由作者撰写发布,仅供工程师学习之用,如有侵权或者其他违规问题,请联系本站处理。 联系我们
相关推荐
《数字信号处理教程-第二版》
三极管知识简介(5)
《液晶显示应用技术》
村田顽童爬坡
《遥感精解》
电话自动录音控制电路图
数码管动态扫描扩展显示
村田顽童演示控制姿势行走
500型万用表电路图
机构:美国关税政策影响下2025年AI服务器出货年增率下修至24.5%
10月风河时讯
英伟达雷神难产,蔚来:一颗更比四颗强
MSP430 汇编程序设计 (一)
[转帖]这么疯长的房价,你买的起吗?
MSP430 汇编程序设计 (二)
《液晶显示器件应用技术》
SK海力士首度超越三星!拿下DRAM季度营收第一:HBM市占率高达70%
国芯科技:超高性能RISC-V云安全芯片内测成功
研究生导师之“三难”
村田顽童的堂妹“村田少女”问世 3
微软确认搁置俄亥俄州利金县 10 亿美元数据中心建设计划
全球晶圆代工产业新变局
联强:关税对消费电子市场冲击大
《TCP_IP详解,卷1:协议》.
富士康高管表示希望与日产在电动汽车方面展开合作
在自己写的程序里面如何调用一个可执行文件
人形机器人产业链企业解读之 “人形机器人关节传动擎天柱 — 双环传动 “
总线控制RGB前置放大器TDA4887PS引脚
曦智科技时隔八年再登《Nature》,光电混合计算架构首次公开
[转帖]江浙炒家开始撤离上海市场