問題タブ [zynq]
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.
c++ - ザイリンクス Zynq の割り込み C++ 内で、割り込みの外部で初期化および設定された値がゼロになる
メインで初期化する値があるコードで、かなり奇妙な問題が発生しています。割り込み内でその変数を呼び出そうとすると、0になります。ここで何が欠けていますか? 異なる変数は割り込み内に存在しますか?
これは、割り込みに関するより理論的な質問であり、アイドルと割り込みの間で値を共有できないかどうかに注意してください。
c++11 - C++ 外部変数をプライベート クラス変数にインポートする
main
で宣言された変数を、コンストラクターの引数として渡さずに、クラスのプライベート変数に取得しようとしています。割り込みインスタンスを再初期化して上書きせずに、割り込みコントローラーを複数のハードウェア割り込みにリンクする必要があります。
クラス Foo の実装:
deviceID と slaveMask は、含まれるヘッダーで定義されます。
これを達成する方法はありますか?
fpga - Vivado SDK からの 2 つの fifo の同期
zynq 7020 と Vivado 2016.1 を試しています。このチュートリアルhttp://www.fpgadeveloper.com/2014/08/using-the-axi-dma-in-vivado.htmlを試すと、これまでのところ機能しています。(AXI DMA と AXI4-Stream Data FIFO を使用した簡単な例)
2 つの fifo を使用してこの例を拡張すると、同じように機能します。そのため、sdk で「XPAR_AXIDMA_0_DEVICE_ID」と「XPAR_AXIDMA_1_DEVICE_ID」を使用すると機能します。
これを使用することは単なる学術的な例であり、ある種の価値はありません。2 つの FIFO を使用する意味は、浮動小数点 IP などの出力を結合することです。
私の質問は、sdk で正しい順序で使用するために十分な速度と同期の両方を埋める方法です。
簡単な例として、両方の FIFO に数値 [1 2 3 4 5...] を入力し、浮動小数点 IP 読み取り結果 [2 4 6 8...] を追加します。
qt - FPGA PL および PS フレームバッファ インターフェイスを備えたオシロスコープ タイプの設計?
ザイリンクス Zynq チップのプログラマブル ロジックで実行されている Verilog モジュールの 1 つで特定の信号 (デジタル パルス) を生成しています。信号はかなり高速で、クロックは約 200MHz です。また、後でアプリケーションを制御するために、シンプルな Linux とフレームバッファ Qt インターフェイスを実行しています。
Qt アプリ内でオシロスコープのようなインターフェイスを作成するために信号をサンプリングするにはどうすればよいですか? 生成しているパルスを視覚的に提供できるようにしたいと考えています。
そのようなクロック周波数で十分なデータをサンプリングできるようにするには、何を使用する必要がありますか? そして、カーネルモジュールまたはmmapでQtに渡すにはどうすればよいですか?
zynq - Device Tree Compiler とは何ですか?/どうすれば入手できますか?
ザイリンクス zc706 ボードをプログラムしようとしていますが、これには Linux カーネルのビルドとブートローダーのセットアップが含まれます。ここに記載されているワークフローに従っています。
ダウンロード後の最初のステップは、Linux を起動するために必要な UBoot を取得するために必要なデバイス ツリー コンパイラを作成することです。github から DTC のソースを取得しましたが、SDK シェルに入ってディレクトリに移動し、「MAKE」と入力すると、エラーが発生しました。
sed: -e 式 #1、文字 1: 不明なコマンド: `''
-x は現時点では予想外でした。
" " LEX convert-dtsv0-lexer.lex.c
process_begin: CreateProcess(NULL,flex -oconvert-dtsv0-lexer.lex.c convert-dtsv0-lexer.1, ...) が失敗しました。
おそらくこの最初のことが失敗したため、ファイルが見つからないという他のいくつかのものが続きました。
このエラーの読み方がわかりません。意味不明です。このビルドの何が問題なのか、または Zynq チップを実行するために必要な DTC または UBoot を入手する方法を誰か説明できますか?
networking - ローカル ネットワーク内のノード間の時刻同期のための NTP のテスト
あなたの専門知識が必要です:
ザイリンクスの zynq ボードと、NTP サーバー (ストラタム 3) と時刻を同期しているデスクトップ コンピューターがあります。NTP サーバーは、NTP プールと時刻を同期しているデスクトップ コンピューターです。エンベデッド システム (Zynq) とデスクトップ コンピューターで、以下に説明する単純なエコー メソッドを使用しています。
注: ローカル NTP サーバーと NTP プールを除き、すべての通信はワイヤレス ネットワークを介して行われます。
- クライアントはその時刻をサーバーに送信します
- サーバーはパケットを読み取り、その時間をパケットの時間と比較して出力します
- サーバーは別のパケットに時間を置き、それをクライアントに送信します
- クライアントはパケットを取得し、それを読み取り、差分時間を出力します
これにより、約1〜2ミリ秒の時間差が得られます
ここでの問題は、別の方法でテストすることです。エコーメソッドの代わりに単純な送受信を行います。つまり、1 つのシステムはタイムスタンプ付きのパケットのみを送信し、もう 1 つのシステムは時間差を読み取って出力するだけで、時間差が 10 倍大きくなります! その背後にある理由が何であるか知っているかどうか疑問に思っていましたか?
xilinx - Petalinux と FreeRTOS の定性的比較
Zynq ボードでアプリケーションの開発を開始します。私の仕事は基本的に、デュアル コア ARM の Microblaze で実行されている既存のアプリケーションを移植することです。
私はこの分野での経験がまったくないので、新しいシステムでどの OS を使用するかについて疑問に思っています。主に4つのアプローチがあるように私には思えます。
1) Petalinux (両方のコアを使用)
2) Petalinux+FreeRTOS (両方のコアを使用)
3) FreeRTOS (コアのみ使用)
4) ベアメタル (コアのみを使用)
私のアプリケーションは、イーサネットと複数のカスタム リンクの間で大量のデータを移動する必要があるため、多くの割り込みを処理し、多くの DMA 操作を命令する必要があります。
ベアメタルまたは FreeRTOS に関して、割り込みサービスで Petalinux によって導入されるオーバーヘッドはどのくらいですか? この種の作業では、OS なしで実行するシングル コア アプリケーションや、たとえば OS (およびセマフォやミューテックスなどの同期メカニズム) のオーバーヘッドを持つ Petalinux アプリケーションの方が高速だと思いますか?
質問が正確ではなく、非常に漠然としていることは承知していますが、この分野での経験がないため、最初のヒントが必要です。
ありがとうございました。
fpga - Vivado バージョンの違いの第 1 段階のブート ローダー
Vivado 2016.1 に小さな問題とバグがあります。私の zynq (z-turn 7020) では、Vivado SDK は機能する第 1 段階のブート ローダーをコンパイルできません (コンパイルは問題ではなく、.elf ファイルが機能しないだけです)。ただし、fsbl が動作している古い 2014.4 または 2015.4 プロジェクトを使用すると、BOOT イメージで動作します。SD カードから起動せず、SDK でプロジェクトを直接使用すると、動作します。
異なる SDK バージョンの .elf ファイルの正確な違いは何ですか? boot.img を作成するために新しいプロジェクトで古い fsbl を使用する場合に遭遇する問題はありますか?
linux-device-driver - GPIO から I2C カーネル ドライバー (i2c-gpio の反対)
私の Zynq ボードには SPI、I2C がありますが、カーネル レベルの GPIO (MIO の GPIO は他の多くのものに送信されます) がないため、ヘッダーから取得できません。私がこれを言うとき、私を信じてください。
タッチ スクリーン インターフェイスを駆動できるように、カーネル レベルの GPIO が必要です。一部の GPIO を stmpe610 タッチ スクリーン ドライバー (デバイス ツリー互換 = "st,stmpe610") にマップする必要があります。これはすべて順調です。だから私がやりたいことは、どういうわけかI2CをGPIO(ディスプレイに接続される)にマップし、I2Cを介してインターフェースにドライバーをパイプすることです。このようにして、カーネル空間から i2c エクスパンダの GPIO ピンにアクセスできます。
私は i2c-gpio ドライバーを見ましたが、私が望むものとは反対のことをします ( http://lwn.net/Articles/230571/ )。GPIO を受け取り、ビットバンギングで I2C にします。
I2C を受け取り、GPIO を吐き出す i2c エキスパンダー ミニボードがあります。したがって、gpio-i2C があれば、それは素晴らしいことです。
たぶん、私はあまりにも遠くにさまよって、人里離れた道を離れてしまいました. stmpe610 には i2c ドライバーがありますか? これにより、私の問題も軽減されます。
<<
camera - Arducam OV5640 カメラ モジュールから応答がありません
Digilent Zybo ボードで Zynq FPGA を使用するカメラを含むプロジェクトに取り組んでいます。SCCB を介して構成することにより、OV7670 から正常に応答を取得できます。OV7670 を構成しなくても、適切な XCLK 信号を提供する限り、OV7670 は PCLK を提供し、データ ピンを駆動します。最近、Arducam OV5640 モジュールを購入しました。このモジュールについてこれまで読んだドキュメントによると、まだ 3.3V ロジックを使用できることが示唆されています。12 ~ 25MHz の XCLK 信号を送信しても、このモジュールから応答がありません。誰かが私を正しい方向に向けて、私が間違っているかもしれないことに気づかせてくれますか? それは本当に 3.3V ロジックですか、それともそれ以下にする必要がありますか? OV7670 とは異なる方法で実行する必要があることを認識していない電源投入シーケンスはありますか?
どんな助けでも大歓迎です。私は本当に立ち往生しており、Omnivisions のドキュメントが完全ではないことはよく知られています。