問題タブ [riscv]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
riscv - スパイク -g はどのように機能しますか?
riscv-tools マスター ブランチから riscv ツールチェーンを構築しました。
私がする時
スパイク-h
PC のヒストグラムをトレースする -g オプションについて通知します。
私は試した
スパイク -g pk こんにちは
トレースが保存される特別な出力やファイルは見られませんでした。
私の質問は、 -g オプションはまだサポートされていますか? はいの場合、どのように使用しますか?
スパイク オプションは、ここ以外で文書化されていますか? http://riscv.org/download.html#tab_isa-sim
-g オプションを使用してスパイクを実行できる場合、どのようなトレース出力形式が表示されると予想されますか?
microcontroller - システム命令作業
ユーザーレベルの命令で単純なRISC-V 32ビットコアを実装しようとしています。
ISA を実装しようとしているときに、リストに命令 (システム) が見つかりました。誰でもシステム命令の動作を説明できますか (パイプラインでどのような変更が行われるか)。
riscv - C++ エミュレーターでベンチマークを複数回実行したときの異なるサイクル数
次のコマンドで dhrystone などのベンチマークを実行する場合:
http://riscv.org/download.html#tab_rocketで説明されているように、C++ エミュレーターで。次の出力が得られます: 初めて実行するとき:
そして2回目:
周期が違うのはなぜ?それらはまったく同じであるべきではありません。他のベンチマークでもこれを試してみましたが、偏差がさらに高くなりました。これが正常な場合、偏差はどこから来るのでしょうか?
build-error - riscv-tools の構築エラー (gcc newlib の最初のファイル: genmddeps)
[更新 20150825: genmddeps.o のコンパイル時に、コンパイラとアセンブラの不一致があるようです。使用されているコンパイラはg++
インストールされているバージョンUbuntu 4.9.2-10ubuntu13
ですが、使用されているアセンブラは./as
として構成されているビルド ディレクトリにあるため、コンパイラから渡されるriscv64-unknown-elf
オプションでエラーが発生します。--64
完全なコマンドは、この投稿の最後のコード ブロックにあります。as
のローカル コピーがある理由g++
と、それを使用しないほど賢くない理由については(まだ) よくわかりません....]
おそらく、私が誤って設定した単純なものがあるでしょうが、もしそうなら、それは複数の試行をすり抜けています. どんな助けでも大歓迎です。
私はロケットチップツリーを構築しようとして立ち往生しており、riscv-tools の構築中に問題が発生しています。発生しているように見えるのは、不正なオプションが riscv アセンブラーに渡され、失敗の原因となっていることです。
システム x86_64 をバイナリとして使用するのではなく、riscv をバイナリとして使用することを考えると、Configure はそれがクロス コンパイルであるとは考えていないようです。
パスは正しく設定されているようです:
(ちなみに、gcc-5.2.0 をダウンロードした後、ビルド プロセスでいくつかのシェル テスト エラーが表示されます。
それが症状なのか、それとも既知の動作なのかは不明です。)
システムは、Win* ボックスの VMware プレーヤーで実行されている Ubuntu 15.04 です。私は tcsh で実行していますが、bash から実行しても同じことが起こります。riscv の変更を調べてみると、必要なオプションは --64 ではなく --m64 のようですが、実際のビルドには表示されないため、ビルド/構成ファイルで --64 がどこから来ているのかわかりませんコンパイラのコマンド。ビルド ログからのビルド手順の完全なシーケンスは次のとおりです。
riscv - root.bin と vmlinux を使用して qemu-system-riscv を実行するとエラーが発生する
ツールチェーンの構築については、riscv.org のガイドに従っています。ローカルに構築された rootfilesystem (busybox を使用) と Linux カーネルを実行している qemu を使用してエミュレートすると、次のエラーが発生します。
ローカルにビルドされた root.bin とカーネル イメージを使用して Qemu を実行する
danny@danny:~/test/riscv/work$ qemu-system-riscv -hda root-local.bin -kernel vmlinux-local -nographic
riscv.org にストックされた root.bin とカーネル イメージを使用して Qemu を実行する
danny@danny:~/test/riscv/work$ qemu-system-riscv -hda root.bin -kernel vmlinux -nographic
riscv.org からダウンロードした root.bin と vmlinux を使用した qemu テストの場合、問題ないように見えますが、busybox 開始メッセージが表示されず、端末が停止しません。
以下のように、さまざまな組み合わせと結果を使用してqemuをテストしました。
私たちは、世界中のメーカー向けに RISCV シリコン チップを構築および製造するプロジェクトを開始しており、Ubuntu Core および Android を RISCV に移植するためにツールチェーンをテストしています。おそらく何がうまくいかなかったのでしょうか?
ありがとう。
caching - RISC-Vロケットキャッシュコヒーレンス
RISC-V Rocket プロセッサの場合、キャッシュはどのような種類の書き込みポリシーを採用していますか (例: ライト バック + 割り当て、ライト スルー + 割り当てなし)? RISC-V では、L1 キャッシュは L2 キャッシュとどのように整合性を保っていますか?
gcc - RISCV でのみ乗数をサポートするようにツール チェーンを変更するにはどうすればよいですか?
RV32I で乗算器命令をサポートする RTL がありますが、ツール チェーンを変更して乗算器のみの ISA をサポートするのに問題があります。div と rem を削除して M 拡張子を変更しようとしていますが、どのファイルを探すべきかわかりません。
riscv - アプリケーションを実行せずに RISC-V で追加された命令をシミュレートする
RISC-V ISA で新しいカスタム命令を実装していますが、それらのコンパイラ サポートをまだ追加していません。C/C++ アプリケーションをコンパイルしてエミュレーターで実行することなく、小さな命令セットを供給することで、C++ エミュレーターを使用して Rocket チップ インフラストラクチャでこれらの命令をテストする方法を探しています。これは可能ですか?