
組み込み系のソフトウェアっていうと、
なんか特殊なイメージがあると思った人も多いと思います。
私もその一人。
20年前、たまたま組み込みソフトウェアを開発するエンジニアになった時、
そもそも、組み込み系という用語さえも知りませんでした。
大学の時、ちょっとばかりパソコンで C言語は勉強していました。
Windows 上で動くアプリケーションを作る、
プログラミングって、そのイメージしかもっていませんでした。
組み込みソフトって特殊なの?
パソコン上で動くソフトとの違いは何?
さっぱり分からない人向けのおススメの本が、
「トコトンやさしい組込みシステム」
理解できますよ。
組み込みソフトとパソコンのアプリケーションソフトの違いは?
90ページ簡潔に分かりやすく書かれています

パソコン上で動くソフトと組み込みソフトの違い。
一つは、プログラムの実行場所。
パソコン用はパソコンの RAM上で動作する。
組み込みソフトは組み込みシステムの ROM と RAM で実行する。
続いて、
パソコンアプリは、初期化された変数エリアも含めて全てがハードディスクに保存される
実行指示された時にプログラムをハードディスクから RAM 上にコピーして実行。
一方、
組み込みソフトはプログラム部分と変数の初期値などはROMに記録しておき、
変数部分は実行時にRAMに割り当て、
ROM に記憶させてある初期値で初期化してから実行を開始する。
電源を切るとRAMに設定した変数の初期値が消えるので、
変数部を RAM に割り当て初期化を行う必要がある。
その処理として、組込みシステムではスタートアップルーチンという小さなプログラムが存在する
ここなんですよね。
組み込みシステムって、PC上のアプリケーションソフトと違うが、スタートアップルーチン。
main 関数に入る前に、スタートアップルーチンで、
周辺 IC の初期設定、RAMに変数を確保したり、ROM に記憶されている値で変数を初期化したりとか。
こんな処理が入るんですね。
その後にようやくメインループに入る。
[quads id=2]
まとめ
パソコン上で動くプログラムって、最初からいきなりmain関数から始まるのに対して組み込み系は違う。
そういう違いがある、ってことだけ覚えておくだけでも、
組み込み系のソフトウェア開発に抵抗がなくなるはずです。
私は20代のころ、組み込み系とPC上のソフトの違いを理解せずに過ごしてきたので、
入社してしばらくはよく分からずに仕事をしていました。
分からないより分かった方がいいので、
P.S
そして、組み込みシステムの理解を深める一番の早道は、
とっとと開発現場にでることです。
レバテックキャリアは、組み込み系エンジニアの募集も数多くありました。
登録は無料なので、とりあえず登録しておくのがよいです↓
コメント