浅谈CIU32L061x8系统与存储器架构

存储技术

606人已加入

描述

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

编辑:黄飞

 

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分