STM32F103c8t6的内存空间

STM32F103C8T6 是一款基于 ARM Cortex-M3 内核的微控制器,其内存空间配置如下:

1. Flash 存储器(程序存储器)

  • 大小:64 KB(64 * 1024 字节)
  • 地址范围:0x0800 0000 - 0x0800 FFFF

Flash 存储器主要用于存放用户程序和常量数据。启动时,MCU 会从 Flash 的起始地址(0x0800 0000)开始执行用户代码。

2. SRAM(数据存储器)

  • 大小:20 KB
  • 地址范围:0x2000 0000 - 0x2000 4FFF

SRAM 用于存储程序运行时的动态数据,包括全局变量、栈和堆。在 STM32F103C8T6 上,有 20 KB 的 SRAM 可用,位于 0x2000 0000 至 0x2000 4FFF。

3. 外设寄存器地址空间

  • 地址范围:0x4000 0000 - 0x5006 03FF

外设寄存器用于控制和配置 STM32F103C8T6 的各种外设模块(如 GPIO、USART、ADC 等)。每个外设模块通常映射到固定的寄存器地址空间中,用户可以通过这些地址配置外设。

4. 系统内存(Bootloader 区域)

  • 大小:不固定,一般少于 32 KB
  • 地址范围:0x1FFF F000 - 0x1FFF F7FF

系统内存包含 STM32 自带的 Bootloader 程序,用于在上电复位时通过串口、USB、CAN 或其他接口加载程序代码。这段代码不可更改,主要用于芯片的固件升级或程序下载。

5. Cortex-M3 内部的 PPB(私有外围总线)空间

  • 地址范围:0xE000 0000 - 0xE00F FFFF

该空间包含系统控制寄存器、调试支持寄存器和 NVIC(嵌套向量中断控制器)等,用于芯片的中断控制和调试支持。

内存分布图概述

内存区域 大小 地址范围 用途
Flash 64 KB 0x0800 0000 - 0x0800 FFFF 程序存储
SRAM 20 KB 0x2000 0000 - 0x2000 4FFF 数据存储
系统内存 < 32 KB 0x1FFF F000 - 0x1FFF F7FF Bootloader 区域
外设寄存器地址空间 - 0x4000 0000 - 0x5006 03FF 外设控制寄存器
PPB 区域 - 0xE000 0000 - 0xE00F FFFF 系统控制和调试

这些内存地址空间分配使得 STM32F103C8T6 具备了灵活的代码、数据存储及外设控制功能,适用于各种嵌入式开发应用。

你可能感兴趣的:(STM32,stm32,单片机,嵌入式硬件)