GCC编译之后的代码信息
Posted archerwuaiot
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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的。
以上是关于GCC编译之后的代码信息的主要内容,如果未能解决你的问题,请参考以下文章
是否有 GCC 编译指示可以覆盖某些代码段的调试信息 (-g) 的生成?