12. 编译工具段大小查看器
kf32size 用于快速统计和显示编译链接后生成的可执行文件中,各段(section)在存储器(如 Flash 和 RAM)中的占用大小,便于开发者评估和分析代码与数据的存储空间使用情况。
12.1 命令行语法
其命令行语法为:
kf32size [option(s)] [file(s)]
其中
[option(s)]
显示格式选项,用于指定输出信息的格式。
[file(s)]
指定一个或多个待分析的 ELF 格式目标文件名。
12.2 输出字段说明
执行 kf32size XXX.elf的典型输出格式及各字段含义如下:
text data bss dec hex filename
5680 300 32960 38940 981c XXX.elf
text: 代码段大小(单位:字节)。通常存放程序代码和常量,占用 Flash 存储器。data: 已初始化的全局/静态变量大小(单位:字节)。在程序加载时,这部分数据需从 Flash 复制到 RAM 中,因此同时占用 Flash(存储初始值)和 RAM(运行时的存储空间)。bss: 未初始化或初始化为0的全局/静态变量大小(单位:字节)。程序运行时在 RAM 中分配空间,不占用 Flash。dec: 十进制(Decimal)表示的存储器总使用量估计(text + data + bss)。hex: 十六进制(Hexadecimal)表示的存储器总使用量估计。filename: 被分析的文件名。
12.3 常用选项示例与说明
12.3.1 选项说明
-A/--format=sysv以 System V 风格显示更详细的段信息,包括每个节区的具体大小。-B/--format=berkeley以 Berkeley 风格显示,即上文示例的默认格式。--format=<format>显式指定输出格式,如 sysv或 berkeley。
12.3.2 功能示例
查看单个 ELF 文件的段大小(默认格式):
kf32size project.elf
以 System V 详细格式查看文件:
kf32size -A project.elf