PC机用的win10,虚拟机使用的是VMware12,Linux版本是redhat6。
举例:arm-linux-gcc hello.c –o hello (产生的是elf文件,查看方法:file hello )
Arm-linux-gcc -g -c hello.c (-g附加调试信息-c只编译不连接)
linux编译工具。
举例:arm-linux-ld -Thello.lds -o hello.elf hello.o (hello.lds是连接脚本)
arm-linux-readelf -a hello.elf (-a表示全部的信息)
可以看出这个文件适合ARM的小端平台。
arm glibc 编译,
附录:elf文件、bin文件和hex文件
(1)BIN文件是 raw binary 文件,这种文件只包含机器码。BIN文件就是直接的二进制文件,内部没有地址标记。一般用编程器烧写时从00开始,而如果下载运行,则下载到编译时的地址即可。BIN文件用来烧在Flash上
(2)ELF文件除了机器码外,还包含其它额外的信息,如段的加载地址,运行地址,重定位表,符号表等。 ELF文件可用来调试,只能运行在linux平台,不能直接运行到arm平台。
(3) HEX文件是记录文本行的ASCII文本文件,在Intel HEX文件中,每一行是一个HEX记录,由十六进制数组成的机器码或者数据常量,Intel HEX文件经常被用于将程序或数据传输
存储到ROM、EPROM,大多数编程器和模拟器使用Intel HEX文件。
shell并发, 例子:arm-linux-objdump -D -S hello >dump(hello是elf格式,产生elf文件时如果加入了-g选项,反汇编时看代码会更清晰。>dump表示将反汇编输出到dump文件,可以打开dump文件查看)
例子:arm-linux-objcopy -o binary hello.elf hello.bin
版权声明:本站所有资料均为网友推荐收集整理而来,仅供学习和研究交流使用。
工作时间:8:00-18:00
客服电话
电子邮件
admin@qq.com
扫码二维码
获取最新动态