ADuC7026的存储器组织结构概述
0赞
发表于 6/18/2012 9:31:52 PM
阅读(3769)
ADuC7026模拟微控制器是ADI公司生产的高性能单片机,它在单个芯片内包含了一个高性能多通道ADC,一个16位/32位微控制器(MCU)和一个闪速/电擦除存储器。
ADuC7026共有两个独立存储器模块:8KB的SRAM和64KB的片内Flash/EE存储器,其中62KB的片内Flash/EE可供用户使用,剩余2KB被保留用于厂家配置BOOT页面。这两个存储器模块的映射如下图所示。两个模块的映像图如下图所示:

注意默认情况下,复位之后,Flash/EE存储器被镜像到地址0x00000000。通过REMAPMMR的Bit0位置0,可以重新把SRAM映射到0x00000000。这种重映射功能在Flash/EE存储器部分有更详细描述。
1.存储器的访问方式
ARM7体系结构把存储器空间看作是2^32个8位字节的线性地址空间,该线性空间内存储器不同模块的映射图如下图所示。
ADuC7026存储器结构配置为小端模式,也就是说数据最低有效字节位于最低位的物理地址,数据最高有效字节位于最高位的物理地址。

2. FLASH/EE存储器
64KB的Flash/EE为32K×16位格式,其中31K×16位是用户空间,1K×16位用于芯片内核。Flash/EE的页面大小为512个字节。62KB的片内Flash/EE可以存储用户代码和非易失性数据。数据和代码之间没有区别因为ARM代码及数据共用同一空间。Flash/EE存储器的实际宽度为16位,这意味着在ARM模式下每一次执行一个指令(32位指令),必须读取两次Flash/EE存储器。因此,当Flash/EE中执行程序时,为得到更高的存取速度, 建议使用thumb 代码。以thumb 代码模式存取Flash/EE的最大速度41.78MHz,而相应的以全ARM模式为20.89MHz。更多关于Flash/EE存取时间的描述可参见SRAM和Flash/EE中的执行时间部分。SRAM用户可以使用8KB的SRAM,它的组织形式为2K×32位,即两个字。如果SRAM被配置成32位宽的存储器阵列,ARM代码可以直接在SRAM中以41.78MHz的速度执行。更多关于SRAM存取时间的描述可参见SRAM和Flash/EE中的执行时间部分。
3.存储器映射寄存器
存储器映射寄存器(MMR)空间被映射到存储器阵列的最上方两页,并且我们可以通过间接寻址ARM7寄存器组来存取存储器映射寄存器空间。存储器映射寄存器(MMR)空间为CPU和所有片上外设提供一个接口。除了内核寄存器,所有的寄存器都在MMR区域。
下图所有的阴影区域是未占用或保留区域,不可以被用户软件访问。读取或写入一个MMR所需的存取时间取决于高级微控制器总线结构(AMBA)总线,这个总线用来访问外围设备。处理器有两个AMBA总线:高级性能总线(AHB)用于系统模块,高级外设总线(APB)用于低性能外围设备。访问AHB需要一个周期,访问APB需要两个周期。除了Flash/EE、GPIO和PWM以外,其它所有ADuC7026的外围设 备都连接到APB总线。

