私は、Verilogのハードウェア設計をBerkeleyのVscaleプロセッサーに基づいて開発しました。設計をテストするために、私はいくつかのCプログラムをコンパイルし、hexファイルを生成したい。私は結局、hexファイルからROMを生成し、Verilogシミュレーションを実行したいと考えています。 riscv64-unknown-elf-gccまたはriscv32-unknown-elf-gccという目的に最も適したコンパイラはどれですか? VscaleプロセッサのアーキテクチャはRV32IMです。32ビットRISC-Vハードウェア設計をテストするためにCコードからhexfileを生成するにはどうすればよいですか?
1
A
答えて
1
あなたは(gccの-oを使用して作成)ELFファイルからの.hexファイルを作成するためにelf2hexコマンドを使用することができ、 すなわち:あなたは32ビットアーキテクチャを使用しようとしている場合elf2hex 16 4096 my_elf_file > output.hex
は、私が使用してコンパイルしますriscv32-unknown-elf-gcc。
0
現在、私のコアデザインのテストにはobjcopyを使用しています。 gccの現在のバージョンにはpatchが含まれており、これによりobjcopyはVerilogメモリファイルを出力できます。
riscv32-unknown-elf-objcopy -O verilog input.elf output.vh
私はこれらのファイルをモデルのシミュレーションで簡単に読み込むことができます。
しかし、あなたの質問に答えるために、これはintel形式の16進ファイルを生成します。
riscv32-unknown-elf-objcopy -O ihex input.elf output.hex
Objcopyは、エクスポートするコードセクションとどのメモリロケーションを指定するかサポートしています。
関連する問題
- 1. Dev-C++にCコードからintelアセンブリを生成させるにはどうすればよいですか?
- 2. 32ビットSSISパッケージを64ビットマシンで単体テストするにはどうすればよいですか?
- 3. タグを生成するためにhaskell-modeを設定するにはどうすればよいですか?
- 4. 32ビットのAmazon EC2 EBSバックアップインスタンスを64ビット版にアップグレードするにはどうすればよいですか?
- 5. C#で32ビットのユニコード文字を使用するにはどうすればよいですか?
- 6. 64ビットRHEL6でlibpam.so.0(32ビット)を取得するにはどうすればよいですか?
- 7. 64ビット環境で32ビット.NETアプリケーションを実行するにはどうすればよいですか?
- 8. 32ビットマシンから64ビットのターゲットにパブリッシュするにはどうすればよいですか?
- 9. 32ビットと64ビットLinux用のNPAPI Chromeプラグインをパッケージ化するにはどうすればよいですか?
- 10. 32ビットと64ビットのGMPライブラリの競合を解決するにはどうすればよいですか?
- 11. T4から生成されたファイルのビルドアクションを設定するにはどうすればよいですか?
- 12. Mac OSで32ビットpyqをインストールするにはどうすればいいですか?Python 3.6-32の場合
- 13. C#リモーティングをテストするためにSSL環境をセットアップするにはどうすればよいですか?
- 14. Tomcatがウィンドウサーバー上で32ビットまたは64ビットであるかどうかを調べるにはどうすればよいですか?
- 15. C#コードをスキャンするようにfortifyを設定するにはどうすればよいですか?
- 16. ハードウェアをテストするためのポーズフレームを生成する
- 17. 既存のマネージド.NETの.dllをテストして、その32ビットまたは64ビットを確認するにはどうすればよいですか?
- 18. CコードからC#オブジェクトを作成するにはどうすればよいですか?
- 19. sinatraでテストするためのモックデータベースを設定するにはどうすればよいですか?
- 20. 4文字をPerlで32ビットIEEE-754 floatに変換するにはどうすればよいですか?
- 21. 64ビットの数値をVBScriptの上位32ビットと下位32ビットに分割するにはどうすればよいですか?
- 22. どうすれば64ビットで、c:¥program files(x86)を、32ビットではc:¥programファイルを使用できますか?
- 23. この集計コードを.NETまたはC#に変換するにはどうすればよいですか?
- 24. NUnitテストからドキュメントを生成するにはどうすればよいですか?
- 25. gccがサム32ビット命令を生成するようにするには?
- 26. 2つの32ビット整数を乗算して64ビット整数を生成するにはどうすればよいですか?
- 27. 2つの32ビットレジスタを64ビットの答えに統合するにはどうすればよいですか?
- 28. CIImageを32ビット/チャンネルの浮動小数点ピクセルバッファにレンダリングするにはどうすればよいですか?
- 29. 32ビット整数をバイト配列にエンコードするにはどうすればよいですか?
- 30. nspecテストを実行するためにNCrunchを設定するにはどうすればいいですか
riscv32-unknown-elf-gccで生成されたコードを自分のプロセッサで直接実行できますか?私は、riscv-tests repoは自分のプロセッサで直接実行できるコードを生成するが、それはアセンブリプログラムだと思う。どうすればCプログラムからそのようなコードを生成できますか? – Shrek
上記で推奨されているelf2hexを使用してください。 riscv_testsのMakefileを見て、それらの生成方法を理解することもできます。 – user2548418
はいできます。上記のように、Makefile(この場合はtest repoのベンチマークフォルダ)を見てください。 Cファイルから実行可能ファイルと.hexファイルを作成します。次に、スパイクを使用して、FPGAなどでロードします。 つまり、 'riscv32-unknown-elf-gcc -o myexecutable.riscv mycode.c'を実行し、' spike(デバッグしたい場合は-dオプション)を使用して実行します。 myexecutable.riscv' –