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

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
13
2
下载
A beautiful web dashboard for Linux
最近提交(Master分支:3 个月前 )
186a802e added ecosystem file for PM2 5 年前
5def40a3 Add host customization support for the NodeJS version 5 年前
Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐