目录
-
一、概述
- 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 输出
-
3.1 以不同的进制格式显示内存映像
一、概述
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 方式。文章来源:https://www.toymoban.com/news/detail-805685.html
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。文章来源地址https://www.toymoban.com/news/detail-805685.html
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 段。
到了这里,关于使用gcc 工具链开发单片机程序,怎么查看内存映像的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!