ARM Cortex-M 存储器映射

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等
  • 访问:通过FSMC(Flexible 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 0000(Flash)
    • 0x2000 0000(RAM)
    • 0x8000 0000(外部Flash)
  • 通过VTOR寄存器(Vector Table Offset Register)设置

3. 内存属性与访问权限

  • 不同区域有不同的访问属性:
    • 可执行(X)、可读®、可写(W)
    • 缓存(Cache)和缓冲(Buffer)属性
    • 特权/非特权访问控制

五、Cortex-M系列差异

特性Cortex-M0/M0+Cortex-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 └───────────────┘

七、开发中的注意事项

  1. 启动配置:通过BOOT引脚或选项字节选择启动区域
  2. 链接脚本:正确配置代码、数据、堆栈的内存区域
  3. 外设访问:使用CMSIS定义的外设寄存器结构体
  4. 对齐访问:确保数据按正确对齐方式访问
  5. 内存保护:合理配置MPU保护关键区域

八、总结

Cortex-M的存储器映射设计提供了:

  • 统一的地址空间,简化编程模型
  • 固定的区域划分,确保代码可移植性
  • 灵活的重定位能力,适应不同应用需求
  • 硬件加速特性(如位带),提高实时性

理解存储器映射对于:

  • 优化内存使用
  • 调试内存相关问题
  • 设计高效的嵌入式系统
  • 实现可靠的安全机制

都具有重要意义。在实际开发中,建议结合具体芯片的参考手册和CMSIS库来准确理解和使用存储器映射。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/1195935.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

CRMEB多商户系统(PHP)- 移动端二开之基本容器组件使用

1、二开为什么要使用基本容器组件在做CRMEB 多商户系统(PHP)移动端二开的时候,最消磨耐心的往往不是业务逻辑,而是那些琐碎却必须处理的 UI 适配问题,例如全面屏手机顶部的“刘海”和“灵动岛”, 底部安全区…

【必看】成都配眼镜攻略,实测答案:性价比高、专业的地方推荐

【必看】成都配眼镜攻略,实测答案:性价比高、专业的地方推荐 如果你在成都搜“成都配眼镜哪里好”,多半不是因为你想换个新镜框,而是因为你已经被现实折磨过一轮了:戴着看得清,但一到下午就眼胀;手机能看清,抬头看远处…

VSCode远程连接AlmaLinux虚拟机问题总结

一、问题概述今天在通过VSCode Remote-SSH插件连接AlmaLinux虚拟机(VirtualBox)时,主要遇到以下三个阶段的问题:问题阶段核心问题影响解决状态第一阶段​SSH认证失败无法建立连接✅ 已解决第二阶段​VS Code Server安装失败连接后…

成都配眼镜攻略:4家专业且性价比高地方推荐,别再为溢价买单

成都配眼镜攻略:4家专业且性价比高地方推荐,别再为溢价买单 “孩子配的防控镜越戴度数越高”“加班两小时眼胀到流泪”“应急配镜花了双倍钱还不舒服”—— 在成都配眼镜,你是不是也踩过这些坑?结合上千用户真实体验,…

新虚拟机安装 Go 环境:问题总结与解决方案

一、问题时间线回顾阶段问题现象根本原因初始阶段​bash: go: command not foundGo 环境未安装安装后阶段​Failed to run /usr/local/go/bin/go env网络无法访问官方源工具安装阶段​requires go > 1.25版本不兼容下载阶段​i/o timeout网络代理未配置二、核心问题与解决方…

勤能补拙的艺术:分享基础差怎么备考主治医师的核心方法

勤能补拙的艺术:分享基础差怎么备考主治医师的核心方法对医务工作者来说,主治医师职称是专业能力的有效认证,更是职业晋升的关键阶梯。随着行业发展与人才评价体系完善,通过主治医师考试成为医生职业跃升的硬性要求…

Nginx转发自定义请求头踩坑实录:跨域、移动端影响及全场景解决方案

在微服务架构中,Nginx 作为反向代理与 Gateway(如 Spring Cloud Gateway)配合是常见组合,常需通过自定义请求头(如灰度标识 color_sign)实现灰度发布、权限校验等功能。但实际配置中易出现请求头丢失、跨域…

一维、二维、三维热传导方程的MATLAB数值求解方法

一、一维热传导方程 MATLAB实现(显式法): % 参数设置 L = 1.0; % 杆长 (m) Nx = 50; % 空间节点数 dx = L/(Nx-1); % 空间步长 (m) alpha = 0.01; % 热扩散率 (m/s) T_left = 100; % …

Free MP4 to MP3 Converter

https://freeconvert.cc/en/mp4-to-mp3/

扩展方法#x2B;泛型#x2B;委托#x2B;Lambda 联合使用

笔记:SetDefaultValue方法拆解(扩展方法泛型委托Lambda)核心功能 为Entity对象安全取值:指定字段名,有值则用委托转换后返回,无值/转换失败则返回默认值。白话拆解(以取Name为例) 原…

主治医师备考新路径:数字化备考技巧与智能平台解析

主治医师备考新路径:数字化备考技巧与智能平台解析随着我国医疗卫生事业的快速发展,医师职称晋升已成为医疗人才队伍建设的重要环节。然而,临床工作强度持续增加带来的“工学矛盾”日益凸显,传统备考模式已难以适应…

【必看收藏】深入解析LangGraph中的LLM智能体交接机制:从条件边到Command对象

本文探讨了多智能体系统中智能体交接的核心概念,介绍了LangGraph框架如何通过条件边和Command对象两种机制实现智能体间的控制权转移。文章以房地产助手为例,详细演示了监督者模式下的三智能体系统架构,以及如何在交接过程中传递状态和上下文…

导师严选2026 AI论文平台TOP10:继续教育必备工具测评

导师严选2026 AI论文平台TOP10:继续教育必备工具测评 2026年AI论文平台测评:为何需要一份权威榜单? 在当前学术研究日益数字化的背景下,AI写作工具已成为科研人员不可或缺的辅助手段。然而,面对市场上琳琅满目的平台…

北京配眼镜攻略,不踩坑的逻辑:从需求开始,专业眼镜店推荐

北京配眼镜攻略,不踩坑的逻辑:从需求开始,专业眼镜店推荐 验光不准导致头晕眼胀、镜片溢价虚高、售后承诺落空 —— 这是北京人配镜时最常遇到的三大痛点。基于验光专业性、镜片品质稳定性、售后服务执行力、性价比四大…

英伟达MMU 演进

架构世代核心代号 (年份)MMU/内存管理关键特性Tesla (2006-2009)G80 (2006)首次引入GPU MMU概念;基本虚拟内存支持;独立的GPU内存地址空间;简单的页表管理机制GT200 (2008)改进的页表支持;更大的虚拟地址空间;基础的内…

深圳GEO优化服务商哪家强?昊客网络凭AI技术跻身行业前十,制造业企业首选

2026年,“被AI推荐”已成为企业获客的新黄金入口。 随着ChatGPT、Kimi、豆包、文心一言等生成式AI成为用户获取信息的首要渠道,传统SEO和SEM正在加速失效——谁的内容能被AI“信任并主动推荐”,谁就掌握了下一代流量…

文本补全软件 espanso 配置某个应用单独使用某个补全

espanso 官网:https://espanso.org/ (1) config是配置文件目录 match是放补全规则的地方 (2) 先在match文件夹建补全规则 注意文件名以下划线开头,代表这个文件默认不生效 matches:- trigger: "s…

C++课后习题训练记录Day73

1.练习项目: 问题描述 在生物学中,DNA 序列的相似性常被用来研究物种间的亲缘关系。现在我们有两条 DNA 序列,每条序列由 A、C、G、T 四种字符组成,长度相同。但是现在我们记录的 DNA 序列存在错误,为了严格满足 DNA…

深圳昊客网络|GEO优化推广系统厂家/公司/服务商:排名前十机构哪好点?

2026年,GEO(生成式引擎优化)推广早已从“可选营销工具”升级为企业抢占流量高地的“必答题”,尤其在深圳这座科技创新之城,各类GEO优化推广系统厂家、公司、服务商扎堆涌现,网传的“排名前十”机构更是让人挑花了…

JAVA电子合同电子签名系统源码支持小程序+公众号+APP+H5

全栈JAVA电子合同电子签名系统源码:多端融合的数字化签约解决方案行业优势与市场前景分析在数字经济高速发展的今天,JAVA电子合同电子签名系统源码已成为企业数字化转型的核心基础设施。随着《电子签名法》的深入实施和数字化办公需求的爆发式增长&#…