您的位置 首页 被动

ARM存储器结构、映射以及从头映射

ARM存储器结构ARM存储器:片内Flash、片内静态RAM、片外存储器存储器映射(MemoryMap)映射就是一一对应的意思。重映射就是重新分配这种…

ARM存储器结构

ARM存储器:片内Flash、片内静态RAM、片外存储器

存储器映射(Memory Map)

映射便是一一对应的意思。重映射便是从头分配这种一一对应的联系。

咱们能够把存储器当作一个具有输出和输进口的黑盒子。输入量是地址,输出的是对应地址上存储的数据。当然这个黑盒子是由很杂乱的半导体电路完成的,详细的完成的办法咱们现在不论。存储单位一般是字节。这样,每个字节的存储单元对应一个地址,当一个合法地址从存储器的地址总线输入后,该地址对应的存储单元上存储的数据就会呈现在数据总线上面。

一般的单片机把可执行代码和数据寄存到存储器中。单片机中的CPU从储器中取指令代码和数据。其间存储器中每个物理存储单元与其地址是一一对应并且是不可变的。

而ARM比较杂乱,ARM芯片与一般单片机在存储器地址方面的不同在于:ARM芯片中有些物理存储单元的地址能够依据设置改换。便是说一个物理存储单元现在对应一个地址,通过设置今后,这个存储单元就对应了别的一个地址了(这便是后边要说的从头映射)。例如将0x00000000地址上的存储单元映射到新的地址0x00000007上。CPU存取0x00000007便是存取0x00000000上的物理存储单元。(随意举的比如为了阐明道理,没有实际意义)

存储器从头映射(Memory Re-Map)

存储器从头映射是将复位后用户可见的存储器中部分区域,再次映射到其他的地址上。

存储器从头映射包含两个方面:1、Boot Block从头映射(关于Boot Block的相关内容看我博客中的另一篇文章)。2、反常(中止)向量从头映射

Boot Block从头映射:原本Boot Block在片内Flash的最高8KB,可是为了与将来期间相兼容,生产商为了产品的升级换代,在新式芯片中添加内部Flash容量时,不至于由于坐落Flash高端的Boot Block的地址发生了改变而改写其代码,整个Boot Block都要被从头映射到内部存储器空间的顶部,即片内RAM的最高8KB。(地址为:0x7FFFE000~0x7FFFFFFF)

反常(中止)向量从头映射:原本中止向量表在片内Flash的最低32字节,从头映射时要把这32个字节再加上这今后的32个字节(后边这32个字节是寄存快速中止IRQ的服务程序的)共64个字节从头映射(地址为:0x00000000~0x0000003F)从头映射到的当地有三个:内部Flash高端的64字节空间、内部RAM低端的64字节空间和外部RAM低端的64字节空间,再加上本来的内部Flash低端的64字节空间,反常向量总共能够在四个当地呈现。为了对存储器映射进行操控,处理器设置了存储器映射操控寄存器MEMMAP,其操控格局如下图所示:

注:1、当MEMMAP[1:0]=00时是映射到内部Flash高端,同内部Flash高端的Boot Block一同又被映射到了内部RAM高端

2、当MEMMAP[1:0]=01时相当于没有从头映射,反常向量表在内部Flash低端

3、当MEMMAP[1:0]=10时映射到了内部RAM的低端

4、当MEMMAP[1:0]=11时映射到了外部RAM低端

小结:1、至于反常向量表为什么要从头映射,并且有那么多种从头映射办法,还不清楚为什么,应该都是为了程序运转的更快吧。

2、其实关于ARM的存储器结构和映射问题,不研讨那么清楚也能够,可是弄理解其间结构对今后的运用ARM会有很大优点。关于这一部分以及引导块(Boot Block)部分,北京航空航天大学出书社出书的由任哲等编著的《ARM体系结构及其嵌入式处理器》讲的比较清楚。

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/ziliao/beidong/274658.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部