实验2.13 存储器重映射.ppt

实验2.13 存储器重映射.ppt

ID:52618035

大小:3.16 MB

页数:37页

时间:2020-04-11

实验2.13  存储器重映射.ppt_第1页
实验2.13  存储器重映射.ppt_第2页
实验2.13  存储器重映射.ppt_第3页
实验2.13  存储器重映射.ppt_第4页
实验2.13  存储器重映射.ppt_第5页
资源描述:

《实验2.13 存储器重映射.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、ARM期末大作业江南大学信息工程学院微电子0701黄兆丰0301070112什么叫重映射?为存储器分配地址的过程称为存储器映射。但是为了增加系统的灵活性,系统中有部分存储单元可以同时出现在不同的地址上,这称为存储器重映射。ARM芯片的地址重映射 映射就是一一对应的意思。重映射就是重新分配这种一一对应的关系。 我们可以把存储器看成一个具有输出和输入口的黑盒子。如下图所示,输入量是地址,输出的是对应地址上存储的数据。当然这个黑盒子是由很复杂的半导体电路具现的,具体的实现的方式我们现在不管。存储单位一般

2、是字节。这样,每个字节的存储单元对应一个地址,当一个合法地址从存储器的地址总线输入后,该地址对应的存储单元上存储的数据就会出现在数据总线上面。课本P148-154/核心板上的存储块储存器映射—给芯片内、外的Flash、RAM、BootBlock和外设进行统一编址。即用地址表示对象。一般芯片厂商都把这些地址分配好了,用户只能用而不能改。如LPC2290如下表。U13SST39VF1601NorFlash(2M)核心板正面核心板背面U3K9F2808U0CNandFlash(16M)片内SRAM(16

3、K)U12MT45W4MW16PSRAM(8M)U5CAT1025E2PRAM(2KB)LPC2290片内没有ROM,也是外扩片外的Flash复习映射示意图复习LPC2290映射图,(三)P9片内SRAM(16K)U3K9F2808U0CNandFlash(16M)U13SST39VF1601NorFlash(2M)U12MT45W4MW16PSRAM(8M)U5CAT1025E2PRAM(2KB)普通的单片机把可执行代码和数据存放到存储器中。单片机中的CPU从储器中取指令代码和数据。其中存储器中

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

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

6、0x00000000~0x0000003F地址就是存取0x80000000~0x8000003F范围内的存储单元。图a、b只显示出第一个异常向量的地址重映射,整个异常向量表的地址重映射等同这个过程。图a二、图b描述示了ARM芯片的另外一种映射方式。这个映射可以由用户决定采用还是不采用(相关代码在工程文件的startup.s中,这个文件是第三方提供,用户可以修改)。这个映射主要是为了提高应用程序异常相应得速度。当我们把应用程序存放在片内FLASH的时候,异常向量表存放在0x00000000~0x00

7、00003F存储单元内。每次发生异常,CPU从0x00000000~0x0000003F地址上取异常向量。但是对RAM的存取速度远高于对FLASH的存取速度,所以为了提高异常相应速度我们采取以下做法:图bStep 1:先把0x00000000~0x0000003F(FLASH)存储单元内的异常向量表复制到0x40000000~0x4000003F(片内RAM的最低端64个字节的存储单元)范围内存储单元中。Step 2:把0x40000000~0x4000003F范围内存储单元地址重新映射到0x00

8、000000~0x0000003F地址范围。 这样做了以后,当异常发生的时候,CPU取异常向量就是从RAM区中的异常向量表中区,速度快了。比如复位中断发生,CPU从地址0x00000000取指令,但此时由于已经过地址重新映射,这个0x00000000被地址转换器转换成0x40000000,CPU实际上是取的RAM区中0x400000000这个存储单元内的指令(异常向量)。 当然用户可以不进行这种映射。片内FLASH中0x00000000~0x0000003F存储单元具有一模一样的异

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。