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