欢迎来到天天文库
浏览记录
ID:55595174
大小:1.88 MB
页数:54页
时间:2020-05-20
《存储器管理(带存储器实例).ppt》由会员上传分享,免费在线阅读,更多相关内容在PPT专区-天天文库。
1、桂林电子科技大学,信息通信学院14.3存储器管理LPC2400系列芯片使用三种存储器:片内Flash、片内RAM和外部扩展存储器。LPC2400系列芯片集成了512KB的片内Flash存储器和64KB的静态SRAM(LPC2470没有片内Flash)。片内Flash存储器可以用做代码和数据的固态存储。对Flash存储器的编程可以通过几种方法来实现:通过串口UART0进行的在系统编程(ISP),通过调用嵌入片内的固化代码进行的在应用编程(IAP)以及通过内置的JTAG接口编程。片内SRAM支持8位、16位和32位访问。外部扩展存储器则使用外部存储器接口进行扩展,通过外部存储器控制
2、器(EMC)可以扩展两组共8个Bank的存储器组(Staticmemorybank0~bank3,Dynamicmemorybank0~bank3)。桂林电子科技大学,信息通信学院2存储器映射桂林电子科技大学,信息通信学院3外设存储器映射LPC2400系列处理器的外设根据内部总线分为AHB和APB外设两类。AHB外设和APB外设在存储空间里都占2MB的区域,可各自分配最多128个外设。每个外设空间的规格都为16KB。所有外设寄存器不管规格大小,都按照字地址进行分配(32位边界),且不管字还是半字寄存器都是一次性访问。例如,不可能对一个字寄存器的最高字节执行单独的读或写操作。AH
3、B地址分配见如4.5,APB地址分配间表4.11。桂林电子科技大学,信息通信学院4桂林电子科技大学,信息通信学院5LPC2478.h头文件举例桂林电子科技大学,信息通信学院6存储器重映射(MEMORYREMAP)存储器映射的基本概念每个存储器组在存储器映射中都有一个“物理上的”位置。它是一个地址范围,该范围内可写入程序代码,每个存储空间的大小是固定的,这样就不需要将代码设计成在不同地址范围内运行。这样做代码就可以很方便的移植了。如果向没有地址映射的存储空间进行读写访问,将引发预取指令或数据中止异常。桂林电子科技大学,信息通信学院7关于BOOTROM片内FLASH的最后8KB空间
4、是保留的,里面固化了对FLASH进行编程、擦除,程序引导等固件FIRMWARE。在用户程序运行是可以调用其中的程序对FLASH进行在应用编程IAP,可以对FLASH进行串行编程的程序ISP。处理器在硬件启动时BOOTROM空间被映射到0x7FFFE000处运行。作用是引导用户程序运行。桂林电子科技大学,信息通信学院8存储器重映射由于ARM7处理器上的中断向量所处具体位置(地址0x00000000~0x0000001C)与LPC的片内存储器空间有冲突,BootROM和SRAM空间的一小部分空间需要重新映射,来实现在不同操作模式下对中断的不同使用。这个过程叫存储器重映射。桂林电子科
5、技大学,信息通信学院9存储器重映射存储器重新映射的部分允许在不同模式下处理中断。LPC2400共支持3种存储器映射模式,见表4.13。当处理器工作在用户Flash模式下时,不需要进行中断向量的重新映射,而在其它模式下则需要重新映射。它包括中断向量区(32字节)和额外的32字节,一共是64字节。重新映射的代码位置与地址0x00000000~0x0000003F重叠,包含在SRAM、Flash和BootBlock中的向量必须包含跳转到实际中断处理程序的分支或者其它执行跳转到中断处理程序的转移指令。桂林电子科技大学,信息通信学院10存储器映射控制寄存器MEMMAP存储器映射控制寄存器
6、用于改变从地址0x00000000开始的中断向量的映射。这允许运行在不同存储器空间中的代码对中断进行控制。MEMMAP是一个可读写寄存器,地址为0xE01FC040,功能为选择从FlashBootBlock、用户Flash或RAM中读取ARM中断向量。桂林电子科技大学,信息通信学院11存储器映射控制寄存器MEMMAPLPC2400的MAP位的硬件复位值为00。Boot装载程序会将用户看到的复位值更改,该程序总是在复位后立即运行。存储器映射控制寄存器MEMMAP只从处理ARM异常(中断)必需的3个数据源(FLASH中断向量、SRAM中断向量和BootROM中断向量,每个64字节)
7、中选择一个使用。中断向量:0x00000008实际中断向量MEMMAP[1:0]=00(boot模式)0x7FFFE008MEMMAP[1:0]=01(Flash模式)0x00000008MEMMAP[1:0]=10(用户模式)0x40000008桂林电子科技大学,信息通信学院12设置MEMMAP程序示例桂林电子科技大学,信息通信学院13存储器加速模块(MAM,MemoryAcceleratorModule)存储器加速模块(MAM)可以将需要的下一个ARM指令锁存,以防止CPU取指暂停。与以
此文档下载收益归作者所有