ARM Cortex-M系列内核的编译信息内存分布——思维导图
一、编译信息内存分布的思维导图ARM Cortex-M系列内核的编译信息内存分布——思维导图如下所示Code是代码占用大小、RO-data是只读常量存于Flash中RW-data是已初始化的可读可写变量其特殊之处在于当MCU上电时RW-data会复制搬运到RAM中运行。当MCU下电时RW-data保存在Flash等待MCU上电工作ZI-data是未初始化的可读可写变量运行时自动清零不占用Flash空间存于RAM中。二、举实例基于嵌入式开源GCC的arm-none-eabi-gcc交叉编译工具链的内存区域占用详细信息表征基于keil MDK体系的armcc / armclang编译工具链的内存区域占用详细信息表征以arm-none-eabi-gcc交叉编译工具链内存区域的占用详细信息作为分析:① dec十进制42713 hex十六进制a6d9hex文件是即将要烧录到MCU-flash中的产物(hex文件包含有烧录起始地址实际上烧录到MCU-flash中的是二进制bin文件)② a6d9(hex)427133152125128680在上面的思维导图中可以看到.text段.data段是在flash中运行的、.data段.bss段是在MCU上电后复制并搬运到RAM中运行的③ 最终烧录到MCU-Flash的hex文件是由.text段.data段.bss段组成。