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を使用する場合には当てはまりません。