数日前にrisc-vで作業を始めましたが、昨日問題がありました。問題は次のとおりです。どのようにしてRV32I基本整数命令と拡張命令Mに対してのみCコードをコンパイルできますか?
たとえば、RV32I基本整数命令セットのコードをコンパイルしたいと思いますが、「M」標準拡張も追加します。
私はCのコードをコンパイルすると、たとえば私は、ダンプファイルを探る場合、私は、今
riscv64-unknown-elf-objdump -d Program.c > Program.dump
を使用して、アセンブラコードを表示したい場合、私は今、次のコマンド
riscv64-unknown-elf-gcc Program.c -o Program.o -m32 -march=RV32IM
を使用"Program.dump"。他の多くの例の中
10c6c: 00a12427 fsw fa0,8(sp)
10dd0: 00a42023 sd a0,8(sp)
:私は時々、アセンブリ命令を表示されていることに気づきました。
I「は、手動設定しRISC-V命令ボリュームI:ユーザレベルのISA、バージョン2.0」を参照してください場合は52ページで、私はFSW命令がRV32F標準拡張機能とSD命令に属し、それはRV64Iに属していることを観察します。
私は自分の問題が私がうまくコンパイルされていないかどうかわかりません。
私の質問は次のとおりです。RV32Iの基本整数命令と拡張子MのCコードのみをコンパイルするにはどうすればよいですか?
あなたのプログラムは何をしていますか?標準ライブラリを呼び出す場合は、gccからコードを取得します。コードで使用する拡張機能は、コンパイラのコンパイル方法によって異なります。 – Chris