DIY编程器网

 找回密码
 注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 148|回复: 0
打印 上一主题 下一主题

关于ARM处理器Remap的理解

[复制链接]
跳转到指定楼层
楼主
发表于 2012-1-16 18:44:06 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

                   

什么是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?

            
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友 微信微信
收藏收藏 分享分享 支持支持 反对反对
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|文字版|手机版|DIY编程器网 ( 桂ICP备14005565号-1 )

GMT+8, 2025-7-23 03:40 , 耗时 0.112736 秒, 19 个查询请求 , Gzip 开启.

各位嘉宾言论仅代表个人观点,非属DIY编程器网立场。

桂公网安备 45031202000115号

DIY编程器群(超员):41210778 DIY编程器

DIY编程器群1(满员):3044634 DIY编程器1

diy编程器群2:551025008 diy编程器群2

QQ:28000622;Email:libyoufer@sina.com

本站由桂林市临桂区技兴电子商务经营部独家赞助。旨在技术交流,请自觉遵守国家法律法规,一旦发现将做封号删号处理。

快速回复 返回顶部 返回列表