フレッシャーズのための組み込みソフト開発講座 ――新人エンジニアがまわりの信頼を勝ち得るには...
●組み込みシステムの開発は「特別」か?
パソコンや汎用コンピュータ向けのアプリケーション・ソフトウェアの開発に携わっているエンジニアは,「組み込みシステムは特別」とよく言います.一方,組み込みソフトウェアの開発に携わっているエンジニアも,「組み込みシステムは特別」,「自分が携わっている分野は特別」と言います.では,どのようなところが「特別」なのでしょうか?
組み込みシステムは,その名のとおり,「機器に組み込まれるコンピュータ・システム」であり,そのコンピュータ上で動作するプログラムのことを指します.そして,よく言われる組み込みシステムの特徴として,サイズ(機器のサイズ,プログラムのサイズ)の制約と応答時間の制約(リアルタイム性)があります.パソコンや汎用コンピュータ向けのアプリケーション・ソフトウェアと異なり,こうした制約を満たさなければなりません.
ただし,なにごとも「特別」のひと言でかたづけてしまう姿勢には関心しません.組み込みプログラムと一般のプログラムのどこが異なるかをきっちりと理解しておくべきでしょう.そのためには,組み込みシステムをよく知らなければなりません.例えば,CPUカードやI/Oカードの動作,あるいはプログラム対象となるCPUや各種半導体デバイスの動作と性能などです(もっとも,システムの規模が大きくなるとひとりで理解することは無理なので,組織として理解することになるのだが...).これらの知識は文献だけでは,なかなか身につかないものです.そのシステムが利用されている現場に積極的に出ていくことが重要です.
組み込みシステムに搭載されているソフトウェアが,パソコンや汎用コンピュータのアプリケーション・ソフトウェアと違っているのは,「機器の制御」を中核としているからだと思います.すなわち,半導体デバイスの制御を主としているところが「特別」なのです.また,価格の制約やメモリの制約から,高度なOSを搭載しにくいという事情もあります.OSが持つ各種の保護機能が使えないため,プログラムの開発には神経を使います.また,デバッグも困難です.
ただし,最近では徐々に事情が変わってきています.技術の進歩によって,CPUが高機能・高速になり,メモリも安価に調達できるようになりました.そのため,保護機能を備えるCPUを搭載できるようになり,OSも高機能になってきています.最近では,純然たる組み込み用OSであるVxWorksやμITRONにもメモリ保護機能が用意されており,メモリ保護の観点では,パソコンや汎用コンピュータの世界と変わらなくなりつつあります.
それでも組み込みシステムの本質が機器の制御であるという点は変わっていません.開発の主体はデバイス・ドライバであり,合わせてシステム・レベルのプログラミングが要求されます.
tag: 技術教育