初心者向けの ARM プロセッサのデータシートとユーザー マニュアルから直接始めるか、最初に ARM の世界について理解してから先に進むことをお勧めしますか?
8 に答える
新しい (私にとっての) テクノロジーを始めるときは、できるだけ多くのデータ シートとアプリケーション ノートを見つけて、それらを一通り読むことから始めます。最初の目標は、そのテクノロジに固有の専門用語 (およびプレーヤーの名前) について理解することです。
ARM の場合は、www.arm.comとARM Information Centerにあるドキュメントから始めます。
更新: また、少なくとも 1 つのファミリ プログラマのマニュアルを読むなど、1 つまたは複数の製造元の製品ラインに飛び込みます。プロジェクト計画がしっかりしていて、特定の ARM CPU が使用されることがわかっている場合は、その特定のモデルとその近親者に焦点を当てることから逃れることができます。プロジェクトで使用する CPU を選択できるように ARM に精通したい場合は、さまざまなファミリをサンプリングすることがほぼ確実に最適な計画です。
ARM テクノロジのライセンシーの大きなリストがあります。これらのうち、いくつかのメーカーは、ディープ エンベデッド システム アプリケーションで際立った製品 (ARM コアの CORTEX-M3 フレーバーに基づく) を持っています。
私の会社では、 ST Microelectronicsの STM32 ファミリに基づいたプロジェクトが進行中です。このファミリには、8051 の世界や PIC の世界から来た人なら誰でも知っている機能を備えたオンチップ周辺機器が多数あり、外部メモリをオプションにするのに十分なフラッシュと SRAM がチップに搭載されています。
Luminary Microから Stellaris ファミリーについて多くの肯定的な意見を聞いています。これも、多くの組み込みプラットフォームのニーズにうまく適合しているように見えます。
エントリーレベルの評価ボードの現在の価格を考えると、予想されるターゲット アプリケーションのニッチに類似したチップを 1 つまたは複数選択することを強くお勧めします。STM32 には、小さな LCD、加速度計、1 つまたは 2 つのボタン、2 つの LED、コミットされていない GPIO ピンへのアクセス、組み込みの JTAG USB インターフェイス、および完全な GCC ベースのクロス開発ツール チェーンを備えたボードを使用できます(たとえば、2009 年には 40 ドル未満で販売されていましたが、そのモデルは廃止されました)。
同様のパッケージは、他の ARM コア ベースの製品の多くで見つけることができます。
ARM が検出されるもう 1 つの方法は、システム オン チップの CPU コアです。かなりの数の SOC ベンダーが、ARM CPU のライセンスを取得して、専用ハードウェアと一緒にシリコンを搭載しています。ビデオ圧縮チップ、ネットワーク チップ、Firewire から ATA へのアダプタ、およびこの方法で構築された USB デバイスを見たことがありますが、これは公開された記事やプレス リリースからのほんの一例に過ぎず、たまたま思い出すだけです。
更新 2、2013: 「典型的な」ARM ベースの SOC ファミリへの非常にアクセスしやすいエントリ ポイントが、Raspberry PiおよびさまざまなBeagleファミリ ボードに見られます。どちらも実験者や愛好家を対象としており、ARM コアとビデオやオーディオ機能などの追加リソースを備えた SOC を使用し、Linux をそのまま実行します。
また、特定の組み込みシステムに必要な電源と I/O コネクタを提供するカスタム ボードに取り付けるための完全なブータブル システムを含むメザニン ボードを提供するモジュール メーカーには、さまざまなシステム オン モジュールがあります。そのようなベンダーの 1 つがGumstixです。Gumstix AirSTORM は、Wi-Fi、Bluetooth、DRAM、NAND フラッシュ、および TI OMAP3 ARM SOC を提供します。適切なキャリア ボードは、LCD パネルまたは HDMI、10/100 イーサネット、USB ホストおよび OTG、ラインレベルのアナログ オーディオ接続のいずれかをサポートし、さまざまな追加の GPIO ピンおよびオンチップ周辺機器へのアクセスもサポートします。
BeagleBoardを入手することをお勧めします。それらは JTAG をサポートしているため、ハードウェア デバッガーのようなハードウェアで何が起こっているかを確認できます。その上で実行されるいくつかの Linux ビルドがあります。その周りには、作業を行う際に役立つ素晴らしいコミュニティもあります。私は Ubuntu Jaunty を実行しているので、実行できるユーティリティとコンパイラに終わりはありません。
この関連する質問への回答には、いくつかの優れたリソースが記載されています。
さらに、Hitex には、ARM プロセッサに基づいたいくつかの異なるマイクロコントローラー用の「インサイダー ガイド」があります (無料ですが、登録が必要です)。
それらのほとんど (すべてではないにしても) は無料でダウンロードできます (マイクロコントローラーのメーカーがスポンサーになっていると思います)。ARM の仕様だけでなく、マイクロコントローラーに特化していますが、ARM の詳細の一部が含まれており、マイクロとマイクロ内の周辺機器の優れた概要です。
私はsparkfun.comをサーフィンします.彼らはolimexボードを運ぶだけでなく、独自のボードを作成します. ルミナリーマイクロ/ステラリスも良いです。ビーグルボードは、アームの機能/指示自体にアクセスするものというよりも、Linux プラットフォームに近いものです。あなたはそれを使うことができますが、そのお金のために、3つから7つの異なるARMベースのマイクロコントローラー評価ボードを購入することができます. いずれにせよ、アームベースのマイクロコントローラー、st または lpc に巻き付けられた小さなボードから始めます。おそらく、発光マイクロは、ストックアームの指示と親指の指示で足を濡らした後にのみ行うthumb2のみです。
私はまた、ゲームボーイ アドバンスをアームの学習プラットフォームとして使用することのファンでもあります (アドバンスドである NDS ではなく、GBA ファミリから始めます)。
ARM ARM (ARM アーキテクチャ リファレンス マニュアル) が必要になります。それぞれの特定のコアには独自の TRM があります。どの命令を使用できるかを知るには、両方が必要です。ほとんどの場合、これらのマニュアルはリファレンスとしてもゼロからの学習としても優れています。
最初にSTR750-LOVE のような評価ボードを入手します。次に、例をコンパイルして理解します。例に慣れたら、内部の内容を理解し、独自のコードを作成する段階に進みます。学習プロセスの重要な部分は、何かをしようとしてから、それをデバッグして機能させる必要があることです。ARM のエキスパートになりたい場合は、アセンブリを自信を持って読めるようになる必要があります。ARM ファームウェア開発者の面接を受けたばかりで、技術的な部分では THUMB アセンブリ コードを分析して C コードに変換するだけでした。ほとんどのコンパイラには、生成したアセンブリを出力するオプションがあります。
Tom Lehrer の言葉を借りれば、「盗作、盗作、誰の作品も目を逸らさないでください」。
または、ニュートン(およびバーナード)が巨人の肩に立つように。
言い換えれば、他の人々が何をしてきたかを調べて、車輪の再発明を避けるのが理想的です。
私は安価な開発ボードとサンプル ソフトウェアから始めて、そこから先に進みながら、知っておくべきことを調べていました。
ARM コアベースの STM32 の優れた入門書は、適切な名前のSTM32 Primerです。
非常に簡単に閲覧する場合を除いて、技術マニュアルから始めることはありません。STM32 のマニュアルは 600 ページ以上あり、付属の Cortex-M3 マニュアルはさらに 400 ページあります。軽い読み物ではありません!