解析STM32内存占用的map文件,了解详细情况

STM32查看内存占用的map文件解析

  • STM32查看内存占用的map文件解析
  • 程序内存分析
  • 在stm32中,通常堆向高地址增长(向上增长),栈向低地址增长(向下增长);
  • 1.2 flash、ROM、RAM的区别
  • 1.3 通常stm32在keil里编译完后被分成5个内存段(堆、栈、bss段、data段、text段)
  • STM32查看内存占用的map文件解析

    双击工程名尽可打开xxx.map文件,里面主要显示了文件及函数使用内存的大小

    程序内存分析

    在stm32中,通常堆向高地址增长(向上增长),栈向低地址增长(向下增长);

    堆:是用户调用malloc()时申请的内存;
    栈:是提供给局部变量使用的,即由c语言机制自动申请和释放;

    1.2 flash、ROM、RAM的区别

    在stm32中flash就是ROM,掉电数据不会丢失;(通常保存着text段、Code、Ro-data、Rw-data)
    RAM就是运行内存,掉电数据就丢失;(通常保存着堆、栈、bss段、data段、ZI-data、RW-data)

    1.3 通常stm32在keil里编译完后被分成5个内存段(堆、栈、bss段、data段、text段)

    以下存储在RAM
    堆区:在启动文件里分配,作为用户主动申请时的空间,如调用malloc()
    栈区:在启动文件里分配,作为局部变量自动申请和释放空间的变量(也有说是编译器分配的空间)
    全局区和静态区(bss+data):存放全局变量,静态变量的区域;其中bss段(ZI-data)存放未初始化的全局变量和静态变量;data段(RW-data)存放初始化后的全局变量和静态变量;

    以下存储在flash(text段)
    文字常量区:宏,常量字符串等存放区域;(RO-data)
    程序代码区:程序代码块存放区域;(Code)

    引用参考:stm32中堆、栈、flash、ROM、RAM、bss段、data段、text段、Code、Ro-data、 ZI-data、RW-data简介

    物联沃分享整理
    物联沃-IOTWORD物联网 » 解析STM32内存占用的map文件,了解详细情况

    发表评论