STM32存储器和总线架构学习

发布时间:2023-08-31  

要学习一个MCU,首先要学习这个芯片的架构,比如这个芯片是32bit 的RSIC V还是哈佛架构,对于STM32F4,它采用ARMv7-ME架构,是32位处理器,哈佛结构,三级流水线,Thumb-2指令集,扩展的DSP指令和SIMD指令,单周期MAC,可选的单精度FPU,可选的MPU,可选的Debug$trace接口

可配置的NVIC,可配置的WIC(wakeup interrupt controller)

3套AHB-Lite总线接口

主系统由 32 位多层 AHB 总线矩阵构成,可实现以下部分的互连:

  • 八条主控总线:

  • Cortex™-M4F 内核,Icode总线(I-bus,读取指令)Dcode总线(D-bus,访问数据),System总线(S-bus,内核系统总线)

  • DMA1 存储器总线

  • DMA2 存储器总线

  • DMA2 外设总线

  • 以太网 DMA 总线

  • USB OTG HS DMA 总线

  • 七条被控总线:

  • 内部 Flash ICode 总线

  • 内部 Flash DCode 总线

  • 主要内部 SRAM1 (112 KB)

  • 辅助内部 SRAM2 (16 KB)

  • 辅助内部 SRAM3 (64 KB)(仅适用于 STM32F42xxx 和 STM32F43xxx 器件)

  • AHB1 外设(包括 AHB-APB 总线桥和 APB 外设)

  • AHB2 外设

  • FSMC

图片

每次芯片复位后,所有外设时钟都被关闭(SRAM 和 Flash 接口除外)。使用外设前,必须 在 RCC_AHBxENR 或 RCC_APBxENR 寄存器中使能其时钟。

注意:对 APB 寄存器执行 16 位或 8 位访问时,该访问将转换为 32 位访问:总线桥将 16 位或 8 位数据复制后提供给 32 位向量。

存储器组织结构

程序存储器、数据存储器、寄存器和 I/O 端口排列在同一个顺序的 4 GB 地址空间内。

各字节按小端格式在存储器中编码。字中编号最低的字节被视为该字的最低有效字节,而编号最高的字节被视为最高有效字节。

可寻址的存储空间分为 8 个主要块,每个块为 512 MB。

嵌入式 SRAM

STM32F405xx/07xx 和 STM32F415xx/17xx 带有 4 KB 备份 SRAM和 192 KB 系统 SRAM。

系统 SRAM 可按字节、半字(16 位)或全字(32 位)访问。读写操作以 CPU 速度执行, 且等待周期为 0。系统 SRAM 分为三个块:

映射在地址 0x2000 0000 的 112 KB 和 16 KB 块,可供所有 AHB 主控总线访问。

在地址 0x1000 0000 映射的 64 KB 块,只能供 CPU 通过数据总线访问。

图片

Flash

Flash 接口可管理 CPU 通过 AHB I-Code 和 D-Code 对 Flash 进行的访问。该接口可针对 Flash 执行擦除和编程操作,并实施读写保护机制。Flash 接口通过指令预取和缓存机制加速 代码执行

Flash 具有以下主要特性:

● 对于 STM32F40x 和 STM32F41x,容量高达 1 MB;

● 128 位宽数据读取

● 字节、半字、字和双字数据写入

● 扇区擦除与全部擦除

● 存储器组织结构

Flash 结构如下:

● 主存储器块,分为 4 个 16 KB 扇区、1 个 64 KB 扇区和 7 个 128 KB 扇区

● 系统存储器,器件在系统存储器自举模式下从该存储器启动

● 512 字节 OTP(一次性可编程),用于存储用户数据

OTP 区域还有 16 个额外字节,用于锁定对应的 OTP 数据块。

● 选项字节,用于配置读写保护、BOR 级别、软件/硬件看门狗以及器件处 于待机或停止模式下的复位。

● 低功耗模式

图片

对比一个建立好的工程文件,对SRAM和ROM的默认配置如下

图片

说明STM32F407系列主要用的ROM是4个16KB的扇区,SRAM用的是 112 KB 和 16 KB 的SRAM,同时也可以勾选 0x1000 0000 映射的 64 KB 区域,但是这一部分只能供CPU通过数据访问。

位段

Cortex™-M4F 存储器映射包括两个位段区域。这些区域将存储器别名区域中的每个字映射 到存储器位段区域中的相应位。在别名区域写入字时,相当于对位段区域的目标位执行读-修改-写操作。

在 STM32F4xx 器件中,外设寄存器和 SRAM 均映射到一个位段区域,这样可实现单个位段的 读写操作。这些操作仅适用于 Cortex™-M4F 访问,对于其它总线主接口(如 DMA)无效。

可通过一个映射公式说明别名区域中的每个字与位段区域中各个位之间的对应关系。映射公式为:

bit_word_addr = bit_band_base + (byte_offset x 32) + (bit_number × 4)

其中:

— bit_word_addr 代表别名区域中将映射到目标位的字的地址

— bit_band_base 代表别名区域的起始地址

— byte_offset 代表目标位所在位段区域中的字节编号

— bit_number 代表目标位的位位置 (0-7)。

示例

下例说明如何将 SRAM 地址 0x20000300 处字节的位 2 映射到别名区域:

0x22006008 = 0x22000000 + (0x30032) + (24)

对地址 0x22006008 执行写操作相当于在 SRAM 地址 0x20000300 处字节的位 2 执行读-修 改-写操作。

对地址 0x22006008 执行读操作将返回 SRAM 地址 0x20000300 处字节的位 2 的值(0x01 表示位置位,0x00 表示位复位)。

自举配置

存储器采用固定的存储器映射,代码区域起始地址为 0x0000 0000(通过 ICode/DCode 总 线访问),而数据区域起始地址为 0x2000 0000(通过系统总线访问)。Cortex™-M4F CPU 始终通过 ICode 总线获取复位向量,这意味着只有代码区域(通常为 Flash)可以提供 自举空间。STM32F4xx 微控制器实施一种特殊机制,可以从其它存储器(如内部 SRAM) 进行自举。

在 STM32F4xx 中,可通过 BOOT[1:0] 引脚选择三种不同的自举模式

图片

所以,一般情况下,我们板子上配置的都是BOOT0拉低,如果在调试时,则可以将BOOT0,BOOT1都拉高,以此来降低FLASH的擦写次数,提高寿命。

但是也要注意,如果器件从 SRAM 自举,在应用程序初始化代码中,需要使用 NVIC 异常及中断向量表和偏 移寄存器来重新分配 SRAM 中的向量表。

复位后,在 SYSCLK 的第四个上升沿锁存 BOOT 引脚的值。复位后,用户可以通过设置 BOOT1 和 BOOT0 引脚来选择需要的自举模式。

BOOT0 为专用引脚,而 BOOT1 则与 GPIO 引脚共用。一旦完成对 BOOT1 的采样,相应 GPIO 引脚即进入空闲状态,可用于其它用途。

器件退出待机模式时,还会对 BOOT 引脚重新采样。因此,当器件处于待机模式时,这些引 脚必须保持所需的自举模式配置。这样的启动延迟结束后,CPU 将从地址 0x0000 0000 获 取栈顶值,然后从始于 0x0000 0004 的自举存储器开始执行代码。

嵌入式自举程序

嵌入式自举程序模式用于通过以下串行接口重新编程 Flash:

● USART1(PA9/PA10)

● USART3(PB10/11 和 PC10/11)

● CAN2(PB5/13)

● USB OTG FS(PA11/12) 从设备模式(DFU:器件固件升级)。

USART 外设以内部 16 MHz 振荡器 (HSI) 频率运行,而 CAN 和 USB OTG FS 则需要相当 于 1 MHz 数倍(4 MHz 到 26 MHz 之间)的外部时钟 (HSE) 频率。

嵌入式自举程序代码位于系统存储器中,在芯片生产期间由 ST 编程。


文章来源于:电子工程世界    原文链接
本站所有转载文章系出于传递更多信息之目的,且明确注明来源,不希望被转载的媒体或个人可与我们联系,我们将立即进行删除处理。

我们与500+贴片厂合作,完美满足客户的定制需求。为品牌提供定制化的推广方案、专属产品特色页,多渠道推广,SEM/SEO精准营销以及与公众号的联合推广...详细>>

利用葫芦芯平台的卓越技术服务和新产品推广能力,原厂代理能轻松打入消费物联网(IOT)、信息与通信(ICT)、汽车及新能源汽车、工业自动化及工业物联网、装备及功率电子...详细>>

充分利用其强大的电子元器件采购流量,创新性地为这些物料提供了一个全新的窗口。我们的高效数字营销技术,不仅可以助你轻松识别与连接到需求方,更能够极大地提高“闲置物料”的处理能力,通过葫芦芯平台...详细>>

我们的目标很明确:构建一个全方位的半导体产业生态系统。成为一家全球领先的半导体互联网生态公司。目前,我们已成功打造了智能汽车、智能家居、大健康医疗、机器人和材料等五大生态领域。更为重要的是...详细>>

我们深知加工与定制类服务商的价值和重要性,因此,我们倾力为您提供最顶尖的营销资源。在我们的平台上,您可以直接接触到100万的研发工程师和采购工程师,以及10万的活跃客户群体...详细>>

凭借我们强大的专业流量和尖端的互联网数字营销技术,我们承诺为原厂提供免费的产品资料推广服务。无论是最新的资讯、技术动态还是创新产品,都可以通过我们的平台迅速传达给目标客户...详细>>

我们不止于将线索转化为潜在客户。葫芦芯平台致力于形成业务闭环,从引流、宣传到最终销售,全程跟进,确保每一个potential lead都得到妥善处理,从而大幅提高转化率。不仅如此...详细>>