ARM芯片的地址重映射 ARM芯片的地址重映射 映射就是一一对应的意思。重映射就是重新分配这种一一对应的关系。 我们可以把存储器看成一个具有输出和输入口的黑盒子。如下图所示,输入量是地址 ,输出的是对应地址上存储的数据。当然这个黑盒子是由很复杂的半导体电路具现的, 具体的实现的方式我们现在不管。存储单位一般是字节。这样,每个字节的存储单元对 应一个地址,当一个合法地址从存储器的地址总线输入后,该地址对应的存储单元上存 储的数据就会出现在数据总线上面。 [pic] 图1 普通的单片机把可执行代码和数据存放到存储器中。单片机中的CPU从储器中取指令 代码和数据。其中存储器中每个物理存储单元与其地址是一一对应而且是不可变的。如 图1,CPU读取0x00000000地址上存储单元的过程。 [pic] 图2 ARM比较复杂。ARM芯片与普通单片机在存储器地址方面的不同在于:ARM芯片中有些 物理存储单元的地址可以根据设置变换。就是说一个物理存储单元现在对应一个地址, 经过设置以后,这个存储单元就对应了另外一个地址了。图3是随意举了个例子(不要与 ARM芯片对应),旨在说明地址重映射的过程。图3表示把0x00000000地址上的存储单元 映射到新的地址0x00000007上。CPU存取0x00000007就是存取0x00000000上的物理存储单 元。 [pic] 图3 图4,图5是对ARM芯片的两种地址重映射方式的图示。图3 假设我们的应用程序存放在外扩FLASH当中,那么应用程序的异常向量表就存放在0x800 00000起始的64个(其中有32个存……