存储技术
4 系统与存储器架构
4.1 系统架构
主系统包括:
l 两个主机:
- Cortex -M0+core
- DMA
l 三个从机:
- SRAM
- Flash
- AHB:带有 AHB-to-APB的总线桥,连接 AHB 和 APB 所有外设所有外设通过多层 AHB 总线架构连接,
4.1.1 SystemBus
该总线用于将 Cortex-M0+内核连接到 BusMatrix,内核通过此总线进行取指、数据操作以及访问AHB/APB外设。
4.1.2 DMABus
该总线用于将 DMA的 AHB接口连接到 BusMatrix,DMA通过此总线访问 Flash、SRAM 以及 AHB/APB外设。
4.1.3 BusMatrix
总线矩阵包含两个主机(CPU、DMA)和三个从机(Flash、SRAM、带有 AHB-to-APB总线桥的 AHB);使用 RoundRobin 算法管理 Cortex-M0+内核的SystemBus 和 DMABus 的访问仲裁。
4.1.4 AHBto APB 总线桥
AHB toAPB 总线桥用于连接 AHB 和 2 条 APB 总线,可以实现 AHB 和 APB 总线的同步;APB1 和 APB2 的最高工作频率可达 48MHz。
4.2 存储器
4.2.1 SRAM
SRAM 总容量 16KB,支持按字节(8 位)、半字(16 位)或字(32 位)访问。支持以最高系统时钟频率(48MHz)进行寻址,无需插入等待周期。
4.2.2 Flash
Flash 存储器区域划分如下:
l User flash 区:它包含应用程序和用户数据,由用户管理;
l System memory 区:包含 Bootloader和算法 API;
l Option bytes 区:用于外设和存储器保护配置的选项字节;
l Engineer 区:包含了 UID、TS/BGR 校准值;
l OTP 区:一次性可编程区域;Flash 接口根据 AHB 协议实现指令访问和数据访问,可支持通过 Flash 寄存器控制 Flash 操作(编程/擦除)。
4.3 存储器映射
程序存储器、数据存储器、寄存器和 I/O 端口排列在一个地址连续的 4GB 地址空间内。数据按小端格式保存在存储器中,地址最小的存储单元保存该字的最低位数据,而地址最大的存储单元保存该字的最高位数据。可寻址的存储空间分为8 个块,每个块为 512 MB。
4.4 启动配置
CIU32L0x系列微控制器提供了 3 种启动模式,通过 BOOT0 引脚和选项字节(BOOT_LOCK、RDP、BOOT_SEL、BOOT0_SW、BOOT1_SW)进行选择;复位后,根据选择的启动模式,将对应的存储空间重映射到0x00000000 地址;CPU 先从地址 0x00000000 获取栈顶值,然后从地址 0x00000004 获取代码的启 动地址,开始执行程序。使用修改选项字节的方式来改变启动模式,修改后启动模式不会立即生效,可通过如下方式生效启动模式:
l 触发 POR/PDR 复位;
l 退出 Standby;
l 启动选项字节加载,根据启动模式的选择,Userflash、Bootloader或 SRAM 可以通过如下地址进行访问:
l 从 User flash 启动:User flash(地址开始于 0x0800 0000)的存储空间会同时被映射到地址 0x00000000,但原始地址 0x08000000 的存储空间也可以进行访问;也就是说,Userflash 的存储空间通过 0x00000000 或 0x08000000 均可以访问;
l 从 Bootloader 启动:Bootloader(地址开始于 0x1FFD 0000)的存储空间会 同时被映射到地址 0x00000000,但原始地址 0x1FFD0000 的存储空间也可以进行访问;
l 从 SRAM 启动:SRAM(地址开始于 0x2000 0000)的存储空间会同时被映射到地址 0x00000000,但原始地址 0x20000000 的存储空间也可以进行访问;当 RDP 为等级 2 时,无论 BOOT_SEL、BOOT0_SW、BOOT1_SW以及 BOOT0 引脚配置如何,均会从 Userflash 启动。当 BOOT_LOCK(位于选项字节的 FLASH_SECR寄存器)置位时,无论 RDP、BOOT_SEL、BOOT0_SW、BOOT1_SW以及 BOOT0 引脚配置如何,均会强制从 Userflash启动;BOOT_LOCK配置详细描述参见 Userflash 区强制启动。
4.4.1 存储区重映射
当启动模式确定后,就可以通过 0x00000000 地址对重映射的存储器进行访问;软件也可以通过修改MEM_MODE[1:0]位(位于系统控制寄存器(SYSCFG_CR))对 0x00000000 地址的存储器映射进行更改。
4.4.2 Bootloader
Bootloader位于 Systemmemory,用于对 Userflash 进行编程。Bootloader支持以下通信接口:
l USART1:PA11/PA12
l SPI1:PA4/PA5/PA6/PA7
编辑:黄飞
全部0条评论
快来发表一下你的评论吧 !