RISC-V riscv64-unknown-elf


riscv64-unknown-elf 為 RISC-V指令集的交叉編譯工具

以下環境在Liunx ubuntu x86_64 環境下進行,下面示例以生成32位文件為目標來操作使用。

screen  

// watch IO infos  
screen /dev/ttyACM0 115200

compile

riscv64-unknown-elf-gcc, RISC-V platform's riscv tool-chain.  
// complie 64-bit file
riscv64-unknown-elf-gcc -o file file.c
// complie 32-bit file
riscv64-unknown-elf-gcc -march=rv32imac -mabi=ilp32 -o file file.c 
process-file (32-bit platform)
// pretreatment
riscv64-unknown-elf-gcc -march=rv32imac -mabi=ilp32 -E -o file.i file.c 
// compile
riscv64-unknown-elf-gcc -march=rv32imac -mabi=ilp32 -S -o file.s/file.S file.i 
// assembler
riscv64-unknown-elf-gcc -march=rv32imac -mabi=ilp32 -c -o file.o file.s/file.S
// link
riscv64-unknown-elf-gcc -march=rv32imac -mabi=ilp32 -o file file.o 
 
// get ELF-file
riscv64-unknown-elf-gcc -march=rv32imac -mabi=ilp32 -o file file.c
// ELF to bin
riscv32-unknown-elf-objcopy -O binary file file.bin 
// ELF to HEX
riscv64-unknown-elf-objcopy -O ihex file file.hex

// disassembler ELF to get ASM
riscv64-unknown-elf-objdump -d file.elf > file.asm
  • elf文件主要是X86Linux下常用的一種目標文件
  • bin文件就是直接的二進制文件,內部沒有地址標記
  • hex文件經常被用於將程序或數據傳輸存儲到ROM、EPROM,大多數編程器和模擬器使用Intel HEX文件。  

總結:可以由ELF文件轉化為其它兩種文件,HEX也可以直接轉換為BIN文件,但是BIN要轉化為HEX文件必須要給定一個基地址。而HEX和BIN不能轉化為elf文件,因為ELF的信息量要大。

upload

upload --hex file.hex --jlink JLinkExe

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM