ARM地址重映射的通俗解释.pdf
文本预览下载声明
转载:ARM 地址重映射的通俗解释
楼主:
转载:ARM 地址重映射的通俗解释
ARM, 映射, 地址, 解释
ARM 芯片的地址重映射 映射就是一一对应的意思。重映射就是重新分配这种一一对
应的关系。 我们可以把存储器看成一个具有输出和输入口的黑盒子。如下图所示,输
入量是地址,输出的是对应地址上存储的数据。当然这个黑盒子是由很复杂的半导体
电路具现的,具体的实现的方式我们现在不管。存储单位一般是字节。这样,每个字
帖
节的存储单元对应一个地址,当一个合法地址从存储器的地址总线输入后,该地址对
子
应的存储单元上存储的数据就会出现在数据总线上面。
:
61
积
分
:
34
1
图 1
普通的单片机把可执行代码和数据存放到存储器中。单片机中的 CPU 从储器中取指令
代码和数据。其中存储器中每个物理存储单元与其地址是一一对应而且是不可变的。
如下图,CPU 读取 0地址上存储单元的过程。
图 2
ARM 比较复杂。ARM 芯片与普通单片机在存储器地址方面的不同在于:ARM 芯片中
有些物理存储单元的地址可以根据设置变换。就是说一个物理存储单元现在对应一个
地址,经过设置以后,这个存储单元就对应了另外一个地址了。图 3 是随意举了个例
子(不要与 ARM 芯片对应),旨在说明地址重映射的过程。图 3 表示把 0
地址上的存储单元映射到新的地址 0上。CPU 存取 0就是存取
0上的物理存储单元。
图 3
下面图 4 ,图 5 是对 ARM 芯片的两种地址重映射方式的图示。 假设我们的应用程序
存放在外扩 FLASH 当中,那么应用程序的异常向量表就存放在 0起始的 64
个(其中有 32 个存放异常向量)物理存储单元中。但是 ARM 核发生异常(中断)后
是从 00x0000003F 地址范围取异常向量的。所以要把
00x8000003F 范围内的存储单元重新映射到 00x0000003F 地址
范围上。以后CPU 存取00x0000003F 地址就是存取00x8000003F
范围内的存储单元。图 4 只显示出第一个异常向量的地址重映射,整个异常向量表的
地址重映射等同这个过程。
图4
图 5
图 5 描述示了 ARM 芯片的另外一种映射方式。这个映射可以由用
显示全部