最近在调试uboot的代码时,用的新版本的uboot,lowlevel_init函数里是空的,而且在链接文件中也没有发现对lowlevel_init.o的链接。在bl lowlevel_init 之前和之中加了两个电灯,发现在bl之后的部分并没有被执行,所以想看看具体程序有没有运行这个函数。在网上找反汇编bin文件的时候发现有朋友提供的方法,很好用。
arm-linux工具链下载地址:
https://developer.arm.com/-/media/Files/downloads/gnu-rm/7-2018q2/gcc-arm-none-eabi-7-2018-q2-update-win32-sha1.exe?revision=308172d5-c99c-41cd-812b-5bc837c49fc0?product=GNU%20Arm%20Embedded%20Toolchain,32-bit,,Windows,7-2018-q2-update
使用arm-linux 工具链里面的arm-linux-objdump 就能反汇编
cd到bin文件所在的目录, 在命令行下输入:
arm-linux-objdump -D -b binary -m arm xxx.bin > xxx.asm
参数:
-D 反编译所有代码
-m 主机类型, arm
-b 文件格式, binary
对于ELF格式的文件只要一个-D参数即可
就可以把xxx.bin反汇编到xxx.asm文件