問題タブ [microblaze]

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.

0 投票する
1 に答える
1017 参照

c - _interrupt_handler の複数の定義を提供する freeRTOS を使用した Microblaze 割り込みの例

FreeRTOS を備えたザイリンクス SDK を使用して簡単なサンプル プログラムを作成しましたが、予期しない問題が発生しました。ソフトウェア割り込みを発生させたいので、このようにコードを設定しました。

コンパイルしようとすると、次のように不平を言います:

portasm.S を確認したところ、次のコードが含まれています。

これを修正する方法が不明です。他の誰かがこれに遭遇しました。

どんな助けでも大歓迎です。前もって感謝します。

0 投票する
1 に答える
125 参照

c - microblaze で固定アドレスのライブラリをコンパイルする方法

再配置可能なライブラリを構築したい (つまり、ローカル変数以外は何もない。また、ライブラリの場所を強制的にメモリ内の固定場所にしたい。これはメイクファイルで行う必要があると思うが、私はライブラリを強制的に固定の場所にロードするために何をしなければならないかについて混乱しています.これはmb-gccを使用しています.

これが必要な理由は、他のプログラムのコピーを実際に実行しているコードを上書きしたくないローダーを書きたいからです。したがって、コピーを実行しているプログラムを、使用されていない場所 (つまり、ddr) の別の場所に配置する必要があります。

ライブラリにコンパイルするすべての関数がある場合、たとえば、これを 0x80000000 の場所に強制的にロードするには、どの特別な makefile 引数が必要ですか。

どんな助けでも大歓迎です。前もって感謝します。

0 投票する
1 に答える
1151 参照

vhdl - 命令とデータは MicroBlaze MCS でどのように構成されていますか?

私は実際に、FPGA に実装した MicroBlaze マイクロ コントローラー システムについて調べています。しかし、この MCU がどのように機能しているかを理解したいと思います。このブロック図を考えてみましょう:

MicroBlaze MCS のブロック図

プロセッサが 32 ビットの 2 つのバスを介して BRAM モジュールに接続されていることがわかります。これらのバスの 1 つは ILMB (命令ローカル メモリ バス) で、もう 1 つは DLMB (データ ローカル メモリ バス) です。両方が BRAM モジュールの異なるポートに接続されていることがわかります。そこで私の質問があります: ハーバード アーキテクチャでは、プログラム命令とランダム アクセス メモリを分離することは想定されていませんか? ザイリンクス IP コア ジェネレーターを使用してシステムを生成する場合、配置するメモリ サイズは、プログラム命令、RAM、またはその両方のサイズですか?

メモリー容量?

xparameters.h ヘッダー ファイルの定義を検索して、ILMB と DLMB のメモリ内のアドレスを見つけたところ、両方が同じアドレス範囲であることがわかりました。

命令とデータの両方が同じアドレスで参照されているという事実は、私を混乱させました。誰かが私が間違っている場所を教えてもらえますか?

0 投票する
0 に答える
77 参照

linux - MicroBlaze プロセッサで実行されている for サイクルに挿入すると、「parallel for」コンストラクトの OpenMP 実行がブロックされる

Microblaze プロセッサで実行されている OpenMP 実装 "GOMP" (つまり、GNU OpenMP) に問題があります。MicroBlaze プロセッサはカーネル メインラインにあり、ザイリンクスは pthread インプリメンテーションを提供しています。そこで、pthread の実装から始めて GOMP ライブラリをクロスコンパイルし、Microblaze (Petalinux という名前の 3.10 バージョン) で実行されている Linux カーネルに挿入しました。具体的には、Parsec ベンチマークの 1 つ (ここにリンク ( http://parsec.cs.princeton.edu/download.htm ) があります)、つまり blackscholes を実行すると問題が強調されます。問題を示すコード セクションは次のとおりです。

}

blackscholesは、次のコマンドを使用して、さまざまな入力セットとさまざまなスレッド番号で起動できます 。

1、2、3、5、7 のスレッドで起動し、奇数をたどるとうまくいきます。4、6、8、10 スレッドなどで起動し、偶数に続いてブロックします。ここでも、定数 NUM_RUNS を 1 に減らすことで、アプリケーションは適切に機能します。私の質問は次のとおりです: GOMP 実装が for サイクルの後にワークシェアリング構造の挿入 (つまり、omp parallel for) に苦しむ可能性はありますか?

ありがとうございました。