問題タブ [omap]
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.
arm - OMAPSPIコントローラー
OMAP3でspiデバイスを制御するためのアプリケーションを開発した人はいますか?spiドライバ「mcspi」をロードできますが、使い方がわかりません。
c++ - DSP を使用して OMAP でコードを高速化するには?
OMAP3430 のビデオ コーデックに取り組んでいます。私はすでに C++ で記述されたコードを持っており、DSP (私が持っている SDK (OMAP ZOOM3430 SDK) には追加の DSP があります) を利用するために、その特定の部分を変更/移植しようとしています。
非常に少量のデータ (〜 250 バイト) で実行されている小さな for ループを移植しようとしましたが、異なるデータでは約 2M 回です。しかし、CPU と DSP 間の通信による過負荷は、ゲインよりもはるかに大きい (もしあれば)。
このタスクは、通常のコンピューターで GPU のコードを最適化するのとよく似ていると思います。私の質問は、どのような部品を移植すると有益でしょうか? GPU プログラマーはそのようなタスクをどのように処理するのでしょうか?
編集:
- GPP アプリケーションは、サイズ 0x1000 バイトのバッファーを割り当てます。
- GPP アプリケーションは、DSPProcessor_ReserveMemory を呼び出して、自動ページ アライメントを考慮して、割り当てられたバッファーよりも 4K 大きいサイズを使用して、割り当てられたバッファーごとに DSP 仮想アドレス空間を予約します。合計予約サイズも、4K ページ境界に沿って配置する必要があります。
- GPP アプリケーションは、DSPProcessor_Map を呼び出して、割り当てられた各バッファーを、前の手順で予約された DSP 仮想アドレス空間にマップします。
- GPP アプリケーションは、GPP 上に割り当てられたバッファにマッピングされた仮想アドレス空間のベース アドレスを DSP 実行フェーズに通知するメッセージを作成します。GPP アプリケーションは、DSPNode_PutMessage を使用してメッセージを DSP に送信します。
- GPP は memcpy を呼び出して、処理対象のデータを共有メモリにコピーします。
- GPP アプリケーションは DSPProcessor_FlushMemory を呼び出して、データ キャッシュがフラッシュされたことを確認します。
- GPP アプリケーションは、バッファへの書き込みが完了し、DSP がバッファにアクセスできるようになったことを DSP 実行フェーズに通知するメッセージを準備します。メッセージには、バッファに書き込まれたデータの量も含まれているため、DSP はコピーするデータの量を把握できます。GPP は、DSPNode_PutMessage を使用してメッセージを DSP に送信し、DSPNode_GetMessage を呼び出して、DSP からメッセージが返されるのを待ちます。
その後、DSP プログラムの実行が開始され、DSP は処理が終了するとメッセージで GPP に通知します。試しに、DSP プログラム内には何も処理を入れていません。「処理が完了しました」というメッセージを GPP に送り返すだけです。そして、これにはまだ多くの時間がかかります。内部/外部メモリの使用が原因でしょうか、それとも単に通信の過負荷が原因でしょうか?
c++ - アライメントされたメモリアクセスとアライメントされていないメモリアクセス?
アライメントされたメモリアクセスとアライメントされていないメモリアクセスの違いは何ですか?
私は TMS320C64x DSP で作業しており、組み込み関数 (アセンブリ命令用の C 関数) を使用したいと考えています。
where_amem2
は 2 バイトのアライメントされたアクセスを行い、_mem2
アライメントされていないアクセスを行います。
いつどれを使用する必要がありますか?
c++ - ハードウェアで time.h clock() が壊れていますか?
OMAP ZOOM 3430 MDK に付属の TMS32064x+ DSP でコードを実行するために必要なクロック サイクルを測定しようとしました。DSP チップの「Programmer's Guide」を見ると、DSP が clock() 関数をサポートしていると書かれています。
私がやっていることはとてもシンプルです。
次に、「start」、「stop」、および「total」の値を、ARM プロセッサで以前に割り当てられた共有メモリに配置します。次に、それを ARM 側の画面に表示するだけです。
問題は、最初の実行では常に同じ「合計」値を取得し、次の実行では常に 0 を取得することです! 「開始」値と「停止」値は「合計」値と一緒です。
最も奇妙なことは、ビットパターンに従っているように見えることです! 出力を以下に示します。
明らかに、clock() はうまく機能していませんが、これが何か間違っているためなのか、それともこのタイプのものが私のハードウェアでサポートされていないためなのかはわかりません。なぜこれが起こっているのでしょうか?
mobile - PCビデオコーデックをモバイル環境に移植?
私は、PC で実行するように記述されたビデオ コーデックをモバイル プラットフォーム (私の場合は OMAP3430 MDK) に移植する作業に取り組んでいます。私の質問は特定のプラットフォームや言語とは関係ありませんが。
コーデックをモバイル プラットフォームに移植する際に心に留めておくべき特定の手がかり/アイデアを求めます。PC とモバイル環境の主な違いは何ですか。モバイル プラットフォームの一般的なボトルネックは何ですか?
また、そのようなタスクに関連する学術出版物への参照も歓迎します。
embedded - OMAP 3530: IO を切り替える速度は?
OMAP 3530 SoC 用のアプリケーションをまとめています。このアプリケーションは、組み込み Linux でいくつかのユーザー インターフェイス コードを実行し、DSP で波形生成コードを呼び出します。DSP 側と Linux 側は、DSP/BIOS リンクを介して対話します。
私の質問は次のとおりです。
- DSP 側のコードが GPIO ラインをトグルできる最大周波数は?
- 複数の GPIO ラインをこの高速でトグルしたい場合、どのくらいの速さで行けばよいですか?
洞察をありがとう。
-ラージ
opengl-es - 組み込みプラットフォームで OpenGL ES 2.0 テクスチャ メモリに直接アクセスすることは可能ですか?
私は OMAP 3530 ベースのプラットフォームで GP-GPU コードに取り組んでいますが、openGL ES 2.0 に glGetTexImage 関数がないために行き詰まっています。プラットフォームは GPU に統合メモリを使用するため、メモリ内の割り当てられたテクスチャへのポインタを直接取得するためにできるハックがあるかどうか疑問に思っていました。このようにして、大量のデータを破棄するフレームバッファーを介してデータをプッシュすることなく、データを読み戻すことができました。
linux-device-driver - Linuxでのomap3gpmcconfig
Linuxでの起動後にOMAP3gpmcの構成を変更することは可能ですか?OMAP3gpmcバスを使用するデバイス用のドライバーを作成しています。必要な場合にのみドライバーをロードできるようにすることをお勧めします。GPMCコントロールはメモリもプログラムするので、Linuxはそれを許可しますか?
arm - 重い信号処理ワークロード用の Intel atom または ARM
どちらがより優れた(パフォーマンスの)オプションであるかを知りたいです:
- Intel デュアル コア アトム ベースのボードを入手するには
- Arm cortex A9 ベースのボード (pandaboard など) を入手するには
Linuxの軽量バージョンを実行し、画像/ビデオ処理(おそらく3D以降)などの非常にCPUを集中的に使用する計算を実行し、それらのオーディオも処理したいと考えています。もちろん、すべての浮動小数点数学。