ARM芯片的地址重映射 映射就是一一对应的意思。重映射就是重新分配这种一一对应的关系。 我们可以把存储器看成一个具有输出和输入口的黑盒子。如下图所示,输入量是地址,输出的是对应地址上存储的数据。当然这个黑盒子是由很复杂的半导体电路具现的,具体的实现的方式我们现在不管。存储单位一般是字节。这样,每个字节的存储单元对应一个地址,当一个合法地址从存储器的地址总线输入后,该地址对应的存储单元上存储的数据就会出现在数据总线上面。
图1
普通的单片机把可执行代码和数据存放到存储器中。单片机中的CPU从储器中取指令代码和数据。其中存储器中每个物理存储单元与其地址是一一对应而且是不可变的。如下图,CPU读取0x00000000地址上存储单元的过程。
图2
ARM比较复杂。ARM芯片与普通单片机在存储器地址方面的不同在于:ARM芯片中有些物理存储单元的地址可以根据设置变换。就是说一个物理存储单元现在对应一个地址,经过设置以后,这个存储单元就对应了另外一个地址了。图3是随意举了个例子(不要与ARM芯片对应),旨在说明地址重映射的过程。图3表示把0x00000000地址上的存储单元映射到新的地址0x00000007上。CPU存取0x00000007就是存取0x00000000上的物理存储单元。
图5
图5描述示了ARM芯片的另外一种映射方式。这个映射可以由用户决定采用还是不采用(相关代码在工程文件的startup.s中,这个文件是第三方提供,用户可以修改)。这个映射主要是为了提高应用程序异常相应得速度。当我们把应用程序存放在片内FLASH的时候,异常向量表存放在0x00000000~0x0000003F存储单元内。每次发生异常,CPU从0x00000000~0x0000003F地址上取异常向量。但是对RAM的存取速度远高于对FLASH的存取速度,所以为了提高异常相应速度我们采取以下做法:
Step 1:
先把0x00000000~0x0000003F(FLASH)存储单元内的异常向量表复制 到0x40000000~0x4000003F(片内RAM的最低端64个字节的存储单元)范围内存储单元中。
Step 2:
把0x40000000~0x4000003F范围内存储单元地址重新映射到0x00000000~0x0000003F地址范围。 这样做了以后,当异常发生的时候,CPU取异常向量就是从RAM区中的异常向量表中区,速度快了。比如复位中断发生,CPU从地址0x00000000取指令,但此时由于已经过地址重新映射,这个0x00000000被地址转换器转换成0x40000000,CPU实际上是取的RAM区中0x400000000这个存储单元内的指令(异常向量)。 当然用户可以不进行这种映射。片内FLASH中0x00000000~0x0000003F存储单元具有一模一样的异常向量表。只不过不进行这种处理,异常相应速度慢一点。但是这种速度上的差别很多情况下是不必要在意的。
图中的地址转换器受控制寄存器MENMAP的控制,用户可以设置MENMAP实现对地址重映射的控制。这个地址转换器显然是通过内部硬件电路实现的。
关键字:ARM 地址重映射 通俗解释
引用地址:
ARM地址重映射的通俗解释
推荐阅读最新更新时间:2024-03-16 14:58
基于ARM9处理器的家用远程医疗监护终端设计
远程医疗是网络科技与医疗技术相结合的产物,随着我国经济的发展、科技的进步以及进入老龄化社会的需要,发展远程医疗已成为一种必然趋势。远程医疗从使用对象上可分为:面向医院的远程医疗系统和面向家庭的远程医疗系统。面向家庭的远程医疗系统的功能包括:远程 看医生 、远程监护、远程医学信息查询 /咨询等。 国外的远程家庭医疗更加注重远程 看医生 ,个人/ 患者在家中就可与医生进行实时语音、图像信息交流,可实现在线检测人体生理信号并给出诊断。这种系统是以视频会议系统为核心,但目前还难以在我国普及,原因一是该系统的价格太贵,一般家庭承受不起;原因二是受到通信信道带宽的限制,国外一般使用综合业务数字网(ISDN),而我国现在普及到家庭的是普通
[单片机]
英特尔:与移动时代失之交臂
英特尔 虽然在PC市场风生水起,将同属X86阵营的AMD压得喘不过气,但在移动市场却始终处于劣势,而 英特尔 也不得不做出壮士割腕的举措。实际上, 英特尔 曾一度有希望成为移动时代的领军者,只是战略失策让其与移动时代失之交臂。下面急速嵌入式小编一起来了解一下相关内容吧。 英特尔曾与 ARM 有过交集 1998年,英特尔从DEC(当年的处理器产业巨头)手里获得了Strong ARM 与 ARM 架构的完整授权,这意味着英特尔可以自行研发生产基于RISC精简指令集设计的ARM处理器。实际上,在随后的很长一个时期里(特别是在Pocket PC掌上电脑时代),英特尔旗下的“XScale”就一度成为ARM处理器中的“代
[嵌入式]
德州仪器新型Hercules TMS570 ARM 安全微控制器、电源管理集成电路和电机驱动器为汽车及交通运输设计实现跨越式起步
最新 32 位 Hercules RM4x 安全微控制器、 TPS65381-Q1 电源、 软件与文档 可帮助设计人员更轻松地达到IEC 61508 SIL-3 安全标准 日前,德州仪器(TI) 推出面向医疗、工业和能源电机控制等安全关键型应用的新型SafeTI™ 设计软件包。这些设计软件包包含了15 款新型Hercules RM4x ARM Cortex-R4 安全微控制器 和TI 的配套TPS65381-Q1多轨电源(PMIC)。Hercules RM4x 微控制器和PMIC“安全芯片组”可最大限度地提升故障检测与缓解能力,同时实现软件开销的最小化。微控制器和PMIC 随附于SafeTI-61508设计
[汽车电子]
ARM 高性能新品:Cortex A76 CPU和Mali-G76 GPU
ARM发布新的高性能CPU和GPU设计,分别是Cortex A76和Mali G76。 A76由Austin团队设计,和A57/A72一脉相承。作为比较,A73/A75是Sophia团队,A53/A55是Cambridge团队。 在发布会中,ARM一直强调新CPU的笔记本级性能,架构师Mike Filippo表示,Cortex A76相当于i5-7300,如果IP厂商缓存设计得更好,那么可以媲美i7。 当然,演示中3.3GHz的A76功耗超过了5W,这对于手机来说肯定是不可接受的,笔记本倒还好。 官标的数据方面,基于台积电7nm工艺的3GHz A76核心比10nm 2.8GHz的A75核心性能提升35%、省电40%、机器学习的
[嵌入式]
ARM Cortex-M3 学习笔记(4-2)
最近在学ARM Cortex-M3,找了本号称很经典的书 An Definitive Guide to The ARM Cortex-M3 在看。这个系列学习笔记其实就是在学习这本书的过程中做的读书笔记。 第四章 指令系统 数据传送类指令 寄存器到寄存器传送:MOV 指令、MVN指令 MOV R8, R3; R8 = R3 MVN R8, R3; R8 = -R3 学过微机原理的都应记得,x86中一条MOV 指令存储器和寄存器间的任意传送。ARM 中是不行的,这也是CISC和RISC 内核的一个比较明显的区别。 存储器到寄存器传送:LDRx 指令、LDMxy指令 寄存器到存储器:STRx 指令、STMxy指令 LDRx 指令
[单片机]
ARM汇编中LDR和ADR的区别
ldr r0, _start adr r0, _start ldr r0, =_start nop mov pc, lr _start: nop 编译的时候设置 RO 为 0x0c008000 0c008000 _start-0x14 : c008000: e59f000c ldr r0, ; c008014 _start c008004: e28f0008 add r0, pc, #8 ; 0x8 c008008: e59f0008 l
[单片机]
ARM发布最新平台安全架构:支持碎片化物联网系统
网易科技讯 12月7日消息,世界互联网大会先进科技成果发布会上,ARM全球执行副总裁兼大中华区总裁吴雄昂发布了最新的平台安全架构,通过这样一个安全架构,不光是解决了安全架构的一致性问题,而且能够支持多样化、碎片化的物联网系统。 吴雄昂称,物联网系统的安全不仅仅在于设备,而在于网络、在于云。这里面有上百家芯片公司、上千家系统公司,同时有上百万的开发者,这个安全架构得到了从芯片、安全、系统、软件、云,一百多家科技公司的一致支持。 以下是吴雄昂的演讲: 女士们、先生们,下午好! 首先我代表ARM感谢组委会给我们这个机会,发布ARM最新的平台安全架构。ARM至今为止已经设计了全球应用最广泛的计算技术,今天全球有上千亿个电子设备使用了AR
[半导体设计/制造]
大容量Flash型AT91系列ARM核微控制器
摘要:主要介绍美国Atmel公司最新推出的基于ARM7TDMI核的AT91FR40162微控制器的体系结构及功能特性。AT91FR40162是对AT91R40008增加了16Mbit的Flash存储器后形成的最终产品。本文对AT91FR40162新增的Flash存储器以及AT91 Flash Uploader软件作重点介绍。
关键词:AT91FR40162 AT91R40008 SRAM Flash 微控制器
引 言
AT91FR40162是美国Atmel公司生产的AT91系列微控制器中的一员,具有ARM7TDMI核、大容量Flash存储器以及片内SRAM和外围。这种微控制器的特点是高性能--32位RISC体系结构、高
[应用]