Cを学び、MSP430やARM Cortexなどの安価なマイクロコントローラー開発ボードを入手し、少なくともいくつかのCプログラムを作成してロードします。
私はコンピューターサイエンスの学位とソフトウェア開発のバックグラウンドがあり、ほとんどがゲームのC ++プログラミングで、現在はiOSゲームとアプリですが、私の最後の仕事はARM Cortex M3システムのファームウェアプログラミングを始めたセミプロEEギグでした、そして基本的な回路設計とボードレイアウトを行う方法を学び、いくつかの簡単なボードを設計することになりました。したがって、基本的には、ハードウェア/ソフトウェアの設計を橋渡しするために最高のプログラミング言語を使用するという問題に直面しなければなりませんでした。
Cは絶対にあなたが知る必要がある言語です。C ++でプログラムを作成し、実際にCの機能セットに制限する必要がなく、「同じことだ」と言う人にとっては簡単ですが、そうではありません。特に、C ++が進化して機能を収集した方法、および主流のC ++プログラマーがそれらの機能を使用する方法は、C ++アプリケーションとは対照的に、かなり大きなCアプリケーションで作業することとはまったく異なります。ファームウェアSDKはCライブラリの束であり、MCUに適合する他のものはすべてCライブラリであり、MCUで意味のあるOSはCで書かれているなどです。
とはいえ、MCUツールチェーンの多くはコンパイラとしてGCCを使用しているため、まともなMCUファミリを使用している場合は、ほぼ確実にC ++コンパイラを使用できます。ただし、使用する機能、特に標準ライブラリの機能については十分に注意する必要があります。デバイスに収まるには大きすぎるバイナリになりがちなので、非常に簡単です。組み込みデバイスでC ++を使用するための良いケースがあると思います。C++には、ごみやサイズや速度のペナルティのない素晴らしい機能がいくつかあります。巧妙な機能の使用という点では、スペクトルのSTLの終わりよりも、スペクトルのCスタイルの終わりの方が先です。
適切な組み込みインタープリターを使用してMCUでLuaまたはPythonを使用できると言っている人にはあまり注意を払わないでください。それは本当です、私はそれをやったし、それは楽しいですが、現時点では、ハック・ア・デイに現れるおもちゃのプロジェクトやもののためのものです。ムーアの法則は最小のプロセッサにも容赦なく適用されているので、そのようなことをもっと見ると思います。これは、多くのアセンブリがあったゲームで起こり、CとC ++で長く持ちこたえたものです他の誰よりも、そして今ではすべてが非常に高速であり、開発者の生産性が非常に重要であるため、多くの開発は組み込みの高レベル言語または完全に高レベル言語で行われます。それでも、企業がPythonとLuaのバックグラウンドを持つファームウェアプログラマーを雇うのを見るのは数年前でしょう。
組み立てにも時間をかけすぎないでください。概念に精通していても悪くはありませんが、アセンブリプログラミングがあったとしても、自分が多くのことをしているとは思わないでしょう。ゲームと組み込みのこの従来の知恵のように、それは「知っておくと良い」アセンブリであり、実際にそれらの分野で働いていない人々によってしばしば繰り返されます。しかし、実際には、アセンブリをまったく作成することはほとんどありません。そうすると、おそらく最適化のための数行か、APIを持たないハードウェアで何かになるでしょう(ただし、数行のアセンブリをラップするものを作成した後)。私はいくつかのゲームに取り組んできましたが、そのボード/ファームウェアデザインプロジェクトと、商業プロジェクト用に作成したアセンブリの合計ライン数は、おそらく10代前半です。それ'