跳到主要内容

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