2026/6/20 1:46:35
网站建设
项目流程
飞鱼crm系统,西安网站建设网站排名优化,免费申请网站空间和域名,网站建设设计培训班ARM Cortex-M 存储器映射
一、概述
ARM Cortex-M处理器的存储器映射是一个统一编址的32位地址空间#xff08;4GB#xff09;#xff0c;这个空间被预定义为不同的功能区域#xff0c;每个区域有特定的用途和访问特性。
二、存储器映射整体布局
0xFFFFFFFF ┌─────…ARM Cortex-M 存储器映射一、概述ARM Cortex-M处理器的存储器映射是一个统一编址的32位地址空间4GB这个空间被预定义为不同的功能区域每个区域有特定的用途和访问特性。二、存储器映射整体布局0xFFFFFFFF ┌──────────────────────┐ │ 私有外设总线(PPB) │ 0xE0100000 └──────────────────────┘ │ 保留区域 │ 0xE0000000 └──────────────────────┘ │ 外部设备区域 │ 0xA0000000 └──────────────────────┘ │ 外部RAM区域 │ 0x60000000 └──────────────────────┘ │ 外部ROM/Flash区域 │ 0x40000000 └──────────────────────┘ │ 片上外设区域 │ 0x20000000 └──────────────────────┘ │ 片上SRAM区域 │ 0x00000000 └──────────────────────┘三、主要存储器区域详解1. 代码区域 (0x0000 0000 - 0x1FFF FFFF) - 512MB用途存储程序代码、常量数据和中断向量表访问通过ICode和DCode总线访问支持字节、半字、字访问典型包含Flash存储器ROM部分片上RAM用于代码执行2. 片上SRAM区域 (0x2000 0000 - 0x3FFF FFFF) - 512MB用途数据存储变量、堆栈、堆访问通过系统总线访问特点支持位带操作Bit-band通常分为多个SRAM块3. 片上外设区域 (0x4000 0000 - 0x5FFF FFFF) - 512MB用途连接芯片上的所有外设包含GPIO端口定时器、串口、SPI、I2C等外设寄存器也支持位带操作4. 外部RAM区域 (0x6000 0000 - 0x9FFF FFFF) - 1GB用途连接片外SRAM、DRAM等访问通过FSMCFlexible Static Memory Controller灵活静态存储器控制器或外部总线接口5. 外部设备区域 (0xA000 0000 - 0xDFFF FFFF) - 1GB用途连接片外设备特点通常用于外部FPGA、CPLD或特殊外设6. 私有外设总线 (0xE000 0000 - 0xE00F FFFF) - 1MB核心重要性包含Cortex-M内核的系统控制功能PPB详细布局 0xE00F FFFF ┌──────────────────────┐ │ ROM表 │ 0xE00F F000 └──────────────────────┘ │ 保留 │ 0xE004 2000 └──────────────────────┘ │ TPIU (跟踪单元) │ 0xE004 0000 └──────────────────────┘ │ ETM (嵌入式跟踪) │ 0xE004 1000 └──────────────────────┘ │ DWT (数据观察点) │ 0xE000 1000 └──────────────────────┘ │ FPB (Flash补丁) │ 0xE000 2000 └──────────────────────┘ │ NVIC (中断控制器) │ 0xE000 E000 └──────────────────────┘ │ SCB (系统控制块) │ 0xE000 E000 └──────────────────────┘ │ SysTick定时器 │ 0xE000 E010 └──────────────────────┘ │ MPU (内存保护单元) │ 0xE000 ED90 └──────────────────────┘四、关键技术特性1. 位带操作目的实现单个位的原子操作地址映射SRAM位带别名区0x2200 0000 - 0x23FF FFFF外设位带别名区0x4200 0000 - 0x43FF FFFF计算公式别名区地址 位带基址 (字节偏移×32) (位号×4)2. 向量表重定位初始位置0x0000 0000从Flash启动可重定位到0x0000 0000Flash0x2000 0000RAM0x8000 0000外部Flash通过VTOR寄存器(Vector Table Offset Register)设置3. 内存属性与访问权限不同区域有不同的访问属性可执行(X)、可读®、可写(W)缓存(Cache)和缓冲(Buffer)属性特权/非特权访问控制五、Cortex-M系列差异特性Cortex-M0/M0Cortex-M3Cortex-M4/M7位带操作可选支持支持MPU可选可选标准(M7)或可选地址空间4GB4GB4GB(可选40位)向量表重定位支持支持支持六、实际芯片实现示例以STM32F4为例STM32F407 (Cortex-M4) 存储器映射 0xFFFFFFFF ┌───────────────┐ │ PPB │ 0xE0000000 └───────────────┘ │ 保留 │ 0x50000000 └───────────────┘ │ FMC/FSMC │ 0xA0000000 └───────────────┘ │ AHB1/2/3总线 │ 0x40000000 └───────────────┘ │ CCM RAM │ 0x10000000 └───────────────┘ │ SRAM2 │ 0x2001C000 └───────────────┘ │ SRAM1 │ 0x20000000 └───────────────┘ │ Flash │ 0x08000000 └───────────────┘ │ 系统存储器 │ 0x1FFF0000 └───────────────┘ │ 引导程序区 │ 0x00000000 └───────────────┘七、开发中的注意事项启动配置通过BOOT引脚或选项字节选择启动区域链接脚本正确配置代码、数据、堆栈的内存区域外设访问使用CMSIS定义的外设寄存器结构体对齐访问确保数据按正确对齐方式访问内存保护合理配置MPU保护关键区域八、总结Cortex-M的存储器映射设计提供了统一的地址空间简化编程模型固定的区域划分确保代码可移植性灵活的重定位能力适应不同应用需求硬件加速特性如位带提高实时性理解存储器映射对于优化内存使用调试内存相关问题设计高效的嵌入式系统实现可靠的安全机制都具有重要意义。在实际开发中建议结合具体芯片的参考手册和CMSIS库来准确理解和使用存储器映射。