首页
论坛
电子技术基础
模拟技术
可编程器件
嵌入式系统与MCU
工程师职场
最新帖子
问答
版主申请
每月抽奖
商城免费换礼
社区有奖活动
博客
下载
评测
视频
文库
芯语
资源
2024国际航空电子大会
2024国际 AIoT 生态发展大会
3D IC 设计和Chiplet资料下载
车载总线测试和解码方案
新能源汽车三电测试技术中心
在线研讨会
EE直播间
小测验
白皮书
行业及技术活动
杂志免费订阅
免费在线工具
厂商资源中心
论坛
博文
电子工程专辑
电子技术设计
国际电子商情
资料
白皮书
研讨会
芯语
文库
登录|注册
登录
最新发表
推荐阅读
明星博主
原创博文
年度排行
博文排行
博文评论
FPGA/CPLD
MCU/ 嵌入式
模拟
电源/新能源
测试测量
通信
智能手机
处理器与DSP
PCB
汽车电子
消费电子
智能硬件
物联网
软件与OS
采购与分销
供应链管理
工程师职场
EDA/ IP/ 设计与制造
无人机
机器人/ AI
医疗电子
工业电子
管理
写博文
mzwhhwj
修改
文章:
26
阅读:
57585
评论:
33
赞:
401
好友
私信
个人主页
文章
26
原创
0
阅读
57585
评论
33
赞
401
原创
STM32的内存变量的由来
2014-12-29 22:43
1190
18
18
今晚又在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
内存搬运
写原创有奖励!2024面包板原创奖励正在进行中
点赞(
18
)
收藏
分享到:
上一篇:
STM32中的main函数入口
下一篇:
ARM9/ARM11裸机开发笔记1之MDK开发环境和点亮LED
PARTNER CONTENT
换一换>
更多>
新蓝牙6.0协议扩展应用范围
Silicon Labs(芯科科技)蓝牙产品经理Parker Dorris
2024-12-16
概伦电子:以开放心态共绘EDA产业新蓝图
概伦电子
2024-12-30
SK海力士开发出适用于AI数据中心的高容量固态硬盘‘PS1012 U.2’
SK海力士
2024-12-18
新一代MCU向着边缘AI和实时控制发展
赵明灿
2024-12-11
内存市场稳定化:2024年末的定价趋势与供应商调整
Fusion Worldwide
2024-12-05
文章评论
(
0
条评论)
登录
后参与讨论
您需要登录后才可以评论
登录
|
立即注册
发布
mzwhhwj
修改
文章:
26
阅读:
57585
评论:
33
赞:
401
好友
私信
个人主页
文章
26
原创
0
阅读
57585
评论
33
赞
401
个人文集
.NET Micro Framework USB移植
(9)
最新评论
更多
写的好,大师之作,学习和参考
开发工匠 ...
评论博文
2025-1-2
【富芮坤FR3068x-C】+ 环境搭建
应用上有FAE应用支持,有样品可提供测试
446230017_5 ...
评论博文
2025-1-2
NU402-LED恒流驱动芯片(完全兼容BCR402) ...
写的好,减成本,害人害己,不能省,
开发工匠 ...
评论博文
2025-1-1
韩国航空业现状与发展:从空难事件看行业全 ...
最新
博文
【工程师故事】+半年的经历依然忧伤, ...
双重安全保障,赋能智能汽车 ...
全面解析双保险和开关插座滤波器的关 ...
资料下载
本周热帖
Processing-processing3.5.4
ESP32TFT常用字体库.zip
自动增益控制放大器设计与实现 ...
无线传能充电器设计与实现论文 ...
基于单片机自动电阻测试仪设计论文 ...
采样示波器的原理和应用
AEC-Q104认证:芯片模组的可靠性与质 ...
扫描电镜与氩离子抛光技术在样品成分 ...
飞凌嵌入式获批建设「河北省嵌入式计 ...
晶振知识分享 | 晶振外接2颗电容的3个 ...
最新资讯
芯语最新
中国商务部公布对美出口管制措施,28 ...
用于电路分析和设计的Spice仿真指南– ...
商务部对10家美国企业实施不可靠实体 ...
国家大基金三期等设立930亿元股权投资 ...
工信部成立人工智能标准化技术委员会 ...
特斯拉惨遭负增长:2024年交付179万辆 ...
OpenCV4最新版本系统化学习指南 ...
2024年AI编程有多强?谷歌工程主管揭 ...
2024,网文行业加速破圈
排查嵌入式软件中的bug时,别把代码改 ...
EE直播间
更多
精密半导体参数测试解决方案
直播时间: 01月08日 10:00
在线研讨会
更多
多路有光·精准不凡——KSW-SGM01模拟信号源发布会
重塑机器人未来:揭秘创新芯片解决方案的颠覆力量
迈来芯Triaxis® 3D磁传感器:汽车安全应用的优选方案
适用于安全连接的新一代PIC32CK SG/GC系列单片机
热门
推荐
构建AI未来,Arm计算平台无处不在
如何提升高压系统的实时性能?
我要评论
0
18
分享到微信
分享到微博
分享到QQ
点击右上角,分享到朋友圈
我知道啦
请使用浏览器分享功能
我知道啦
关闭
站长推荐
/3
工程师写总结,送示波器、稳压电源、螺丝刀!
分享你的:职业生涯中故事、2024年年终总结、工作中的小故事,丰富多样的礼品等你哦!
面包板社区有奖活动汇总楼
1. DIY赢大奖!2. 写原创,有奖励!3.参与话题,奖励E币!4. 免费申领:开发板试用、书籍试读...
电子工程师DIY来分享,赢大疆无人机、小米手机、NAS存储、万用表 ...
展示您的 DIY 电子设计作品,社区将有丰富奖励送给您!
首页
论坛
电子技术基础
模拟技术
可编程器件
嵌入式系统与MCU
工程师职场
最新帖子
问答
版主申请
每月抽奖
商城免费换礼
社区有奖活动
博客
下载
评测
视频
文库
芯语
资源
2024国际航空电子大会
2024国际 AIoT 生态发展大会
3D IC 设计和Chiplet资料下载
车载总线测试和解码方案
新能源汽车三电测试技术中心
在线研讨会
EE直播间
小测验
白皮书
行业及技术活动
杂志免费订阅
免费在线工具
厂商资源中心
帖子
博文
返回顶部
×
文章评论(0条评论)
登录后参与讨论