組み込みエンジニアが使う言語とその理由を解説します

スポンサーリンク

組み込み業界ってどんな感じ?
何を勉強すればいいんだろう

こうした悩みを解決します。

記事の内容
・組み込み開発の前提条件
・組み込みに使うプログラミング言語とその理由
・プログラマーになるなら組み込み良いですよ

解説の根拠

組み込みエンジニアとして長く働いていました。
この業界はすでに開発環境が完成されていて、 Web 系と違ってプログラミング言語の更新がないのでとても開発に集中しやすいです。
一旦習得できれば生涯安泰な職業だと思ってます。

スポンサーリンク

組み込みに使うプログラミング言語とその理由

まず組み込みの開発の前提として低予算(=ROM 容量が小さい)、高速処理の要求があります。

処理速度が速いと
・センサーからの入力信号の演算精度が向上する
・PWM の波形の品質が向上する、
・割り込み処理が入った時に他の処理を待たなくて済む
など、メリットがたくさんあります。

実際の設計では、32768Hzの水晶発振子を基に何百倍にも分周して、1クロックを数MHz~数十MHz、 つまりマイクロオーダーで処理するのが一般的かと思います。
うまく演算や出力ができない場合は、処理速度の不良が考えられオシロスコープで波形を確認したりすることもありますね。

ROM 容量に関しては、大容量のマイコンを買えば解決するんですけれども、組み込みって部品にそこまで値段をかけられないので(抵抗やコンデンサーなどと比べればマイコンは何百倍も高価!) 、どうしても小容量の ROM をいっぱいいっぱい使って組み込みエンジニアが頑張って実装するという現状があります。

あわせて読みたい:
組み込みエンジニアは激務ではない、むしろオススメ!

組み込みに使うプログラミング言語とその理由

組み込みに使うのは Java、C、C++、アセンブラのいずれか、理由は応答が早く少ない容量で動作するからです。

上で述べた前提条件をクリアするのはこれらのプログラミング言語しか現状ないです。
最近の言語は細かく指定しなくても動いてくれますけど、組み込みに使う言語は変数の型の指定から始まりポインタを使った値のやり取り、関数ですらポインタで渡したりしながら処理を進めていきます。

スタックオーバーフローでマイコン動かんくなったわー
割り込み重なって入出力信号の処理おかしくなったわー
演算結果が違うと思ったら変数の違う者同士を掛け算してたわー

など、開発中は色々苦労するんですよね。
ただその分マイコンは記述通りにだけ処理を進めれば良いだけなので処理が高速化できるのです。
これは変数です、ではなく、 これはunsigned int 型の変数です、という宣言をしてやれば、変数の型調べる処理を削れますよね。こんな感じで処理の最中にプログラム側が考えるということがないです。

組み込みに最適な言語はいくつかあるんですけど、 使わないかとアセンブラはだいぶ古いので今はもう使わないかと思いますけど、他のどの言語を使うかは、その現場の開発が何を使っているかによります。
私は C 言語使ってましたけど、C++使ってるチームもありました。

あわせて読みたい:
組込エンジニアだった私が組込業界の将来性について解説します

プログラマーになるなら組み込み良いですよ

プログラマー目指すなら組み込み良いですよ。

例えばC言語でちょっと考えてみてください。
この記事を書いている今、2021年。
C言語の誕生、1972年(らしい)。
もう50年近く経ってますけど、まだ使われてるってすごくないですか。

Web系言語はどんどん新しいものができては廃れて、と時代に合わせて変化していっていますけど、組み込みに関しては今の形での開発が進められてからずっと変わってないです。
汎用的で高速処理に対応し、安定動作している素晴らしい言語です、C言語。

たぶん、もう組み込みって一生C言語とかだと思います、正直。
これを超える新しい言語って今後出てこないでしょう。

なので、何が言いたいかというと、最初は苦労しますけど一旦習得すればかなりの安定感があるスキルだということです。

未経験からプログラマーになりたいと考えている方だったら、Web系なんか行かず組み込みやった方が、人材不足の現場で重宝されるし、身に着けたスキルでどんどん仕事が楽になるので本当にオススメしたいです。
IoTの時代の流れも相まって、今後数十年は上昇し続ける業界だと感じています。

まとめ

・組み込みの開発の前提として低予算(=ROM 容量が小さい)、高速処理の要求があります
・組み込みに使うのは Java、C、C++、アセンブラのいずれか、理由は応答が早く少ない容量で動作するからです
・プログラマー目指すなら組み込み良いですよ!

あわせて読みたい:

ウズウズカレッジIoT/組み込みコース
0

最後まで読んでいただきありがとうございました!この記事が気に入ったらハートのいいね!ボタンを押して頂けると嬉しいです!
今後の励みにします!(ちなみに、押すとボタン周辺にハートがフワフワ〜っと出てきて少し幸せな気分になれます)
もし、よくないね!と思ったらボタンを2度押ししていただければと思います。通知がきますので改善いたします。

プログラミング
カフェレストラン女神湖駅

コメント