首页
论坛
电子技术基础
模拟技术
可编程器件
嵌入式系统与MCU
工程师职场
最新帖子
问答
版主申请
每月抽奖
商城免费换礼
社区有奖活动
博客
下载
评测
视频
文库
芯语
资源
2025泰克杭州测试论坛
2025中国低空经济产业创新发展大会
【直播】芯片设计工艺仿真全解析
西门子数字化工业软件资源中心
嵌入式设计资源库
智能楼宇/家电控制应用全解析
在线研讨会
EE直播间
小测验
白皮书
行业及技术活动
杂志免费订阅
免费在线工具
厂商资源中心
论坛
博文
电子工程专辑
电子技术设计
国际电子商情
资料
白皮书
研讨会
芯语
文库
登录|注册
登录
mzwhhwj
修改
文章:
26
阅读:
60958
评论:
33
赞:
435
好友
私信
个人主页
文章
26
原创
0
阅读
60958
评论
33
赞
435
原创
STM32的内存变量的由来
2014-12-29 22:43
1284
19
19
今晚又在opendev.com开源电子论坛里看到有人提问STM32中的内存变量是怎么来的,我们都知道编译后的代码是写成Flash里面去的,而全局变量(其实也就是内存的一片区域)尤其是已经有初始化值的,是怎样到内存里面去的。估计如果不是研究过ARM9以上的高级ARM的人,都不会是关注这一点,因为ARM9以上的高级ARM都是在Uboot有代码来实现这一点的,而STM32中,除了那一点点的启动代码,没有更底层的代码来先说我们是怎么实现的,自然也没人去在意过。这里我同样反汇编了STM32的AXF文件来研究下,下面直接引用我在论坛里的回答,希望对大家更好理解STM32有所帮助
---------------------------------
上图直接看反汇编的后的代码,地址是0x08000000也就是代码区的最后面0x8013894的地址就是对应0x20000000,大小是0x704,0x8011AE2对应的_decompress1函数,这里就是把0x8013894个地址开始,总共0x704大小的数据搬到内存里去,这区域的数据正好就是已经有初始化的全局变量的数据。
再看偏移0x704之后,对应内存地址变成0x20000704,之后的偏移量是0xc074,调用的0x80111b90(函数_scatterload_zeroinit)
再看0x20000704的地址区域,其实就是没有初始化的全局变量,这里没有数据搬运,只是压栈在这里,并预留了变量的空间在这里。
为了验证这一点,我们再打开对应的Hex文件,来看看
HEX的数据跟反汇编对应地址上的数据是完全相同,而没初始化的全局变量,没有数据自然在HEX文件也找不到,也就是说全局变量的数据也是保存在代码的最后面,然后再搬到内存上去的。这一切都由编译自动完成的,当然我们是看不到代码用户代码的实现。
stm32
内存搬运
写原创有奖励!2025面包板原创奖励正在进行中
最新发表
推荐阅读
明星博主
原创博文
年度排行
博文排行
博文评论
FPGA/CPLD
MCU/ 嵌入式
模拟
电源/新能源
测试测量
通信
智能手机
处理器与DSP
PCB
汽车电子
消费电子
智能硬件
物联网
软件与OS
采购与分销
供应链管理
工程师职场
EDA/ IP/ 设计与制造
无人机
机器人/ AI
医疗电子
工业电子
管理
写博文
点赞(
19
)
收藏
分享到:
上一篇:
STM32中的main函数入口
下一篇:
ARM9/ARM11裸机开发笔记1之MDK开发环境和点亮LED
PARTNER CONTENT
换一换>
更多>
文章评论
(
0
条评论)
登录
后参与讨论
您需要登录后才可以评论
登录
|
立即注册
发布
mzwhhwj
修改
文章:
26
阅读:
60958
评论:
33
赞:
435
好友
私信
个人主页
文章
26
原创
0
阅读
60958
评论
33
赞
435
个人文集
.NET Micro Framework USB移植
(9)
最新评论
更多
支撑干货分享,感谢
eeNick
评论博文
2025-6-9
IGBT驱动副边支撑电容
支持原创,社区单独奖励50E币
eeNick
评论博文
2025-6-9
深入理解 C++ 智能指针机制与内存管理实战 ...
开发工匠 : 大师之作,分析很细,学习和参考,很适用,写的很好 多谢支持
liweicheng
评论博文
2025-6-9
【拆解】一款带GB的喊话器专用U型电池 ...
最新
博文
IGBT驱动副边支撑电容
远程errDump调试实战技巧集:避开陷阱 ...
Air8201电源管理方案深度解析——稳定 ...
资料下载
本周热帖
AET3156AS规格书
干货!干净利落让你掌握STM32单片机开 ...
手把手保姆级教程零基础快速上手STM32 ...
模拟集成电路的分析与设计 (第四版) ( ...
手把手实操给大模型语音机器人自定义 ...
【资料下载-第一季】开关电源、KiCad ...
【Milk-V Duo 开发板】+初用体验 ...
立创商城中找到的元件封装,怎么把3D ...
保障电路安全:稳压二极管并联应用技 ...
E币兑换迟迟未兑现
最新资讯
芯语最新
车辆区域控制架构关键技术——趋势篇 ...
手把手教你:在树莓派Pico上,开发LVG ...
高通截胡Arm,拟24亿美元收购Alphawav ...
恩智浦计划关闭4家8英寸晶圆厂,产能 ...
台积电熊本二厂建设延宕,主因是“塞 ...
面板双虎前5月营收双降
重磅!中国WOLED国际标准获IEC采纳 ...
车载显示巨头或破产,负债超300亿! ...
越南又一电子纸工厂投产! ...
又一面板独角兽完成IPO辅导 ...
EE直播间
更多
常用电测仪表的校准展示
直播时间: 06月20日 10:00
Keysight World Tech Day 线上直播-AI 驱动的超高速传输测试分论坛
直播时间: 06月26日 13:30
材料介电常数的精确表征和测试
直播时间: 07月03日 10:00
在线研讨会
更多
ADI人形机器人解决方案
ST 在大功率热管理系统中的电机控制系统方案(AI 数据中心/暖通空调/电池储能系统/变频制冷)
Mercury基于展频技术的医疗时钟EMI抑制方案
AI 巨型芯片,性能越强,测试越难,如何破局?
热门
推荐
UCIe 2.0协议“死磕指南”!Avery VIP如何实现0缺陷互连?
信号毛刺抓不住?这次让你看清每个跳变沿!
工程师的‘救星’!轻松搞定复杂测量,演示名额有限,速抢!
如何通过半导体技术提升光伏与储能系统的效率?
我要评论
0
19
分享到微信
分享到微博
分享到QQ
点击右上角,分享到朋友圈
我知道啦
请使用浏览器分享功能
我知道啦
关闭
站长推荐
/2
2025第1期拆解活动:赢示波器、运动相机、热像仪等!
示波器、影石运动全景相机、大疆无人机、高清红外热成像仪;树莓派5等等
【2025面包板社区内容狂欢节】发帖/回帖赢25万E币!
活动时间:即日起——2025年全年(发完20万E币为止!)
首页
论坛
电子技术基础
模拟技术
可编程器件
嵌入式系统与MCU
工程师职场
最新帖子
问答
版主申请
每月抽奖
商城免费换礼
社区有奖活动
博客
下载
评测
视频
文库
芯语
资源
2025泰克杭州测试论坛
2025中国低空经济产业创新发展大会
【直播】芯片设计工艺仿真全解析
西门子数字化工业软件资源中心
嵌入式设计资源库
智能楼宇/家电控制应用全解析
在线研讨会
EE直播间
小测验
白皮书
行业及技术活动
杂志免费订阅
免费在线工具
厂商资源中心
帖子
博文
返回顶部
×
文章评论(0条评论)
登录后参与讨论