STM32存储布局

发布者:平凡的梦想最新更新时间:2025-01-06 来源: jianshu关键字:STM32 手机看文章 扫描二维码
随时随地手机看文章

内存映射

单片机是内存映射控件,应用程序通过读写对应地址完成对外设的控制。

以STM32为例, 程序存储器、数据存储器寄存器和输入输出端口被组织在同一个4GB的线性地址空间内。

地址范围为0x0000 0000至0xFFFF FFFF。

image-20240118102645673.png?imageView2/2/w/1000

从内存映射布局可以看到:

  1. 片上Flash被映射到0x0800 0000-0x0801 FFFF的地址空间,通过读写这个地址空间,可以对Flash进行读写。

  2. 运行内存RAM被映射到0x2000 0000开始的一片区域。

更进一步,在MDK下,通过生成的map文件,可以直观地看到FLash和RAM更加细节的布局。


FLash布局

Memory Map of the image

Image Entry point : 0x080000b9

Load Region LR_IROM1 (Base: 0x08000000, Size: 0x000061d8, Max: 0x00020000, ABSOLUTE)

Execution Region ER_IROM1 (Exec base: 0x08000000, Load base: 0x08000000, Size: 0x00006120, Max: 0x00020000, ABSOLUTE)

Exec Addr    Load Addr    Size         Type   Attr Idx    E Section Name        Object                                        

0x08000000   0x08000000   0x000000b8   Data   RO   1193    RESET               startup_stm32g070xx.o

0x080000b8   0x080000b8   0x00000000   Code   RO   3003  * .ARM.Collect$$$$00000000  mc_p.l(entry.o)

0x080000b8   0x080000b8   0x00000004   Code   RO   3315    .ARM.Collect$$$$00000001  mc_p.l(entry2.o)

0x080000bc   0x080000bc   0x00000004   Code   RO   3318    .ARM.Collect$$$$00000004  mc_p.l(entry5.o)

0x080000c0   0x080000c0   0x00000000   Code   RO   3320    .ARM.Collect$$$$00000008  mc_p.l(entry7b.o)

0x080000c0   0x080000c0   0x00000000   Code   RO   3322    .ARM.Collect$$$$0000000A  mc_p.l(entry8b.o)

0x080000c0   0x080000c0   0x00000008   Code   RO   3323    .ARM.Collect$$$$0000000B  mc_p.l(entry9a.o)

0x080000c8   0x080000c8   0x00000000   Code   RO   3325    .ARM.Collect$$$$0000000D  mc_p.l(entry10a.o)

0x080000c8   0x080000c8   0x00000000   Code   RO   3327    .ARM.Collect$$$$0000000F  mc_p.l(entry11a.o)

0x080000c8   0x080000c8   0x00000004   Code   RO   3316    .ARM.Collect$$$$00002712  mc_p.l(entry2.o)

0x080000cc   0x080000cc   0x0000001c   Code   RO   1194    .text               startup_stm32g070xx.o

0x080000e8   0x080000e8   0x0000002c   Code   RO   3006    .text               mc_p.l(uidiv.o)

0x08000114   0x08000114   0x00000028   Code   RO   3008    .text               mc_p.l(idiv.o)

0x0800013c   0x0800013c   0x00000024   Code   RO   3010    .text               mc_p.l(memseta.o)

0x08000160   0x08000160   0x0000000e   Code   RO   3012    .text               mc_p.l(strlen.o)

0x0800016e   0x0800016e   0x0000001c   Code   RO   3014    .text               mc_p.l(strcmp.o)

0x0800018a   0x0800018a   0x0000001e   Code   RO   3016    .text               mc_p.l(strncmp.o)

0x080001a8   0x080001a8   0x0000007a   Code   RO   3307    .text               mf_p.l(fmul.o)

0x08000222   0x08000222   0x0000007c   Code   RO   3309    .text               mf_p.l(fdiv.o)

0x0800029e   0x0800029e   0x00000016   Code   RO   3311    .text               mf_p.l(fflti.o)

0x080002b4   0x080002b4   0x0000000e   Code   RO   3313    .text               mf_p.l(ffltui.o)

0x080002c2   0x080002c2   0x00000060   Code   RO   3330    .text               mc_p.l(uldiv.o)

0x08000322   0x08000322   0x00000000   Code   RO   3338    .text               mc_p.l(iusefp.o)

0x08000322   0x08000322   0x00000082   Code   RO   3339    .text               mf_p.l(fepilogue.o)

0x080003a4   0x080003a4   0x00000164   Code   RO   3341    .text               mf_p.l(dadd.o)

0x08000508   0x08000508   0x000000d0   Code   RO   3343    .text               mf_p.l(dmul.o)

0x080005d8   0x080005d8   0x000000f0   Code   RO   3345    .text               mf_p.l(ddiv.o)

0x080006c8   0x080006c8   0x00000040   Code   RO   3347    .text               mf_p.l(dfixul.o)

0x08000708   0x08000708   0x00000028   Code   RO   3349    .text               mf_p.l(cdrcmple.o)

0x08000730   0x08000730   0x00000024   Code   RO   3351    .text               mc_p.l(init.o)

0x08000754   0x08000754   0x00000020   Code   RO   3353    .text               mc_p.l(llshl.o)

0x08000774   0x08000774   0x00000022   Code   RO   3355    .text               mc_p.l(llushr.o)

0x08000796   0x08000796   0x00000026   Code   RO   3357    .text               mc_p.l(llsshr.o)

0x080007bc   0x080007bc   0x000000be   Code   RO   3359    .text               mf_p.l(depilogue.o)

0x0800087a   0x0800087a   0x00000002   PAD        

0x0800087c   0x0800087c   0x00000098   Code   RO   2859    i.HAL_DMA_Abort     stm32g0xx_hal_dma.o

0x08000914   0x08000914   0x00000094   Code   RO   2860    i.HAL_DMA_Abort_IT  stm32g0xx_hal_dma.o

0x080009a8   0x080009a8   0x000001d8   Code   RO   1868    i.HAL_GPIO_Init     stm32g0xx_hal_gpio.o

0x08000b80   0x08000b80   0x00000012   Code   RO   1870    i.HAL_GPIO_ReadPin  stm32g0xx_hal_gpio.o

0x08000b92   0x08000b92   0x0000000c   Code   RO   1872    i.HAL_GPIO_WritePin  stm32g0xx_hal_gpio.o

0x08000b9e   0x08000b9e   0x00000002   PAD        

0x08000ba0   0x08000ba0   0x0000000c   Code   RO   1209    i.HAL_GetTick       stm32g0xx_hal.o

0x08000bac   0x08000bac   0x0000002c   Code   RO   1216    i.HAL_Init          stm32g0xx_hal.o

0x08000bd8   0x08000bd8   0x00000060   Code   RO   1217    i.HAL_InitTick      stm32g0xx_hal.o

0x08000c38   0x08000c38   0x00000002   Code   RO   1219    i.HAL_MspInit       stm32g0xx_hal.o

0x08000c3a   0x08000c3a   0x00000002   PAD        

0x08000c3c   0x08000c3c   0x0000003c   Code   RO   1393    i.HAL_NVIC_DisableIRQ  stm32g0xx_hal_cortex.o

0x08000c78   0x08000c78   0x00000024   Code   RO   1394    i.HAL_NVIC_EnableIRQ  stm32g0xx_hal_cortex.o

0x08000c9c   0x08000c9c   0x00000012   Code   RO   1398    i.HAL_NVIC_SetPriority  stm32g0xx_hal_cortex.o

0x08000cae   0x08000cae   0x00000002   PAD        

0x08000cb0   0x08000cb0   0x00000058   Code   RO   1752    i.HAL_PWREx_ControlVoltageScaling  stm32g0xx_hal_pwr_ex.o

0x08000d08   0x08000d08   0x000001d4   Code   RO   1504    i.HAL_RCC_ClockConfig  stm32g0xx_hal_rcc.o

[1] [2] [3] [4] [5]
关键字:STM32 引用地址:STM32存储布局

上一篇:如何计算STM32定时器、独立看门狗和窗口看门狗
下一篇:单片机stm32 USART串口应用

推荐阅读最新更新时间:2026-03-20 14:36

聚辰股份上半年业绩稳步增长,进一步完善存储芯片布局
8月16 日,聚辰股份发布2021年上半年业绩报告显示,实现营收2.64亿元,去年同期2.18亿元,同比增长21.24%;归属上市公司股东净利润为6575万元,同比增长41.23%。 数据也反映了聚辰股份2021年上半年营收和净利润增长势头明显。从财报来看,其业绩稳增一方面源于长期的研发投入和技术积累,另一方面源于专业化人才队伍建设。在技术积累和人才科创能力推动下,聚辰股份将持续强化多元业务的核心竞争力,提高产品毛利率,在国产替代机遇下,续写新篇章。 高额研发投入强化核心竞争力 聚辰股份H1取得营收稳定增长源于其多元业务的全面发展。聚辰股份目前布局有非易失性存储芯片、音圈马达驱动芯片、智能卡芯片等三大业务。从半年报来看,报告期内,
[手机便携]
Q2存储器市场需求将好转 新事业布局下半年发酵
芯科技消息(文/方中同)存储器模块大厂威刚今(4)日公告2018年全年合并营收达314.48亿元新台币(单位下同),展望2019年存储器市场市况,威刚表示,第1季因CPU缺货影响,DRAM需求转淡,但随着缺货情势逐步缓解,自第2季开始DRAM需求可望好转。公司也持续看好NAND Flash价格修正后,可刺激终端产品搭载容量增长及提升SSD市场渗透率。 威刚指出,2018年受惠DRAM产业供需健康,价格走势相对稳定,全年DRAM产品营收较前一年增长11.67%、达194.27亿元,为近8年来新高。2018年DRAM产品对公司整体营收贡献比重也较前一年增长近8个百分点达61.78%;非DRAM产品对整体营收贡献比重为38.22%。 受
[手机便携]
中国电子布局人工智能芯片和新一代存储器技术
据新华社电 (记者胡喆) 记者从中国电子信息产业集团有限公司了解到,该集团日前在京发布了《中国电子社会价值报告(2017)》。报告显示,中国电子正围绕人工智能芯片和新一代存储器技术,在上海积极布局相关重大产业项目,努力提升我国工业控制核心器件的供应能力。 中国电子董事长芮晓武表示,针对网络安全领域存在的芯片“后门”问题、网络“漏洞”问题、国外“断供”问题,中国电子坚定推进“本质安全、过程安全、产业安全”三大战略,同时加快三大类型核心技术研发,确保“关后门”“堵漏洞”“防断供”。 据悉,为突破基础和通用技术,中国电子重点布局发展CPU芯片,通过自主创新和开放创新相结合,研发设计兼容ARM指令集的飞腾系列CPU芯片,成功实现与国际先进
[嵌入式]
国科微战略布局 开启存储攻坚战
高速发展中的中国集成电路产业,在向关键技术突破、实现国产替代的道路上与国家信息安全已然并轨运行,而掌握IT核心数据的存储产业成为了攻关的重中之重。在国家政策与资金的大力扶持下,越来越多的国内芯片企业开始积极布局,湖南国科微电子股份有限公司(以下简称“国科微电子”)便是其中的典型代表。 2017年7月12日,国科微电子成功登陆深交所创业板,此次上市募集资金2.37亿元,股票代码“300672”。国科微电子在招股书中透露,募集资金拟投资于新一代广播电视系列芯片研发及产业化项目、智能视频监控芯片研发及产业化项目、高性能存储芯片研发及产业化项目以及补充流动资金。 据了解,目前,国科微电子主营业务为广播电视系列芯片和智能监控系列芯片的研发和
[半导体设计/制造]
存储器芯片国产化布局加速 数千亿投资欲打破进口依赖
    新华社福州7月17日专电题:存储器芯片国产化布局加速 数千亿投资欲打破“进口依赖”   新华社记者高少华、乔本孝   “未来30年,如果我们不解决芯片自己制造的问题,所谓的信息化时代会失去一个非常重要的依托和基础。”中国科学院微电子研究所所长叶甜春16日在福建晋江举行的国际集成电路产业发展高峰论坛上如是说。   据介绍,存储器芯片是智能手机、平板电脑、可穿戴设备等各种智能终端产品不可或缺的关键器件。然而,我国一直是全球集成电路领域最大贸易逆差国,每年进口额超过两千亿美元,其中,存储器芯片是国内集成电路产业链的主要短板,长期以来市场一直被海外巨头牢牢把握。以动态随机存取存储器(DRAM)和闪存(NAND Flash
[手机便携]
实战解析:通过一个小项目掌握STM32所有外设
一、项目目标:实现外设间的无缝协同 本项目旨在实现一个清晰的核心功能: 读取数据() 显示温度在 上() 温度超限时蜂鸣器报警(PWM/) 通过按键调整报警阈值(GPIO 输入) 通过串口输出调试信息() 后台定时刷新显示(定时中断 + ) 这一个项目,几乎覆盖了 的全部核心外设模块,是最适合系统学习的实践框架。 二、外设初始化思路 1. RCC 系统 所有外设都依赖时钟。先开启 GPIO、USART、C、M、I2C 等模块的时钟。 RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA|RCC_APB2Periph_USART1,ENABLE); RC
[嵌入式]
STM32外设开发的五个常见陷阱与实战技巧
STM32作为嵌入式开发领域的热门微控制器,功能丰富,几乎能够胜任所有常见控制任务:GPIO、ADC、PWM等外设一应俱全。然而,正因其功能强大,开发中遇到陷阱的机会也随之增多。许多初学者甚至经验丰富的开发者,常在外设配置上浪费大量时间,调试许久仍无法定位问题。本文总结了5个STM32外设使用中最易踩坑的技巧,助你少走弯路,提升开发效率。 1. GPIO 配置别忘了上拉/下拉 很多初学者在读取按键、外部或中断输入时,会发现输入状态总是不稳定,甚至出现抖动或误触发。这通常是因为 GPIO 输入口浮空造成的。 常见坑: 输入引脚未配置上拉/下拉,导致状态随机波动。 上拉/下拉和外部电路冲突,影响可靠性。 输入
[嵌入式]
STM32驱动WS2811实现渐变色、跑马灯
一、WS2811简介 输出端口耐压12V 芯片内置稳压管,24V以下电源端只需串电阻IC到VDD脚,无需外加稳压管 灰度调节电路(256级灰度可调) 内置信号整形电路,任何一个IC收到信号后经过波形整形后在输出,保证线路波形畸变不会累加 内置上电复位和掉电复位电路 PWM控制端能够实现256级调节,扫描频率不低于400HZ/S 串行接口级联,一根信号线DI完成数据的接收与解码 任意两点传输距离不超过2米无需增加任何电路 当刷新速率30帧/秒时,低速模式级联数不小于512点,高速模式下不小于1024点 数据发送速度可达与400Kbps与800Kbps两种模式 二、通讯协议 数据协议采用单线归零码的通讯方式,
[单片机]
<font color='red'>STM32</font>驱动WS2811实现渐变色、跑马灯
小广播
最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

厂商技术中心

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

 
机器人开发圈

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2026 EEWORLD.com.cn, Inc. All rights reserved