原文地址 https://blog.csdn.net/qlexcel/article/details/78884379

关于段的补充:段可以分为代码段和数据段,其中代码段的内容就是可执行代码。

stm32生成map文件

Code 代表执行的代码,程序中所有的函数都位于此处。

RO-data 代表只读数据,程序中所定义的全局常量数据和字符串都位于此处。

RW-data 代表已初始化的读写数据,程序中定义并且初始化的全局变量和静态变量位于此处。

ZI-data 代表未初始化的读写数据,程序中定义了但没有初始化的全局变量和静态变量位于此处。
stm32生成map文件

简单的说就是在烧写的时候是FLASH中的被占用的空间为:Code+ RO Data + RW Data = ROM

程序运行的时候,芯片内部RAM使用的空间为:              RW Data + ZI Data = RAM

 

因为MCU没上电时RAM中没有数据,所以此时所有的东西(包括代码、变量、初始值等)都是存放在flash中的,当上电后又要把变量等复制到RAM中才能正常运行。

stm32生成map文件

通过上面的框图可以看出,RW区也是要存储到ROM/Flash里面的。在执行映像之前,必须将已初始化的RW数据从ROM中复制到RAM中的执行地址并创建ZI Section(初始值为0的变量区),这样才算完成了MCU运行的准备

 

 

 

相关文章:

  • 2021-05-22
  • 2022-12-23
  • 2021-04-13
  • 2022-01-13
  • 2021-11-13
  • 2021-07-29
  • 2021-12-21
猜你喜欢
  • 2021-09-22
  • 2022-01-21
  • 2021-10-27
  • 2021-10-12
  • 2021-06-27
  • 2021-06-16
相关资源
相似解决方案