首页
论坛
电子技术基础
模拟技术
可编程器件
嵌入式系统与MCU
工程师职场
最新帖子
问答
版主申请
每月抽奖
商城免费换礼
社区有奖活动
博客
下载
评测
视频
文库
芯语
资源
2025泰克杭州测试论坛
2025中国低空经济产业创新发展大会
【直播】芯片设计工艺仿真全解析
西门子数字化工业软件资源中心
嵌入式设计资源库
智能楼宇/家电控制应用全解析
在线研讨会
EE直播间
小测验
白皮书
行业及技术活动
杂志免费订阅
免费在线工具
厂商资源中心
论坛
博文
电子工程专辑
电子技术设计
国际电子商情
资料
白皮书
研讨会
芯语
文库
登录|注册
登录
mzwhhwj
修改
文章:
26
阅读:
60233
评论:
33
赞:
435
好友
私信
个人主页
文章
26
原创
0
阅读
60233
评论
33
赞
435
原创
STM32的内存变量的由来
2014-12-29 22:43
1266
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
换一换>
更多>
提升汽车电子浪涌耐受性:SWM+TVS解决方案通过ISO 16750-2 Pulse 5a测试
firstohm
2025-04-14
AI时代的氮化镓:市场与技术将走向何方?
黄烨锋
2025-04-24
文章评论
(
0
条评论)
登录
后参与讨论
您需要登录后才可以评论
登录
|
立即注册
发布
mzwhhwj
修改
文章:
26
阅读:
60233
评论:
33
赞:
435
好友
私信
个人主页
文章
26
原创
0
阅读
60233
评论
33
赞
435
个人文集
.NET Micro Framework USB移植
(9)
最新评论
更多
写的好,学习和参考,很实用
开发工匠 ...
评论博文
2025-4-29
GOA 电路及液晶面板修复方法
写的好,市场就是战场
开发工匠 ...
评论博文
2025-4-29
新兴市场是救命稻草还是海市蜃楼?速卖通突 ...
审查的蛮仔细的啊,这些确实应该提出来!
追忆流年寻 ...
评论博文
2025-4-29
给人审查PCB时,你有这样的情况吗 ...
最新
博文
如何防止丝杆支撑座锈蚀? ...
希立仪器-揭秘气密性检测仪的精度提升 ...
【新品发布】湖南静芯推出4路单向超大 ...
资料下载
本周热帖
[鸟哥的Linux私房菜:服务器架设篇(第 ...
【Winform+WPF】喷涂工艺SCADA采集监 ...
积分微分的拉普拉斯变换
电子元件FCO-2C-WT系列超宽温SMD振荡 ...
纳祥科技8位移位寄存器74HC164D中文规 ...
金航标kinghelm有哪些对标的天线公司 ...
从选型到布局:MDDTVS二极管在ESD防护 ...
(永源微)AP600N04TLG5,AP400N08TLG ...
4K@165Hz,联发科Pentonic 800(MT9655 ...
【敏矽微ME32G030系列】+LCD屏显示驱 ...
最新资讯
芯语最新
微电网与备用电源:能源韧性的完美组 ...
电力电子科学笔记:齐纳二极管和狄拉 ...
上海AI爆发式发展,智能眼镜、智能儿 ...
基于SRAM的FPGA技术创新: 快速安全 ...
软件定义汽车的未来,关键要看chiplet ...
这家PCB大厂高阶ABF新品陆续量产 ...
【热点】江苏一PCB企业新厂开工奠基 ...
【热点】博敏电子:一季度扣非净利润 ...
【热点】关税效应PCBQ2不淡,下半年转 ...
数字中国启示录|一场AI价值的深刻诠 ...
EE直播间
更多
中小数字IC云仿真加速方案:弹性资源与验证效率提升
直播时间: 05月22日 10:00
在线研讨会
更多
利用氮化镓技术打造高效电机驱动——人形机器人、无人机与电动汽车应用
ADMT4000重新定义多圈编码器设计
NSSine™系列实时控制MCU在数字电源和电机控制领域的应用
ST 在大功率热管理系统中的电机控制系统方案(AI 数据中心/暖通空调/电池储能系统/变频制冷)
热门
推荐
技术前沿:ADMT4000多圈传感器技术剖析与应用实践
中端示波器性能提升“秘籍”
AI数据中心过热?ST 10kW压缩机方案让液冷系统效能翻倍
GaN电机驱动设计“避坑”指南
我要评论
0
19
分享到微信
分享到微博
分享到QQ
点击右上角,分享到朋友圈
我知道啦
请使用浏览器分享功能
我知道啦
关闭
站长推荐
/3
2025第1期拆解活动:赢示波器、运动相机、热像仪等!
示波器、影石运动全景相机、大疆无人机、高清红外热成像仪;树莓派5等等
泰克示波器五折来袭!
泰克限时五折!全球示波器用户狂欢,软件升级超值优惠,速抢!
【2025面包板社区内容狂欢节】发文、回帖赢20万E币!
活动时间:即日起——2025年全年(发完20万E币为止!)
首页
论坛
电子技术基础
模拟技术
可编程器件
嵌入式系统与MCU
工程师职场
最新帖子
问答
版主申请
每月抽奖
商城免费换礼
社区有奖活动
博客
下载
评测
视频
文库
芯语
资源
2025泰克杭州测试论坛
2025中国低空经济产业创新发展大会
【直播】芯片设计工艺仿真全解析
西门子数字化工业软件资源中心
嵌入式设计资源库
智能楼宇/家电控制应用全解析
在线研讨会
EE直播间
小测验
白皮书
行业及技术活动
杂志免费订阅
免费在线工具
厂商资源中心
帖子
博文
返回顶部
×
文章评论(0条评论)
登录后参与讨论