2

我设计了 RISCV32IM 处理器,并使用“riscv32/64-unknown-elf-gcc”生成测试代码。

我在没有操作系统的系统上进行测试,当我使用下面的编译选项(-O0)时,我很不情愿,因为有很多不必要的代码生成。

riscv64-unknown-elf-gcc -march=rv32im -mabi=ilp32 -nostartfiles -O0 -x c  -Ttext 40000000 -Tdata 50000000 -Tbss 60000000 -o main.o main.c

使用编译选项(-O1 或 -O2)时,只生成必要的代码,但根据 C 代码,main() 或 _start() 函数的指令代码位置可能不是指令记忆。

由于系统的性质,main() 或_start() 的代码位置必须位于指令内存的开头。

解决上述问题的编译器选项有哪些?

riscv64-unknown-elf-gcc -march=rv32im -mabi=ilp32 -nostartfiles -O2 -x c  -Ttext 40000000 -Tdata 50000000 -Tbss 60000000 -o main.o main.c
4

0 回答 0