組み込みプログラミングを学習するのに最適なプラットフォーム?[閉まっている]

StackOverflow https://stackoverflow.com/questions/88626

  •  01-07-2019
  •  | 
  •  

質問

私は組み込みプログラミング (主に C 言語ですが、ASM もブラッシュアップしたいと考えています) について学ぼうとしているのですが、最適なプラットフォームは何だろうと考えていました。私は Atmel AVR を使用し、stk500 でプログラミングした経験があり、それが比較的簡単であることがわかりました。私が特に気に入っているのは、AVR Studio とレジスタの状態を表示できるデバッガです。

しかし、学ぶために時間を割くなら、むしろ業界で普及しているものについて学びたいと思っています。誰かがより良い提案をしない限り、私はARMを考えています。

また、参考資料を探しているのですが、ARM の Web サイトで書籍のセクションを見つけました。技術的に優れた書籍があれば、お知らせいただけると幸いです。

私が最も探しているのは、いくつかのボタンなどを備えた STK500 のようなプロトタイピング/プログラミング ボードです。

ありがとう=]

役に立ちましたか?

解決

「組み込みプログラミング」は非常に幅広い用語です。AVR はそのカテゴリによく属しますが、使用が簡単であると同時に強力ではないという点で、ARM よりも一歩下です。

ARM を試してみたいだけの場合は、Nintendo DS または Gameboy Advance を購入してください。これらは内部のハードウェアと比較して非常に安価であり (大量生産の驚異)、両方とも 無料の開発ツールチェーン それらにコンパイルできる gcc に基づいています。

組み込み Linux を試してみたい場合は、 ビーグルボード は良いオプションだと思います。わずか 150 ドルで、たくさんの機能が付いています。

個人的には、AVR は小規模な 8 ビット プラットフォームに最適であり、ARM はより大規模で強力な 32 ビット ベースのプラットフォームに最適であると考えています。多くの AVR ファンと同様に、私は PIC が好きではありません。ほぼあらゆる面で悪化しているように思えます。また、あらゆる種類の BASIC を作成する必要があるものは避けてください。

他のヒント

ただ遊んでみたいだけなら、Arduino プラットフォームをお勧めします (http://www.arduino.cc)。バージョンに応じて、ATmega168 または ATmega8 に基づいています。C に似た言語を使用し、独自の IDE を備えています。

私自身、組み込みプログラミングに 9 年間携わっており、TI MSP430、Atmel AVR (いくつかのフレーバー) の経験があり、間もなく ARM を使用する予定です。

私の提案は、イーサネット コントローラーや CAN コントローラーなど、プロセッサーにいくつかの追加機能を備えたものを選択し、可能であれば 2 つまたは 3 つを取得することです。組み込みデバイスは操作するのに優れていますが、CAN 経由で他の同様のデバイスと通信したり、ネットワークに接続できるようになると、さらに楽しく操作できるようになります。

ARM には、広く使用されている組み込みプラットフォームの中で最も優れた命令セットが備わっているため、非直交レジスタや分岐遅延スロットなどの奇妙な詳細に囚われることなく、組み込みプラットフォーム用のソフトウェアを作成するための一般原則を自由に習得できます。エミュレータはたくさんあります。ARM 独自のエミュレータは、無料ではありませんが、サイクルが正確です。また、多種多様なプログラム可能な ARM ベースのハードウェアも安価で簡単に入手できます。

ADIの ヒラスズキ これはプログラムするのに非常に簡単なアーキテクチャであるため、もう 1 つのオプションですが、そのルートを選択する場合は、かなり高度な DSP 機能も実行できます。アセンブリ言語も非常に健全であることが助けになります。

ヒラスズキ スタンプ ボードは安価 (私が確認したところ $100 程度) で、無料の GCC ツールと uClinux をサポートしています。

どのようなアーキテクチャを選択する場合でも、最初にツールチェーン \SDK をダウンロードし、サンプル プロジェクトとチュートリアルに目を通すことを強くお勧めします。一般に、少し遊んでみてください。多くの場合、ハードウェアに触れなくても、シミュレーションを通じてアーキテクチャをよく理解できます。

TI MSP430 は、マイクロコントローラーのプログラミング方法を学習するための優れたプラットフォームです。TIにはさまざまなものがあります 無料ツール いくつかの 安価な評価ボード (20ドルから)。さらに、これは低電力の最新のマイクロコントローラーです。

Microchip 社の PIC18 が最適です。

  • インターネット上には非常に多くの資料、ドキュメント、チュートリアル、プロジェクトがあります。

  • 無料のIDEとコンパイラ。

  • 数分で独自のフラッシュ ライターを作成できます。(ただし、デバッガーが動作するには、さらに努力する必要があります)

  • あなたが学生の場合(または学生の電子メール アドレスをお持ちの場合)、マイクロチップ社は無料のサンプル チップをお送りします。したがって、基本的には完全な開発環境をほぼ無料で手に入れることができます。

  • PIC は業界で非常に普及しています。具体的には、ロボットはさらに多くのことができるにもかかわらず、何らかの理由でロボットのコントローラーとして使用されます。

Arduino 他にもたくさんのプラットフォームがありますが、最近では初心者に選ばれるプラットフォームのようです。私は好き オリメックス 個人的にはボードですが、初心者向けではありません。

マイクロチップの PIC シリーズの CPU は、初心者、特にアセンブラでプログラムを作成する場合にも最適です。

ところで、アセンブラは以前ほど使用されなくなりました。組み込みの一般的なルールは、4k 以上のメモリがある場合は C を使用することです。移植性が得られ、コードをより速く開発できます。

それはあなたのスキルレベルとチップで何をしたいかによると思います。私は通常、利用可能な周辺機器によってどの組み込みチップを使用するかを選択します。USB ポートが必要な場合は、USB が組み込まれたポートを探し、アナログ - デジタル変換が必要な場合は、ADC などを備えたポートを探します。単純なアプリケーションの場合は 8 ビットを使用しますが、本格的な数値処理が必要な場合は 32 ビットを使用してください。

TIのビーグルボードをお勧めしたいと思います。Omap3が入っています。これは、Cortex-A8 ARM11 CPU、C64x+ DSP、およびビデオ アクセラレータです。

このボードには高価な jtag デバイスは必要ありません。開始するために必要なのはシリアル ケーブルと SD カードだけです。ボードの費用はわずか 150 ドルで、非常に活発なコミュニティがあります。

www.beagleboard.org

あなたの質問はある意味で答えられました この質問.

それに加えて、組み込みプロセッサ業界は非常に細分化されており、「デスクトップ」プロセッサ業界における Intel/x86 のような主要なプレーヤーが存在しません。ARM プロセッサは確かに大きなシェアを持っており、MIPS も同様だと思います。また、より小型でより特殊なマイクロコントローラのようなチップも数多くあります (TI の MSP430 など)。

ドキュメントに関しては、私は本業で組み込み開発を行っていますが、(ソフトウェア開発者として) アクセスできるドキュメントはかなり少ないです。最善の策は、プロセッサの製造元のサイトで入手可能なドキュメントを使用することです。

を見てみましょう 処理 および関連する Arduino および配線ボード。

ただ楽しみたい場合は、Parallax Propeller チップを試してください。HYDRA ゲーム プラットフォームは素晴らしいようです。現在、100 ドルの C コンパイラが提供されています。

私は BASIC スタンプから始めて、SX チップと PIC を経て、8051、次に 68332、さまざまな DSP、FPGA ソフト プロセッサなどに進みました。

現実世界では 8051 の方が便利です...物事は消えません。派生商品やクレイジーなものがたくさんあります。(DS80C400 には近づかないようにしてください) エネルギー業界にはそれらが完全に溢れています。

小さなことから始めましょう。外部 RAM と多数のレジスタがある場合...それとSBCの違いは何ですか?

何ヶ月も前に、私は 68HC05 や Z80 のような 8 ビット、その後の AVR や MSP430 (16 ビット) を使って作業しました。ただし、最近のプロジェクトのほとんどは ARM7 上にありました。いくつかのメーカーが、あらゆる色とサイズの ARM コントローラーを提供しています (実際には色ではありません)。

ARM(7) は 8 ビット アーキテクチャを置き換えます。パフォーマンスが高く (ほとんどの 8 ビットよりも命令サイクルが速い 32 ビット RISC)、より多くのメモリを備え、いくつかの IO 構成で使用できます。私は NXP LPC2000 コントローラを使用しました。これも安価です (32 ビットで 1 米ドル未満!)。

ヨーロッパにいる場合 http://www.olimex.com/dev/index.html 素晴らしい低コストの開発ボードがいくつかあります。世界の他の地域でも使えます:-)

楽しいプロジェクトをテストするには、以下をご覧ください。 xゲームステーション

ただし、より産業的に使用される 1 チップ ソリューションのプログラミングについては、以下を参照してください。 写真

私のコンピュータ アーキテクチャ コースでは、PIC と AVR の両方を扱う必要がありました。私の意見では、PIC の方が扱いやすかったですが、それはおそらく、PIC が私たちが最も多く作業し、慣れるのに最も時間がかかったからかもしれません。AVR を使用したのはおそらく 2、3 回だけだったので、完璧に使いこなすことはできませんでしたが、過度に複雑なことはなく、少なくとも他のものよりイライラすることもありませんでした。

Microchip 社の Web サイトからマイクロプロセッサのサンプルを注文できると思いますので、それから始めることもできますか?

次に、次のことです。

Arduinoプラットフォーム http://www.arduino.cc

HTH

学習するにはAVRを超えることはできません。このチップは安価で、外部コンポーネントなしで動作します。また、ポートから LED を直接駆動するのに十分な電流も供給します。

lady-ada のような安価なプログラマーから始めることができます USBTinyISP (キットは 22 米ドル)、USB ポートから 5V でボードに電力を供給できます。無料のツール WinAVR (GCC ベース) と AVRStudio を入手すると、小さなプロジェクトをすぐに実行できます。

はい、AVR には制限があります。しかし、マイクロコントローラー用のソフトウェア開発は主にリソースを管理し、それらの問題に対処することになります。強力な ARM プラットフォーム用の趣味のプロジェクトを作成している場合、スタック領域、RAM、ROM の不足などの問題が発生する可能性はほとんどありません。

とはいえ、ARM も業界で広く使用されている優れたプラットフォームですが、学習には AVR を強くお勧めします。

Microchip 社の PIC18F シリーズをお勧めします。私は RealICE インサーキット エミュレータを使用して開発を始めたばかりですが、picit2 は価格を考えるとまともなデバッガです。これは AVR にも言えることですが、このデバイスにはウェブ上で多くの支持者がいます。PIC 関連のあらゆるチャタリングのおかげで、バグは多いものの、機能する組み込み USB デバイスを数日以内に実行することができました。

PIC に関して私が気に入らない唯一の点は、サンプル コードの多くがデモ ボードに非常に複雑に絡み合っていることです。そのため、必要なセクションを切り取っても、アプリケーションをビルドして実行できるアプリケーションを保持することが困難になる可能性があります。

Texas Instruments は、非常に興味深い開発キットを非常に低価格でリリースしました。の eZ430-Chronos 開発ツール スポーツウォッチには、USB デバッグプログラマーや USB 無線アクセスポイントなどのディスプレイとさまざまなセンサーを備えた MSP430 が含まれています 50ドルで

もあります を含むウィキ たくさんの情報。

私はすでに持っています stackexchange 提案を作成しました eZ430-Chronos キット用。

が提供する開発者キットを試して学習する必要があります。 埋め込みアーティスト. 。キットを入手したら、説明ビデオと NXP が提供するビデオを確認してください。これらはそれほど詳細ではありませんが、多くのことをカバーしています。初めてのアーキテクチャとして ARM を学習し、実際的なことを実行しようとすると、次の問題が発生します。

  • 開発者を購入する必要があります。キット。
  • 良いものが必要です ARM アセンブリを学ぶためには、遅かれ早かれ ARM スタートアップ コードに出会うことになるため、初心者にとってはかなりのことです。私が言及した本では、C プログラミングについてもいくつか取り上げています。
  • 上記の本と、次のような特定のプロセッサのユーザー ガイドを組み合わせてください。 これです. 。上記の本と組み合わせて学習することが ARM proc を学習する唯一の方法であるため、必ずこれを入手してください。詳細に。
  • ARM アセンブリから C プログラミングに移行したい場合は、これを読む必要があります。 , 、別の ARM プロセッサについて説明していますが、C 初心者にとっては簡単です。欠点は、ARM アセンブリについてまったく説明していないことですが、これが最初の本が必要な理由です。

簡単な方法はありません。

mikroElektronika は優れた ARM を備えています ボード とC、パスカルとベーシック コンパイラ それはあなたの要求に合うかもしれません。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top