bin和elf文件(ARM) 一
来源:互联网 发布:淘宝上卖移动黑卡店铺 编辑:程序博客网 时间:2024/05/21 14:44
原文地址:http://blog.csdn.net/yudingding6197/article/details/3866140
嵌入式开发的时候,我们的编译一个*.S文件,并最终生成bin文件,编译命令大致如下:
CC=arm-softfloat-linux-gnu-gcc
LD=arm-softfloat-linux-gnu-ld
OBJCOPY=arm-softfloat-linux-gnu-objcopy
$(CC) -g $(CFLAG) -c boot.S #先将boot.S文件生成boot.o
$(LD) -g -Bstatic -T$(LDFILE) -Ttext 0x12345600 boot.o --start-group -Map boot.map -o boot.elf #再将boot.o生成boot.elf, boot.elf通常就是可执行文件,类似于gcc -o test test.c 中的test文件,在Linux Shell下输入./test就可以执行。
$(OBJCOPY) -O binary boot.elf boot.bin #接着将boot.elf->boot.bin,这样可以缩小代码尺寸。
运行arm-softfloat-linux-gnu-objdump -h boot.elf 可以查看该文件的信息,但是如果变成
arm-softfloat-linux-gnu-objdump -h boot.bin会提示错误,为了看boot.bin文件信息,输入:
arm-softfloat-linux-gnu-objdump -h -b binary -m arm boot.bin就可以了。哈哈我也是现学了一招,其中参数-h可以被替换成为-D, -S, -s等等,请用arm-softfloat-linux-gnu-objdump --help查看器中表示的意义。
说说ELF Bin 文件区别:
我们有了Linux OS,为了运行可执行文件,他们是遵循ELF格式的,通常gcc -o test test.c,生成的test文件就是ELF格式的,这样就可以运行了。
arm-softfloat-linux-gnu-objcopy命令将去掉ELF格式的东西,仅仅保留最纯的汇编(不知道如何解释),
在Embedded中,如果上电开始运行,没有OS系统,如果将ELF格式的文件烧写进去,包含一些ELF格式的东西,arm运行碰到这些指令,就会导致失败,如果用arm-softfloat-linux-gnu-objcopy生成纯粹的汇编,程序就可以一步一步运行。
联系yudingding6197@126.com就可以了。
- bin和elf文件(ARM) 一
- bin和elf文件(ARM) 二
- bin和elf文件(ARM) 三
- bin和elf文件(ARM) 四
- bin和elf文件(ARM) 五
- ELF文件和BIN文件
- ELF文件和BIN文件
- ELF文件和BIN文件
- bin文件和elf文件
- ELF文件和BIN文件
- ELF文件和BIN文件
- ELF文件和BIN文件
- ELF文件和BIN文件
- ELF文件和BIN文件
- ELF文件和BIN文件
- ELF文件和BIN文件
- ELF文件和BIN文件
- ELF文件和BIN文件
- OpenXML之word的XML格式分析
- PHP相关系列 - Rolling cURL: PHP并发最佳实践
- event.cancelBubble的使用
- MySQL5.0版本的安装图解教程
- Rolling cURL: PHP并发最佳实践
- bin和elf文件(ARM) 一
- vlc中绝对文件路径的问题
- mysql备份及恢复
- Linux TCP/IP 协议栈源码分析
- vss2008开发vb web项目 XP IIS配置(5.1版本) 整理版
- 服务器数据库系列 - 由浅入深探究mysql索引结构原理、性能分析与优化
- 不安装oracle客户端连接远程数据库
- bin和elf文件(ARM) 二
- Google code 无法提交的Bug