Какие есть компиляторы си, которые могут генерировать «сырые» бинарники?
ELF или PE это уже линковка, сначала генерируется объектный файл, любой компилятор можно настроить, чтобы не линковал, а давал его на выходе.
например в сборке GNU GCC для ARM есть такая утилита как objcopy, она конвертирует форматы, в том числе может перегнать ELF в голый бинарник, например так:
arm-none-eabi-objcopy -O binary "Boot_F4_fast_uart.elf"  "Boot_F4_fast_uart.bin"
так что советую ознакомиться с маном на objcopy 
https://sourceware.org/binutils/docs/binutils/objc...