3

私はARMの世界の完全な初心者です。Cコードを記述してコンパイルし、ARMエミュレーターにダウンロードして実行できるようにする必要があります。CコードのコンパイルにはGCC4.1.2コンパイラを使用する必要があります。

誰かが次の問題について正しい方向に私を向けることができますか?

使用するツールチェーンは何ですか?

どのエミュレーターを使用しますか?

ツールチェーンの設定に関するチュートリアルやガイドはありますか?

4

2 に答える 2

2

Yagartoを使用できるツールチェーンhttp://www.yagarto.de/

Proteus ISISを使用できるエミュレーターhttp://www.labcenter.com/index.cfm (デモバージョンがあります)

とチュートリアル、まあ、グーグルそれら=)

幸運を!

于 2010-06-15T12:34:36.450 に答える
2

gccクロスコンパイラを自分で構築するのはとても簡単です。gccライブラリやCライブラリなどはそれほど多くなく、組み込みライブラリなどは少し難しいです。取得したい埋め込み方法によって異なります。私はgcclibやacライブラリをほとんど使用していないので、自分の作品をロールバックするのは私にとって素晴らしいことです。

これを何年も行った後、おそらくそれは時代遅れのことです、私は今、コードソースツールを手に入れに行きます。ライトバージョンはうまく機能します。yagarto、devkitarm、winarmなど(無数の例があるサイト)はすべて正常に機能します。emdebianには、優れたビルド済みツールチェーンもあります。これらの場所の多くは、すべてではないにしても、gnuソースからツールチェーンを構築した方法に関する情報を持っています。

gccについて質問されましたが、llvmは強力な競合相手であり、クロスコンパイルに関しては、常にクロスコンパイルされるため、ダウンロード、ビルド、および動作を開始するのはgccよりもはるかに簡単です。最近のバージョンでは、パフォーマンスに関してgccと競合するコード(arm用)が生成されています。gccは決してパフォーマンスのリーダーではなく、私が使用した他のコンパイラーはその周りでサークルを実行しますが、リリースごとに改善されています(3.xバージョンは4.xバージョンよりも優れたコードを生成することがありますが、4が必要です新しいコアとthumbの場合は.x2)。gccを使用する場合でも、llvmの安定したリリースを時々試してください。

qemuは優れたエミュレーターですが、実行している内容によっては、gbaエミュレーターの仮想ゲームボーイアドバンスが優れています。ndsエミュレーターもいくつかあります。GDBやその他の場所には、ARM独自のアーミュレーターのように見えるものがあります。抽出して使用するのが難しいと思ったので、自分で作成しましたが、怠惰なのはサム命令セットしか実装していなかったので、サムレーターと呼びました。使いやすい。qemuやarmulatorよりもはるかに簡単に周辺機器を追加し、コードを監視およびデバッグできます。ymmv。

うーん、最近誰かに似たような答えを投稿しました。Google:arm verilogとumichには、arm10の動作(チップを作成できないため、ネット上でverilogを見つけることができる)モデルであるファイルisc.tgzがあります。命令セットを学びたい人にとって、ゲートレベルでコードが実行されるのを見るのは、それが得られるのとほぼ同じくらい良いことです。注意してください。麻薬のように、中毒になり、実行中のコードの可視性が比較的低いシリコンに戻ると、苦労する可能性があります。stackoverflowのどこかに、そのarm10モデルと別のファイルを取得してicarusverilogを使用してarmエミュレーターに変換するための手順を投稿しました。gtkwaveは、wave(vcd)ファイルを調べるための優れた無料のツールです。

何よりも、ARMARMが必要になります。(ARMアーキテクチャリファレンスマニュアル)。グーグルで検索して、ARMのWebサイトで見つけてください。各命令には、それらが何をするかを教える擬似コードがあります。もっと理解する必要がある場合は、thumbulatorまたはarmulatorなどを使用してください(mameにもアームコアがあります)。サムレータが100%デバッグまたは正確であることを保証するものではありません。いくつかの一般的なプログラムを使用し、それらの出力をアームと非アームの両方のシリコンと比較してコアをデバッグしました。

于 2010-06-16T04:20:57.507 に答える