3

私はC++に対して優れたコマンドを持っていますが、デバイスプログラミングについては何もしていません。私はデジタルロジックデザインについていくつかの基本的な理解を持っています。しかし、私はエレクトロニクスの完全な初心者です。現在、マイクロコントローラプログラミングに大きな関心を持っています。

どこから始めれば ?

マイクロコントローラーでプログラムを実行するために、電子機器に関する膨大な知識は必要ないと思います。

Linuxを使用しています。そして私はKeilをダウンロードしました。Wineを介して実行しようとしたことはありません。私はそれをWindowsで実行しました。しかし、コードがどのように機能するかは私には完全には明らかではありません。LogicはCで書かれているように理解できますが、それでも私には霧のようです。
クイックキックスタートが必要です。

4

2 に答える 2

4

SOは、この種の質問をするのに最適なサイトではありません。PC用のプログラミングと組み込みシステム用のプログラミングには本当に大きな違いがあります。他のSEサイトは物理コンピューティングを専門としています。火曜日にRobertCartainoから次のメールを受け取りました。

... [chiphacker.com]からの土壇場での関心を除いて、明日[水曜日9/22]または木曜日に[electronics.stackexchange.com]を開始します。

だから、ここでelectronics.stackexchange.comにコミットし、待っている間に chiphacker.comを閲覧してください。Chiphackerでこれらの質問を見てください:

組み込みシステムプログラミングへのエントリパスを計画する際に考慮すべきことがいくつかあります。

  • 何をしたいですか?
  • あなたは何をするか知っていますか?
  • どれくらい速く学習できますか?

次の段落でいくつかのオプションの概要を説明しました。

質問linux-device-driverにタグを付けましたが、これはLinuxで使用するカスタムデバイスを作成することを意味しますか?あなたが意味するならembedded-linux、あなたはより大きなクラスのマイクロコントローラに興味があります。BeagleBoardをご覧になることをお勧めします。また、他のオプションについては、このChiphackerの質問もご覧ください。組み込みLinuxを実行し、独自のボードを構築したい場合は、最初に、より単純なレベルの組み込みシステム設計である程度の経験を積む必要があります。

avrまた、Atmelによって作成された人気のあるマイクロコントローラークラスである質問にタグを付けました(詳細については、 avrfreaksフォーラムを確認してください)。ATmega324pで組み込みシステムを学び始めました。彼らは本当に素晴らしいドキュメントを持っていて、使いやすく、そして他のほとんどのプロセッサよりもavrのためのオンラインサイトがたくさんあります。

より簡単な学習曲線が必要な場合は、Arduino環境を確認することをお勧めします。これは、C / C ++と非常によく似た配線を使用し、Arduinoは、機能を追加するためにArduinoメインボードに接続できるモジュールである「シールド」で拡張できます。これがクイックキックスタートです。

良い学習パスは、Arduinoに精通し、独自のAVRボード(おそらくジョイスティックなどのLinuxデバイス)を構築し、ARMベースの開発キットを使用して、最後に独自の組み込み型の構築に進むことです。 Linuxボード。急な学習曲線を気にしない場合は、いくつかの手順をスキップできます。または、特定のレベルの機能がニーズを満たしている場合は、途中で停止することができます。「マイクロコントローラーでプログラムを実行するための電子機器に関する膨大な知識」は必ずしも必要ではありませんが、LEDを点灯したり、2つのデバイスを接続したりする前に、電圧や電流などの基本的な知識を理解する必要があります。

最後に、質問の中で、KeilIDEをインストールしたとおっしゃいました。これは優れた、かなり人気のあるIDEですが、gccベースのコマンドラインツールチェーンを使用して学習することをお勧めします。組み込みシステムで作業するときに問題が発生する可能性のある方法は驚くほど多くあり、IDEは発生するすべてのものの上に魔法の層を追加します。これは素晴らしいことかもしれませんが、私はシステムを学ぼうとするときに魔法を最小限に抑えることを強く支持しています。物事が自動的に機能しない場合は、低レベルのものを理解する必要があります。このアドバイスは、すべての自動魔法の機能をうまく機能させるように設計されている(そして実際に機能する)Arduinoを使用する場合には当てはまりません。

于 2010-09-25T18:05:56.247 に答える
0

sparkfun.comには、ボード、arduinoファミリーなどがたくさんあります。はんだ付けが必要ないため、arduinoproの代わりにarmmitepro、lilypadをお勧めします。シリアル/電源に正しいUSBが必要/必要になるためです。mbed2の価格はもう少し高く、青いLEDは目には残酷ですが、使いやすいです。上記のいずれもサンドボックスでプレイする必要はありません。缶詰の環境などを使用できますが、必須ではありません。

Linux開発の場合は、beagleboard.orgよりもhawkboard.orgをお勧めします。これにより、beagleboardの使用可能コストは、ボード自体の約2倍になります。このhawkboardは、電源を入れるために何かを購入するだけで使用できます。しかし、デスクトップ/ラップトップでLinuxドライバーを学ぶことができ、必ずしも組み込みをいじる必要はありません。

エミュレーターは良いスタートです。Qemuは優れた機能であり、多数のプロセッサーをエミュレートし、仮想Linuxシステムのエミュレート、Linuxドライバー開発の学習などに最適です。ただし、(仮想/エミュレートされた)プロセッサーの動作を可視化することは目標ではありません。可視性があると便利だと思います。gdbにはいくつかのエミュレーターも含まれています。mameにはそれらがロードされていますが、qemuのように、高速エミュレーション用に設計されており、教育用ではありません。VisualBoyAdvanceは良いです。エミュレーションは決して完璧ではないので、最終的にはハードウェアで実行したいと思うでしょうが、エミュレーターとコンパイラーツールは無料で、ハードウェアを購入する前にかなり学ぶことができます。ただし、プログラムをフラッシュ/ RAMにロードしたり、jtagやその他のインターフェイスを使用してデバッグしたりするなど、エミュレータから学ぶことはできません。i2c、spiなど。

于 2010-09-27T02:42:30.380 に答える