电子产业
数字化服务平台

扫码下载
手机洽洽

  • 微信小程序

    让找料更便捷

  • APP

    随时找料

    即刻洽谈

    点击下载PC版
  • 公众号

    电子元器件

    采购信息平台

  • 移动端

    生意随身带

    随时随地找货

  • 华强商城公众号

    一站式电子元器件

    采购平台

  • 芯八哥公众号

    半导体行业观察第一站

关于ARM处理器Remap的理解

来源:wanghuixiang 作者:华仔 浏览:1076

标签:

摘要:什么是Remap? 我的理解是:在ROM从0x0用几句指令引导系统之后,把RAM映射到0x0就是Remap。1.Remap的作用 当ARM处理器上电或者Reset之后,处理器从0x0取指。因此,必须保证系统上电时,0x0处有指令可以执行。所以,上电的时候,0x0地址处必定是ROM或者Flash(NOR)。但是,为了加快启动的速度,也方便可以更改异常向量表,加快中断响应速度,往往把异常向量表映射到更

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

型号 厂商 价格
EPCOS 爱普科斯 /
STM32F103RCT6 ST ¥461.23
STM32F103C8T6 ST ¥84
STM32F103VET6 ST ¥426.57
STM32F103RET6 ST ¥780.82
STM8S003F3P6 ST ¥10.62
STM32F103VCT6 ST ¥275.84
STM32F103CBT6 ST ¥130.66
STM32F030C8T6 ST ¥18.11
N76E003AT20 NUVOTON ¥9.67
Baidu
map