問題タブ [arm]
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.
windows-mobile - ARMV4i (Windows Mobile 6) ネイティブ コード逆アセンブラー
ARMV4i実行可能ファイルと DLLの逆アセンブラを知っている人はいますか?
私はプラグイン DLL を持っていますが、非常にまれにdata abort
(時間の 5% 未満)、特定の機能に絞り込んで作成しています (ダンプビンと によるアドレス出力を介してdata abort
)。ただ、かなり大きな機能なので少し絞ってみたいと思います。呼び出しで発生していることは知っていmemset()
ますが、その特定の関数には約 35 個の関数があるため、逆アセンブリを見て、問題の実際の場所を特定できることを期待していました。
c - ARM7TDMI で引数のアドレスを取得するときに GCC が壊れていますか?
私の C コード スニペットは、引数のアドレスを取得し、揮発性メモリの場所 (前処理されたコード) に格納します。
このコードのコンパイルには GCC の SVN バージョンを使用しました。関数の最後に、値がスタックに格納され、その値を指すアドレスが に格納されるfoo
ことを期待します。flag を使用して最適化なしでコンパイルすると、予想される ARM7TMDI アセンブリ出力が得られます (便宜上コメントされています)。1
0x40000d4
-O0
最初に引数をスタックに格納し、そこから に格納することは明らか0x40000d4
です。を使用して最適化してコンパイルすると-O1
、予期しない結果が得られます。
今回は、スタックの何かがまだ に格納されていても、引数がスタックに格納されることはありません0x40000d4
。
これは予想される/未定義の動作ですか? 何か間違ったことをしたのでしょうか、それとも実際に Compiler Bug™ を見つけたのでしょうか?
audio - フリーウェーブテーブルシンセサイザー?
ARM Cortex-M3 コアにウェーブテーブル シンセサイザーを実装する必要があります。始めるのに役立つコードやツールを探しています。
私はこの AVR の実装を認識しています。私は実際にそれを少し前にPICに変換しました。今、私は似たようなものを探していますが、もう少し良い音です。
ANSI C コードは素晴らしいでしょう。コード スニペット (C または C++)、サンプル、ツール、または単なる一般的な情報をいただければ幸いです。
ありがとう。
linux - Linux 2.6.21.5-cfs-v19 で実行されているアーム ターゲットの gdb の場所
Linuxカーネルバージョンを実行するARM11ベースのハードウェアボードがあります。2.6.21.5-cfs-v19。この ARM-LINUX ボードでアプリケーションを実行しています。私のアプリケーションのソース レベルのデバッグを行うには、Linux ボードのコマンド プロンプトから gdb を使用していました。
このバージョン 2.6.21.5-cfs-v19 では、ボードに関連するバージョンの gdb がありません。このバージョンの Linux 用の gdb とアーム ポートを取得するために周りを見回そうとしましたが、あまり成功しませんでした。上記のOSとボード構成のgdbの独立した実行可能ファイルまたは同じソースのいずれかを取得できる場所を教えてください。これをそのターゲット用にコンパイルしてみてください。
-広告。
c++ - ARM でのプリフェッチ命令
新しい ARM プロセッサには、PLD および PLI 命令が含まれています。
非順次メモリ アクセス パターンを持つタイトな内部ループ (C++ で) を作成していますが、コードが自然に完全に理解できるパターンです。現在のメモリ位置を処理しながら次の位置をプリフェッチできれば、大幅な高速化が期待できます。これは、実験に値するように試すのに十分な速さであると期待できます!
私はARMの新しい高価なコンパイラを使用していますが、気になるこの特定のループは言うまでもなく、どこにもPLD命令が含まれていないようです。
C++ コードに明示的なプリフェッチ命令を含めるにはどうすればよいですか?
embedded - 組み込みプログラミングを学ぶのに最適なプラットフォーム?
私は組み込みプログラミングについて学びたいと思っています (主に C ですが、ASM についてもブラッシュアップしたいと考えています)。最適なプラットフォームは何かと考えていました。Atmel AVR を使用して stk500 でプログラミングした経験があり、比較的簡単であることがわかりました。特に AVR Studio と、レジスタの状態を表示できるデバッガが気に入っています。
しかし、時間をかけて学ぶとしたら、むしろ業界で流行している何かについて学びたいと思います。私はARMを考えています。それは、誰かがより良い提案をしていない限りです。
また、参考資料も探しています。ARM Web サイトで本のセクションを見つけました。技術的に優れた本があれば、ぜひお知らせください。
私が探している最後のものは、いくつかのボタンなどを備えた STK500 のようなプロトタイピング/プログラミング ボードです。
ありがとう=]
arm - ARM Cortex-M3 コア上の .NET Micro Framework
Luminary MicroのRDK-IDMを持っています。このボードには、32 ビット ARM® Cortex™-M3 コアが搭載されています。そのようなデバイスで .NET Micro Framework アプリケーションを実行しようとした人はいますか?
embedded - 実行ファイルのサイズを縮小するプロセス
ARM プロセッサで実行する 16 進ファイルを作成していますが、これを 32K 未満に抑えたいと考えています。現在、それよりもはるかに大きく、スリム化するための最善の方法について誰かがアドバイスをしてくれるのではないかと思いましたか?
これが私がこれまでに行ったことです
- そこで、16 進ファイルの大きさを判断するために「サイズ」を実行しました。
- 次に、再度「サイズ」を指定して、16 進ファイルを作成するためのリンクである各オブジェクト ファイルの大きさを確認します。サイズの大部分は外部ライブラリに由来するようです。
- 次に、「readelf」を使用して、どの関数が最もメモリを消費しているかを確認しました。
- コードを検索して、これらの関数の呼び出しを削除できるかどうかを確認しました。
ここで行き詰まります。直接呼び出さない関数 (_vfprintf など) がいくつかあり、それを呼び出すものが見つからないため、呼び出しを削除できます (必要ないと思うため)。
では、次のステップは何ですか?
回答への対応:
- ご覧のとおり、多くのメモリを消費する関数が呼び出されています。しかし、それを呼んでいるものを見つけることができません。
- これらの関数を (可能であれば) 省略したいのですが、それらを呼び出しているものが見つかりません! 私が推測する任意の数のライブラリ関数から呼び出すことができます。
- リンカーは希望どおりに機能しています。関連するライブラリ ファイルのみが含まれていると思います。関連する機能だけが含まれているかどうかは、どうすればわかりますか? そのためにフラグか何かを設定できますか?
- 私はGCCを使用しています
gcc - ARM STR7xx のローダー スクリプト
Eclipse + CDT + yagarto (gnu ツールチェーン) + OpenOCD を使用して ARM をプログラムしようとしています。いくつかのサンプル プロジェクト (yagarto サイトなど) で、多くのリンク情報が (セクション定義と共に) 指定されているリンカー スクリプト (*.ld) を見つけました。実際、私は以前にこのファイルに直面したことがなく (IAR はそれらを必要としません)、一見しただけでは理解しにくいと思います。私の質問は、すべてのプロジェクトでターゲット プロセッサ (STR710FZ2T6) 用のスクリプト ファイルを 1 つ使用できるか、またはこのスクリプトの作成に慣れてプロジェクトごとに作成する必要があるかということです。特定のターゲット プロセッサのすべてのプロジェクトで 1 つのファイルを使用できる場合は、そのようなユニバーサル ファイルをどこで見つけることができるかアドバイスをください。
c++ - gcc-arm ツールチェーン用の Boost C++ ライブラリ
timesys arm-gcc ツールチェーンで 1.35.0 と 1.36.0 を静的 (link-static) と動的 (.so、デフォルト オプション) の両方で問題なくビルドできます。
ただし、単純なサンプル ファイルシステム アプリをリンクしようとすると、次のようになります。
次のリンカ エラーが発生します。
Boost を gcc-arm ツールチェーン用にビルドする方法を知っている人はいますか?