Where to find a .bin file

Well the .elf file is the already linked binary, you should be able to use it with flasher software like openocd etc.

If you want a hex file then you can go to your <user home folder>/.platformio/platforms/sifive/builder/main.py and replace this line by

target_buildprog = env.Alias("buildprog", target_hex, target_hex)

after recompilng there is a firmware.elf and firmware.hex file.

Alternatively you can invoke the objcopy yourself in a shell in the directory where the firmware.elf is.

<home folder>/.platformio/packages/toolchain-riscv/bin/riscv64-unknown-elf-objcopy -O ihex firmware.elf firmware.hex

(can also be used with -O binary)

However I agree that it would be usefull to build this by default. You can open an issue at the repository for it.

2 Likes