汇编:把汇编代码翻译成二进制机器代码
反汇编:把二进制机器代码翻译成汇编代码
汇编和反汇编是互逆的过程

1. 安装交叉编译工具链

ARM:

sudo apt-get install gcc-arm-linux-gnueabi

ARM64:

sudo apt-get install gcc-aarch64-linux-gnu

RISCV:

sudo apt-get install gcc-riscv64-linux-gnu

下面用riscv64的cross-compiler举例:

2. objdump将a.elf 文件反汇编为asm或lst文件

将a.elf 文件反汇编为asm

riscv64-linux-gnu-objdump -S spl/u-boot-spl > spl.asm

将a.elf 文件反汇编为lst文件

.lst这一扩展名指的是“LiST”,通常指由文本信息构成的列表文件。该扩展名指的是此类文件的功能,而非格式。
.lst文件通常是可读的纯文本文件,可利用文本编辑程序进行编辑。通常可将TXT文件用作LST列表(与扩展名修改与否无关)。在某些情况下,应用程序会自动创建并引用LST文件,因此无需对此类文件进行修改。

riscv64-linux-gnu-objdump --source --all-headers --demangle --file-headers --line-numbers --wide a.elf > a.lst

3. objcopy将elf文件转换为bin文件,将bin文件转换为hex文件

将a.out转换成a.bin

riscv64-linux-gnu-objcopy -O binary a.out a.bin

将a.bin转换成a.hex

riscv64-linux-gnu-objcopy -I binary -O ihex a.bin a.hex
GitHub 加速计划 / li / linux-dash
10.39 K
1.2 K
下载
A beautiful web dashboard for Linux
最近提交(Master分支:2 个月前 )
186a802e added ecosystem file for PM2 4 年前
5def40a3 Add host customization support for the NodeJS version 4 年前
Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐