使用gcc 工具链开发单片机程序,怎么查看内存映像

目录

一、概述

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 段。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

gdut_llkkyy

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值