GCC编译之后的代码信息

arm-none-eabi-gcc编译之后会显示一些信息,比如

下面就来说受每个字段的含义以及它们与bin文件大小的关系。
text区是代码区,就是程序编译之后源码的区域,在烧录之后一直位于Flash ROM中。


data和bss都是指的全局变量以及函数内static的变量,区别是data是有初始值的而bss没有。
data的初始值同样存在Rom里,当单片机启动的时候data的初始值会被加载到内存的相应位置,而bss则在启动的时候被置零。(这部分可以参考startup_stm32.s)


dec是text+data+bss的大小,hex就是dec转成16进制的值,并不是ROM占用哦,实际的比这个少。


所以最后bin文件的大小是text+data区域的大小,去看看STM32_PD.bin的大小,发现正好是9.32 KB (9,548 bytes),这些东西是要被写入单片机的ROM的。

原文地址:https://www.cnblogs.com/ArcherWuAIot/p/12719495.html