問題タブ [amba]

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 に答える
1182 参照

vhdl - カスタムペリフェラル、AMBAAHBスレーブでLEONSOCを拡張する例

ここで誰かがカスタムハードウェアでLEON3ソフトコアを拡張しましたか?AMBAAHBバスにカスタム周辺機器を追加する基本的な例を探しています

0 投票する
2 に答える
2763 参照

arm - ARM Cortex プロセッサの L1 キャッシュ ポート

いろいろ調べてみましたが、あまり情報がありませんでした。

ARM 組み込みプロセッサのL1読み取りポートと L1 書き込みポートの数と、ポートの幅を知りたいです。具体的には、Cortex-A8、Cortex-A9、Cortext-A15 に興味があります。

私の盲目的な推測では、Cortex-A9 プロセッサには 1 つの L1 読み取りポートと 1 つの L1 書き込みポートがあり、これらは 64 ビット幅です。私のもう1つの推測は、1つの共有読み取り/書き込みポートがあるということです。それについて何か考えはありますか?

0 投票する
2 に答える
2346 参照

linux - AXI バースト タイプのデバイス用の組み込みの Linux メソッドはありますか?

AXI バースト インターフェイスに基づく FPGA デバイスと通信する必要があります。DMA を使用せずに Linux を介してそのようなデバイスにアクセスするには、どのような方法がありますか? バーストは AXI 規格の固有のプロパティであり、通常、大量のデータが転送されるときに自動的にトリガーされます。さらに大きな問題は、FPGA が AXI バスを介したバースト タイプの要求にのみ応答するように設計されていることです。そのため、アプリケーションがシーケンシャル コピーを試みると、Linux で深刻な問題が発生します。私はすでに試しましたが、うまくいきmemcpyません。

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

arm - DMA とバスに関するソフトウェアとハ​​ードウェアの相互作用を首尾一貫して理解する

ARM ベースのボードで一般的な DMA トランザクションに関与するいくつかのコンポーネント (ソフトウェアとハ​​ードウェアを含む) についてある程度の知識を集めましたが、完全に統合されている方法がわかりません。完全な一貫性が見つかりませんでした。これについての説明。

私がすでに持っている高レベルの知識を書き留めます。誰かが私が間違っているところを修正し、不足している部分を完成させて、全体像が明確になることを願っています. 私の説明は、ユーザー空間のソフトウェアから始まり、ハードウェア コンポーネントにまで掘り下げます。誤解されている部分はイタリック太字で示しています。

  • ユーザー モード アプリケーションは、デバイスからの読み取り/書き込みを要求します。つまり、I/O 操作を行います。
  • オペレーティング システムは要求を受け取り、それを適切なドライバーに渡します (すべての OS には、これを行うための独自のメカニズムがあります。ここでさらにドリルダウンする必要はありませんが、ここで洞察を共有したい場合は大歓迎です)。
  • I/O 要求を処理するために担当しているドライバーは、デバイスがマップされているアドレスを知っている必要があります (私は ARM ベースのボードに興味があるので、メモリにマップされた I/O しかなく、ポートはありません) I/O)。ほとんどの場合 (スマートフォンのようなボードを考える場合)、ブート時にブートローダーから提供されるデバイス ツリーからデバイス アドレスを解析する Linux カーネルが存在するか (最新のアプローチ)、または Linux がプリコンパイルされています。特定のモデル ファミリとデバイス アドレスを含むボード (ソース コードにハードコードされている) (古くて廃止された? アプローチ)。場合によっては (スマートフォンでよく発生します)、ドライバーの一部がプリコンパイルされ、カーネルにパッケージ化されているだけです。つまり、ソースがクローズされているため、デバイスに対応するアドレスが不明です。それが正しいか?
  • ドライバーが通信したいデバイスの関連レジスタのアドレスを知っている場合、ドライバーは、デバイスが (DMA の助けを借りて) データを書き込むバッファー (通常はカーネル空間内) を割り当てます。ドライバーはそのバッファーの場所をデバイスに通知する必要がありますが、デバイスが (メモリを操作するために) 操作するアドレスは、ドライバー (CPU) が操作するアドレスとは異なるため、ドライバーはデバイスに通知する必要があります。割り当てたばかりのバッファの「バスアドレス」について。ドライバーはそのアドレスをデバイスにどのように通知しますか? IOMMU の使用はどのくらい一般的ですか? IOMMU を使用する場合、アドレス指定を管理するハードウェア コンポーネントは 1 つですか、それともデバイスごとに 1 つですか?
  • 次に、ドライバーはデバイスにジョブを実行するように命令し (レジスターを操作して)、デバイスは出力データをメモリ内の割り当てられたバッファーに直接転送します。ここで、device-driver:bus:bus-controller:actual-device の関係と少し混乱しています。たとえば、I2C プロトコルで通信することを認識している架空のデバイスを考えてみましょう。SoC は I2C バス インターフェイスを指定します - これは実際には何ですか? I2C バスにはある種のバス コントローラがありますか? CPU は I2C バス インターフェイスと通信しますか、それともデバイスと直接通信しますか? (つまり、I2C バス インターフェイスはシームレスです)。デバイスドライバーの経験がある人なら、これに簡単に答えることができると思います..
  • デバイスは DMA チャネルを設定します。デバイスはメモリに直接接続されているのではなく、何らかのバスを介して (バスをマスターする) DMA コントローラに接続されているため、DMA と対話して、必要なデータをメモリ内の割り当てられたバッファに転送します。ボード ベンダーが ARM IP コアとバス仕様を使用する場合、このステップには、AMBA 仕様 (つまり、AHB/マルチ AHB/AXI) のバスを介したトランザクションと、デバイスとその上の DMAC 間の何らかのプロトコルが含まれます。このステップについて詳しく知りたいのですが、実際にはどうなりますか? ARM社のDMAコントローラには多くの仕様がありますが、どの仕様が主流ですか? どれが時代遅れですか?
  • デバイスが完了すると、割り込みが送信され、割り込みコントローラーを介して OS に渡されます。OS の割り込みハンドラーは、DMA 転送が完了したことを認識している適切なドライバーに割り込みを指示します。
0 投票する
2 に答える
1758 参照

vhdl - AXI4Lite スレーブ IP

GNU GPL で利用可能な AXI4Lite スレーブ IP (Verilog、VHDL) はありますか? uP システムで仮想 AXI4 マスターをテストしたいので、この要件があります。

AXI4 スレーブまたは AXI3 スレーブだけでも十分です (信号を取り除いて AXI4Lite 互換にすることができます)。

リンク、ソースコードは役に立ちます。

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

x86 - ARM 対 x86 IO マッピング

ここに画像の説明を入力

ラズベリーパイのデータシートを見ていました。ページ BCM ARM PERIPHERALS、物理アドレスから ARM 仮想アドレスへのマッピングを示す図、マッピングは一定です。

つまり、ARM 物理アドレス 0x20000000 (IO ベース アドレス) は、定数 ARM 仮想アドレス F2000000 にマップされます。

この変換は、ボード プラットフォーム ファイルの IO_MEM(IO_ADDRESS) などの MACROS によって行われています。したがって、適切なアドレスを渡すだけです。

x86 に定数マッピングはありますか?

PCI の場合、ブートのたびにアドレスが変更されるため、これはあり得ません。私はこれで正しいですか?

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

arm - クロックとバスの接続方法

これらのハードウェアクロックとバス通信について学んでいます。

私の理解では、2 つのプロセッサ (ARM と DSP など) がバスを介して通信/データ転送される場合、同期アクセス用のクロックが必要です。

このような場合、マスターとスレーブの両方に単一のクロックがありますか、それともマスターとスレーブの両方に同じ Hz で動作する個別のクロックがありますか?

私は AMBA AHB/AXI に特化しています。誰かがこれを正しく理解するのを手伝ってくれますか、それとももっとリソースを手に入れることができますか?