当前位置:首页 >> 其它课程 >>

ARM地址重映射的通俗解释


转载:ARM 地址重映射的通俗解释?

? ?? 楼主:? ? 转载:ARM 地址重映射的通俗解释? ARM,? 映射,? 地址,? 解释? ARM 芯片的地址重映射?映射就是一一对应的意思。重映射就是重新分配这种一一对 应的关系。?我们可以把存储器看成一个具有输出和输入口的黑盒子。如下图所示,输 入量是地址,输出的是对应地址上存储的数据。当然这个黑盒子是由很

复杂的半导体 电路具现的,具体的实现的方式我们现在不管。存储单位一般是字节。这样,每个字 帖 节的存储单元对应一个地址,当一个合法地址从存储器的地址总线输入后,该地址对 子 应的存储单元上存储的数据就会出现在数据总线上面。? :? 61? 积 分 :? 34 1?

?? 图 1?? 普通的单片机把可执行代码和数据存放到存储器中。 单片机中的 CPU 从储器中取指令

代码和数据。其中存储器中每个物理存储单元与其地址是一一对应而且是不可变的。 如下图,CPU 读取 0x00000000 地址上存储单元的过程。?

?? ???????????????????图 2?? ARM 比较复杂。ARM 芯片与普通单片机在存储器地址方面的不同在于:ARM 芯片中 有些物理存储单元的地址可以根据设置变换。就是说一个物理存储单元现在对应一个 地址,经过设置以后,这个存储单元就对应了另外一个地址了。图 3 是随意举了个例 子(不要与 ARM 芯片对应) ,旨在说明地址重映射的过程。图 3 表示把 0x00000000 地址上的存储单元映射到新的地址 0x00000007 上。CPU 存取 0x00000007 就是存取 0x00000000 上的物理存储单元。?

?? ??????????????????图 3?? 下面图 4,图 5 是对 ARM 芯片的两种地址重映射方式的图示。?假设我们的应用程序 存放在外扩 FLASH 当中,那么应用程序的异常向量表就存放在 0x80000000 起始的 64 个(其中有 32 个存放异常向量)物理存储单元中。但是 ARM 核发生异常(中断)后 是从 0x00000000~0x0000003F 地址范围取异常向量的。所以要把 0x80000000~0x8000003F 范围内的存储单元重新映射到 0x00000000~0x0000003F 地址 范围上。 以后 CPU 存取 0x00000000~0x0000003F 地址就是存取 0x80000000~0x8000003F 范围内的存储单元。图 4 只显示出第一个异常向量的地址重映射,整个异常向量表的 地址重映射等同这个过程。??

?? 图 4??

? 图 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 实现对 地址重映射的控制。这个地址转换器显然是通过内部硬件电路实现的。?? 金升阳电源技术交流会,时尚数码礼品等你拿!? ? Digi‐Key、Future、Arrow、Mouser、RS?Conponents、OnlineConpunents 实时库存在线查询 订购!?

yewuyi 发表于? 2008‐8‐14?11:50?|? 只看该作者? 回复? 引用? 评分? 报告? 返回版面? 帖 子 :? 66 55? 积 分 :? 36 09 3? TOP? 2 楼:? ?

对于第一种中断向量的重映射
如果像普通 MCU 那样不需要外括 FLASH,这样是否就不需要重映射中断向量地址 了?? ? CM3 那样的是否就不用考虑重映射了?? 金升阳电源技术交流会,时尚数码礼品等你拿!? ?
Digi‐Key、Future、Arrow、Mouser、RS?Conponents、OnlineConpunents 实时库存在线查询 订购!?

galaxy9229 发表于? 2008‐8‐14?13:51?|? 只看该作者? 回复? 引用? 评分? 报告? ? 帖子:?61? 返回版面? TOP? 3 楼:? ?

积分:? 341?

重映射是可选项,不是必须的,根据你的需求和设计来决定
金升阳电源技术交流会,时尚数码礼品等你拿!? ? Digi‐Key、Future、Arrow、Mouser、RS?Conponents、OnlineConpunents 实时库存在 线查询订购!?

真白菜发表于? 2008‐8‐21?19:00?|? 只看该作者? 回复? 引用? 评分? 报告? 返回 版面? TOP? 4 楼:? ?

? 帖子:?81? 积分:? 253?

顶该加裤子!!!!!!!!!!!!!1
金升阳电源技术交流会,时尚数码礼品等你拿!? ? Digi‐Key、Future、Arrow、Mouser、RS?Conponents、OnlineConpunents 实时库存在 线查询订购!?

tanchao 发表于? 2008‐8‐22?10:25?|? 只看该作者? 回复? 引用? 评分? 报告? 返 回版面? TOP? 5 楼:? ?

? 帖子:? 110? 积分:? 688?

建议加精
如题? 金升阳电源技术交流会,时尚数码礼品等你拿!? ? Digi‐Key、Future、Arrow、Mouser、RS?Conponents、OnlineConpunents 实时库存在 线查询订购!? Wxy8030 发表于? 2008‐9‐2?15:10?|? 只看该作者? 回复? 引用? 评分? 报告? 返 回版面? TOP? 6 楼:? ?

LPC213X 系列说把异常入口向量复制到 RAM 中运行的快
? 帖子:? 541? 积分:? 3924? 就是从 FLASH 中跳到 RAM 中,然后从 RAM 中再跳到 FLASH 中,比直接在 FLASH 中跳能快多少?? ? 还有就是把一段程序复制到 RAM 中,运行速度快......这样做安全吗?? ? 还有就是中断向量都是保存在 RAM 中的......安全么?? ? 总觉得 ARM 适合消费电子,不太适合工业控制!? 金升阳电源技术交流会,时尚数码礼品等你拿!? ? Digi‐Key、Future、Arrow、Mouser、RS?Conponents、OnlineConpunents 实时库存在 线查询订购!?

原野之狼发表于? 2008‐9‐8?09:53?|? 只看该作者? 回复? 引用? 评分? 报告? 返回版面 TOP? 7 楼:? ? ? 帖子:?1323? 积分:?5149?

PC 的程序就运行在 RAM 里
金升阳电源技术交流会,时尚数码礼品等你拿!? ? Digi‐Key、Future、Arrow、Mouser、RS?Conponents、OnlineConpunents 实时库存在线查 询订购!?

Wxy8030 发表于? 2008‐9‐9?08:36?|? 只看该作者? 回复? 引用? 评分? 报告? 返回版面 TOP? 8 楼:? ? ? 帖子:?541? 积分:?3924?

所以 PC 老死机!
!? 金升阳电源技术交流会,时尚数码礼品等你拿!? ?
Digi‐Key、Future、Arrow、Mouser、RS?Conponents、OnlineConpunents 实时库存在线查 询订购!?

xwj 发表于? 2008‐9‐9?08:39?|? 只看该作者? 回复? 引用? 评分? 报告? 返回版 ? 帖子:? 15575? 积分:? 74777? 面? TOP? 9 楼:? ?

“死机”和“运行在 RAM 里”没多大关系
金升阳电源技术交流会,时尚数码礼品等你拿!? ? Digi‐Key、Future、Arrow、Mouser、RS?Conponents、OnlineConpunents 实时库存 在线查询订购!?

dld2 发表于? 2008‐9‐9?08:51?|? 只看该作者? 回复? 引用? 评分? 报告? 返回版 面? TOP? 10 楼:? ? ? 帖子:? 2387? 积分:? 8200?

映射不是“一一对应”
重映射之后,一般原来的地址依然有效。? 也就是说,可能两个地址,对应一个存储单元。? ? 另外也不同意 6 楼的说法。? 金升阳电源技术交流会,时尚数码礼品等你拿!? ? Digi‐Key、Future、Arrow、Mouser、RS?Conponents、OnlineConpunents 实时库存 在线查询订购!?

galaxy9229 发表于? 2008‐9‐10?17:55?|? 只看该作者? 回复? 引用? 评分? 报告 返回版面? TOP? 11 楼:? ? ? 帖子:?61? 积分:?341?

“一一对应”应该理解为可配置的“一一对应”,而不是固
“一一对应”应该理解为可配置的“一一对应”,而不是固定不变的? 金升阳电源技术交流会,时尚数码礼品等你拿!? ? Digi‐Key、Future、Arrow、Mouser、RS?Conponents、OnlineConpunents 实时库存 在线查询订购!? avr32 发表于? 2008‐9‐17?10:02?|? 只看该作者? 回复? 引用? 评分? 报告? 返回 版面? TOP? 12 楼:? ?

? 帖子:?679? 积分:? 2642?

高中数学老师说过
函数是一种特殊的影射? 金升阳电源技术交流会,时尚数码礼品等你拿!? ? Digi‐Key、Future、Arrow、Mouser、RS?Conponents、OnlineConpunents 实时库存 在线查询订购!? weibn 发表于? 2008‐11‐2?22:10?|? 只看该作者? 回复? 引用? 评分? 报告? 返回版 面? TOP? 13 楼:? ?

? 帖子:? 1? 积分:? 6?

ARM 地址重映射的通俗解释
醍醐灌顶,谢谢~? 金升阳电源技术交流会,时尚数码礼品等你拿!? ?
Digi‐Key、Future、Arrow、Mouser、RS?Conponents、OnlineConpunents 实时库存在线 查询订购!?

noend297 发表于? 2008‐12‐15?21:31?|? 只看该作者? 回复? 引用? 评分? 报告? 返 回版面? TOP? 14 楼:? ? ? 帖子:? 29? 积分:? 85?

重映射是重复映射
我感觉有篇文章解释的更容易理解:重映射是重复映射,就是一个单元分配了 两个地址。例如 boot 重映射了,但在原来的地址还是能读出来? 金升阳电源技术交流会,时尚数码礼品等你拿!? ? Digi‐Key、Future、Arrow、Mouser、RS?Conponents、OnlineConpunents 实时库存在线 查询订购!?

lelee007 发表于? 2009‐8‐2?22:47?|? 只看该作者? 回复? 引用? 评分? 报告? 返回版 ? 帖子:? 3707? 积分:? 15135? 面? TOP? 15 楼:? ? 哈哈,讨论的挺有意思? ? 重复映射让俺长见识 金升阳电源技术交流会,时尚数码礼品等你拿!? ? Digi‐Key、Future、Arrow、Mouser、RS?Conponents、OnlineConpunents 实时库存在 线查询订购!? mmd2102 发表于? 2009‐8‐5?20:34?|? 只看该作者? 回复? 引用? 评分? 报告? 返回 版面? TOP? 16 楼:? ? 好帖子又出来.拜读中.作者写的很好,转帖的人也有功劳. 买 IC 上 21IC 库 存频道!? kucun.21ic.com 金升阳电源技术交流会,时尚数码礼品等你拿!? ? Digi‐Key、Future、Arrow、Mouser、RS?Conponents、OnlineConpunents 实时库存在 线查询订购!? 雪域流星发表于? 2009‐8‐9?22:09?|? 只看该作者? 回复? 引用? 评分? 报告? 返回版 ? 帖子:? 10? 正在学习? 谢了 积分:? 金升阳电源技术交流会,时尚数码礼品等你拿!? ? 18? Digi‐Key、Future、Arrow、Mouser、RS?Conponents、OnlineConpunents 实时库存在线 查询订购!? 一只小蜗牛发表于? 2009‐8‐19?10:38?|? 只看该作者? 回复? 引用? 评分? 报告? 返 回版面? TOP? 18 楼:? ? 学习中 ? 壳子 外面 的世 界很 多 彩。 壳子 里面 的世 界很 面? TOP? 17 楼:? ?

? 帖子:? 632? 积分:? 8106?

帖子:? 755? 积分:? 2294?

自 在。
金升阳电源技术交流会,时尚数码礼品等你拿!? ? Digi‐Key、Future、Arrow、Mouser、RS?Conponents、OnlineConpunents 实时库存在线 查询订购!?

ttlasong 发表于? 2009‐8‐22?01:49?|? 只看该作者? 回复? 引用? 评分? 报告? 返回 ? 帖子:? 137? 积分:? 498? 版面? TOP? 19 楼:? ? 顶一顶 金升阳电源技术交流会,时尚数码礼品等你拿!? ? Digi‐Key、Future、Arrow、Mouser、RS?Conponents、OnlineConpunents 实时库存在 线查询订购!? 华荣汇 FAE4 发表于? 2009‐8‐24?17:48?|? 只看该作者? 回复? 引用? 评分? 报告 ? 帖子:?31? 积分:?87? 返回版面? TOP? 20 楼:? ? 顶一顶 金升阳电源技术交流会,时尚数码礼品等你拿!? ?
Digi‐Key、Future、Arrow、Mouser、RS?Conponents、OnlineConpunents 实时库存在 线查询订购!?

?
返回列表?

12 下一页 ? ? 高级回复? |? 发新话题? ? B?Color? ? Image?Link?Quote?Code?Smilies? ?

? 发表回复

?

ARM? 论坛侃单片机技术交流 21IC 发展大家谈人才聘任同僚|校友|老乡会 ARM?Linux 入门与实践模拟技术 DIY 小组讨论区竞赛专栏客户服务热线:010-59705655

21ic 不良信息举报(24 小时):013681498700 举报邮箱:info@21ic.com 21IC 中国电子网 2000-2009 爱奇新星(北京)信息科技有限公司版权所有 ?


相关文章:
ARM体系结构下面内存和io映射区别
ARM地址重映射的通俗解释... 11页 免费 ARM芯片的地址重映射 4页 免费 ARM的...ARM 体系结构下面内存和 i/o 映射区别在 S3C2410 的 Linux 里面,全部都会做 ...
ARM的内存映射
CPU 对外设 IO 端口物理地址的编址方式有两种:一种是 I/O 映射方式(I/O-...ARM地址重映射的通俗解释... 11页 免费 ARM 关于地址重映射 76页 免费 ARM芯片...
单片机关于ARM的个常用概念的确经典
单片机--关于 ARM 的个常用概念--的确经典 1.ARM 中一些常见英文缩写解释 ...然后重新映射存储器空间,将相应 SRAM/DRAM 映射到 地址 0,重新执行程序可达到...
arm术语集锦
ARM 中一些常见英文缩写解释 MSB:最高有效位; LSB:最低有效位; AHB:先进的...然后重新映射存储器空间,将相应 SRAM/DRAM 映射到地址 0,重新执行程式可达到...
ARM复习重点
I/O 初始化、 外围初始化、地址重映射等操作 25.ARM 复位后 PC 值为 0x0, ARM 内核处于 arm 状态, 进入是 Supervisor (管理)模式,最先执行的是 Boot ...
2015-嵌入式系统试题(带答案)
因为 Flash ROM 的读出速度慢,因此需要采用 地址重映射 把 SDRAM 地 址空间...外围设备 E.寄存器 9、ARM处理器的工作模式中属于异常模式的有__ C D E__...
ARM嵌入式系统基础复习题
重映射引导块,有利于用户调用其中的某些程序,增加代码的可移植性; 异常向量表重映射为了能让 ARM 内核通过访问 0x0000~0x003F 地址访问 到其他存储区域的向量表...
关于ARM的22个常用概念
关于 ARM 的 22 个常用概念 1. ARM 中一些常见英文缩写解释 MSB:最高有效位...运行代码并且应用程序需要调用中断,那么必须将中断向量重新映射到 Flash 地址 0x0...
ARM学习笔记
ARM学习笔记_学习总结_总结/汇报_实用文档。学习arm...地址为 0X40011000,那么结构体中第二个变量的地址即...2.2)分别重映射 OSC_IN 和 OSC_OUT 至 PD0 和...
ARM的启动过程
1.2 地址重映射及中断向量表的转移 ARM7 处理器在复位后从地址 0 读取第一...本文有助于正在从事嵌入式 ARM 开发的读者理解启动代码的内涵与编写出适合自己的...
更多相关标签: