arm-none-eabi-size 查看内存映像大小

目录

  • 一、概述
    • 1.1 功能
    • 1.2 命令格式
    • 1.3 支持的目标文件
  • 二、基本应用示例
    • 2.1 查看单个对象文件
    • 2.2 查看整个工程的内存映像
  • 三、命令选项描述
    • 3.1 以不同的进制格式显示内存映像
      • 示例:以十六进制格式显示
    • 3.2 不同的输出方式
      • 3.2.1 可选的表示方式与对应的选项
      • 3.2.2 -A (–format=sysv) 方式描述
        • 3.2.2.1 使用示例
        • 3.2.2.2 输出
      • 3.2.3 -B (–format=berkeley) 方式描述
        • 3.2.3.1 使用示例
        • 3.2.3.2 输出
      • 3.2.4 -G (–format=gnu) 方式描述
        • 3.2.4.1 使用示例
        • 3.2.4.2 输出

一、概述

1.1 功能

列出二进制文件的内存映像大小。

1.2 命令格式

       size [-A|-B|-G|--format=compatibility]
            [--help]
            [-d|-o|-x|--radix=number]
            [--common]
            [-t|--totals]
            [--target=bfdname] [-V|--version]
            [objfile...]

1.3 支持的目标文件

elf32-littlearm elf32-littlearm-fdpic elf32-bigarm elf32-bigarm-fdpic elf32-little elf32-big srec symbolsrec verilog tekhex binary ihex plugin

二、基本应用示例

2.1 查看单个对象文件

arm-none-eabi-size main.o

2.2 查看整个工程的内存映像

arm-none-eabi-size app.elf

三、命令选项描述

3.1 以不同的进制格式显示内存映像

[-d|-o|-x|--radix=number]
  • -d or —radix = 10 , 以十进制格式(decimal)显示;
  • -o, or --radix=8 ,以八进制格式输出(octal)显示;
  • -x, or --radix=16 ,以十六进制格式输出(hexadecimal)显示;

示例:以十六进制格式显示

arm-none-eabi-size  -x ./build/app.elf

3.2 不同的输出方式

3.2.1 可选的输出方式与对应的选项

输出方式 选项缩写 选项详细表示
类似 System V -A –format=sysv
Berkeley size -B –format=berkeley
GNU size -G –format=gnu

默认输出选项是 -B 即 berkeley 方式。

3.2.2 -A (–format=sysv) 方式描述

3.2.2.1 使用示例

 arm-none-eabi-size  -A -x ./build/app.elf

3.2.2.2 输出

./build/app.elf  :
section                size         addr
.isr_vector           0x1e4    0x8000000
.text                0x4694    0x80001e4
.rodata                0x9c    0x8004878
.init_array             0x4    0x8004914
.fini_array             0x4    0x8004918
.data                  0xdc   0x20000000
.bss                  0xd18   0x200000e0
._user_heap_stack     0x600   0x20000df8
.ARM.attributes        0x29          0x0
.comment               0xa7          0x0
.debug_info         0x1835c          0x0
.debug_abbrev        0x3dd7          0x0
.debug_loc           0xb0d9          0x0
.debug_aranges        0xbf8          0x0
.debug_ranges         0xe88          0x0
.debug_line          0xb221          0x0
.debug_str           0x3dd5          0x0
.debug_frame         0x1bbc          0x0
Total               0x3f61e

如上所示,详细列出了向量表、text、rodata、data、bss、_user_heap_stack 等段的起始地址和size。

3.2.3 -B (–format=berkeley) 方式描述

3.2.3.1 使用示例

arm-none-eabi-size  -B -x ./build/app.elf

3.2.3.2 输出

   text    data     bss     dec     hex filename
 0x4914    0xe4  0x1318   23824    5d10 ./build/app.elf
  • 只读变量统计到 text 段,而不是 data 段。
  • dec 和 hex 列分别以十进制和十六进制显示 text、data、bss 三列的和。

3.2.4 -G (–format=gnu) 方式描述

3.2.4.1 使用示例

arm-none-eabi-size  -G -x ./build/app.elf

3.2.4.2 输出

      text       data        bss      total filename
    0x4694      0x364     0x1318     0x5d10 ./build/app.elf
  • 只读变量统计到 data 段,而不是 text 段。

你可能感兴趣的:(Linux,linux,c语言,内存映像)