Converting flat binary into ARM ELF format

# The part .data=0x08000000 should be replaced with the correct base offset of the ROM.
# The value 0x08000000 is valid for STM32.
arm-none-eabi-objcopy -I binary -O elf32-little --change-section-address .data=0x08000000 input.bin output.elf

 转换有问题,改成

riscv64-unknown-linux-gnu-objcopy  -I binary -O elf64-little --change-section-address .data=0x08000000  fw_payload_g.bin fw_payload_g.elf

 convert the ELF file into a Bin file

 

RISCV64-UNKNOWN-ELF cross-compilation tool for RISC-V instruction set

The following environments are performed in the liunx ubuntu x86_64 environment, and the following examples are used to generate a 32-bit file as a target.

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)
copy code
// 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
copy code
  • The ELF file is mainly a target file that is often used under x86linux.
  • BIN file is a direct binary file, there is no address tag internally
  • HEX files are often used to store programs or data transfer to ROM, EPROM, most programmers, and emulators using Intel HEX files.

Summary: You can translate into other two files by the ELF file, and HEX can also be converted to a bin file, but BIN is to be converted to the HEX file. You must give a base address. HEX and BIN cannot be converted to an ELF file because the amount of information of ELF is large.

upload

upload --hex file.hex --jlink JLinkExe
原文地址:https://www.cnblogs.com/dream397/p/15470410.html