单片机编译解读

本文介绍了STM32编程中不同数据段(Code、RO-Data、RW-Data、ZI-Data)的作用,以及编译后的.map文件如何反映程序在Flash和RAM中的占用情况。重点讲解了STM32上电启动时的数据迁移和初始化过程。
摘要由CSDN通过智能技术生成

Code:        代码段,存放程序代码部分
RO-Data:  只读数据段,存放程序中定义的常量
RW-Data: 读写数据段,存放初始化非0值得全局变量
ZI-Data:   0数据段,存放未初始化得全局变量及初始化为0得变量

编译完成后生成.map文件
RO size   -->  Code + RO-Data -->      表示程序占用的flash大小
RW size   -->  RW-Data + ZI-Data -->  表示运行时占用RAM的大小
ROM size --> Code + RO-Data + RW-Data -->表示烧写程序所占用的Flash空间大小

STM32上电启动后默认从Flash中启动,启动后将RW段的RW-Data搬到RAM中,根据编译器给出的ZI地址和大小分配出ZI段,并将这块RAM清零,不会搬运RO段--》CPU执行代码从Flash中读取

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值