mokongking

STM32中的内存映射

 STM32中的内存映射

在STM32中,内存映射通常如下:

  • Flash

    • 存储.text段(代码)、.rodata段(只读数据)和.data段的初始值。

  • RAM

    • 存储.data段(运行时)、.bss段、栈和堆。


4. 程序启动过程

在STM32中,程序启动时会发生以下操作:

  1. 从Flash中加载.data段的初始值到RAM。

  2. .bss段的内存区域清零。

  3. 初始化栈指针(SP)和堆指针(Heap)。

  4. 调用main()函数,开始执行用户程序。


5. 总结表格

内存区存储内容存储位置特点
.text 程序代码、只读常量 Flash 只读,掉电不丢失
.data 已初始化的全局变量和静态变量 Flash(初始值) + RAM(运行时) 可读写,启动时从Flash复制到RAM
.bss 未初始化的全局变量和静态变量 RAM 启动时清零,不占用Flash空间
.rodata 只读数据(如字符串常量) Flash 只读,掉电不丢失
栈(Stack) 局部变量、函数参数、返回地址 RAM 自动管理,空间有限
堆(Heap) 动态分配的内存 RAM 手动管理,空间较大

posted on 2025-01-11 21:07  虎啸岳林  阅读(52)  评论(0编辑  收藏  举报

导航