У меня есть следующий простой C-код:
void main(){
int A = 333;
int B=244;
int sum;
sum = A + B;
}
Когда я скомпилирую это с помощью
$riscv64-unknown-elf-gcc code.c -o code.o
Если я хочу видеть код сборки, я использую
$riscv64-unknown-elf-objdump -d code.o
Но когда я изучаю код сборки, я вижу, что это генерирует много кода, который я предполагаю для поддержки ядра Proxy (я новичок в riscv). Однако я не хочу, чтобы этот код поддерживал ядро Proxy, потому что идея состоит в том, чтобы реализовать только этот простой C-код внутри FPGA.
Я читал, что riscv предоставляет три типа компиляции: режим Bare-metal, прокси-сервер newlib и riscv Linux. Согласно предыдущим исследованиям, вид компиляции, который я должен делать, - это режим голого металла. Это связано с тем, что я желаю минимальную сборку без поддержки операционной системы или прокси-сервера ядра. Функции сборки как системного вызова не требуются.
Тем не менее, я еще не смог найти, поскольку я могу скомпилировать код C для получения скелета минимальной программы сборки riscv. Как я могу скомпилировать код C выше в режиме голого металла или получить скелет минимального кода сборки riscv?