問題タブ [cortex-a8]

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 投票する
4 に答える
44430 参照

c - ARM Cortex-A8プロセッサでプログラムの実行時間を測定するにはどうすればよいですか?

私はi.MX515と呼ばれるARMCortex-A8ベースのプロセッサを使用しています。LinuxUbuntu9.10ディストリビューションがあります。私はCで書かれた非常に大きなアプリケーションを実行しており、gettimeofday();関数を使用してアプリケーションにかかる時間を測定しています。

この方法は、アプリケーションのどのブロックにどのくらいの時間がかかっているかを確認するのに十分でした。しかし、今では、コードを非常に徹底的に最適化しようとしています。gettimeofday()メソッドを使用して時間を計算すると、連続する実行(最適化の前後の実行)の間に多くの変動が見られるため、できません。実際の実行時間を決定するため、したがって私の改善の影響を判断します。

誰かが私に何をすべきか提案できますか?

サイクルカウンター(Cortex-M3のARM Webサイトで提案されているアイデア)にアクセスすることで、Cortex-A8のタイマーレジスタにアクセスするために実行する必要のある手順を示すコードを誰かに教えてもらえますか?

この方法があまり正確でない場合は、いくつかの代替案を提案してください。

ありがとう


フォローアップ

フォローアップ1:Code Sorceryで次のプログラムを作成しました。実行可能ファイルが生成され、ボードで実行しようとすると、次のメッセージが表示されました-不正な指示メッセージ:(

フォローアップ2:私はサポートのためにフリースケールに手紙を書きました、そして彼らは私に次の返事とプログラムを送り返しました(私はそれからあまり理解していませんでした)

これが私たちが今あなたを助けることができるものです:私はあなたにUARTを使用してストリームを送信するコードの例を添付して送信します、あなたのコードから、あなたは正しくMPUを初期化していないようです。

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

linux - アルゴリズムによって消費される電力を測定する方法は?

ARM-Cortex-A8/Ubuntu 9.01プラットフォームで実行されている画像処理アルゴリズムがあり、アルゴリズムが消費する電力を測定する必要があります。これを行う方法を知っている人はいますか? これに利用できるツールはありますか?

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

c - インラインアセンブリ:関数へのポインタを渡し、アセンブリ内のその関数でそれを使用する

ARM/Cortex-A8プロセッサプラットフォームを使用しています。

関数に2つのポインターを渡さなければならない単純な関数があります。これらのポインターは、後でインラインアセンブリコードのみを持つ関数で使用されます。この計画は、パフォーマンスを達成するためだけのものです。

ありがとう

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

memory-management - ARM Cortex-A8:キャッシュ使用率を測定する方法は?

Freescaleのi.MX515EVK、ARM Cortex-A8 / Ubuntuプラットフォームを持っていますが、残念ながら、ボード上のLinuxカーネルはOprofilerZoom Profilerなどの有名なプロファイラーの一部をサポートしていません(ZoomはARMプロセッサをサポートしていますが、内部的にはサポートしています) 、キャッシュ使用率に関する非常に詳細なレポートを提供するOprofilerドライバーを使用します。

Cortex-A8には、32KBの命令キャッシュとデータキャッシュ、および256KBのL2キャッシュがあります。現在、私の画像処理アルゴリズムが実行されているとき、私はそれらの使用法について完全に盲目です。

プロファイラーを使用してキャッシュのヒットとミスを見つける以外に、他の方法はありますか?

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

arm - NEON 比較 (以上) 命令の使用方法

一般的な NEON 比較命令の使用方法

これは、私が使用したい、より大きいまたは等しい命令ですか?

現在、私は、

NEON では、x を同​​じように使用したいと思いますが、今回の x はベクトルです。

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

memory - 明確化:プロセッサは800Mhzおよび200MhzDDRRAMで動作します

ARMCortex-A8コアを実装した評価キットがあります。プロセッサのデータシートには、

ARMCortexA8™コア。最大800MHzおよび最大200MHzのDDR2RAMの速度で動作します。

このシステムから何を期待できますか?200MHzでしか動作しないため、メモリアクセスがボトルネックになると思いますか?

これを解釈する方法についての詳細が必要です。

0 投票する
4 に答える
35192 参照

arm - ARM Cortex-A8:VFPとNEONの違いは何ですか

ARM Cortex-A8プロセッサでは、NEONとは何かを理解しています。これは、SIMDコプロセッサです。

しかし、コプロセッサーでもあるVFP(Vector Floating Point)ユニットはSIMDプロセッサーとして機能しますか?もしそうなら、どちらを使用するのが良いですか?

私は次のようないくつかのリンクを読みました-

  1. Link1

  2. Link2

しかし、それらが何を意味するのかはあまり明確ではありません。彼らは、VFPがSIMDに使用されることを意図したものではなかったと言っていますが、Wikiで次のように読んでいます-「VFPアーキテクチャは短いベクトル命令の実行もサポートしていますが、これらは各ベクトル要素で順番に動作するため、真のSIMDのパフォーマンスを提供しません(シングルインストラクションマルチデータ)並列処理。

何を信じるべきかはそれほど明確ではありませんが、誰かがこのトピックについてもっと詳しく説明できますか?

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

arm - ARM Cortex-A8: NEON と vfpv3 の両方を利用する方法

-mfpuCortex-A8 プロセッサを使用していますが、フラグの使用方法がわかりません。

Cortex-A8 には、vfpv3ネオンコプロセッサの両方があります。以前はネオンの使い方を知らなかったので、ネオンしか使っていませんでした

gcc -marm -mfloat-abi=softfp -mfpu=vfpv3

これで、SIMD プロセッサがどのように動作するかを理解し、NEON 組み込み関数を使用して特定のコードを記述できました。ネオン コプロセッサを使用するには、-mfpu フラグを に変更する必要が-mfpu=neonあるため、コンパイラ コマンド ラインは次のようになります。

gcc -marm -mfloat-abi=softfp -mfpu=neon

さて、これは myvfpv3がもう使われていないということですか? NEON を使用していないコードがたくさんありますが、それらの部分は使用しないでくださいvfpv3

ネオンと vfpv3 の両方がまだ使用されている場合は問題ありませんが、どちらか一方しか使用されていない場合、どうすれば両方を利用できますか?

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

arm - ARM Cortex-A8: 1 回のメモリ読み取りでフェッチされるバイト数は?

ARM cortex-a8 プロセッサで実行されている画像処理プロジェクトを改善しようとしています。

メモリから 8 ビットのグレースケール イメージ データにアクセスしていました。私の関数では、現在、個々のピクセル値にバイト単位でアクセスしています。

NEONを利用することで、メモリから128/8 = 16バイトにワンショットでアクセスし、関数でそれらを利用することでこれを改善できると考えました。しかし、変更されたバージョンを実行すると、実際にはバイト単位のアクセスよりも時間がかかっていることがわかります。NEON を使用したフェッチがボトルネックになり、計算時間よりも時間がかかっていると思います。

ARM Cortex-A8 のデータ バス サイズは? 1 回のメモリ フェッチでメモリからアクセスされるバイト数は?

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

linux-kernel - ARM ロックダウン レジスタの書き込み操作でデバイスがクラッシュする

Linuxカーネルを実行しているARM Cortex A-8デバイスでいくつかの実験を行っています。

問題なく L2 キャッシュ ロックダウン レジスタの値にアクセスして読み取ることができます。

asm volatile ("mrc p15, 1, %0, c9, c0, 0" : "=r" (i));

値を書き戻そうとすると、デバイスがすぐにクラッシュします。

asm volatile ("mcr p15, 1, %0, c9, c0, 0" : : "r" (i));

コードはカーネル モジュールとして実行されるため、権限の問題はありません。

そのレジスタ値を書き込む前に何か特別なものが欠けているのだろうか?