組み込みシステム開発のハードウェア設計では、回路図をベースとして基板の製作、部品の実装を行います。一方、ソフトウェア設計ではプログラムの関数の実装を進めていきます。実装が完了すると、部品が搭載された基板が完成します。この時点で適切な接続がなされているかの確認を行い、基板に電源を入れます。
ソフトウェアの実装では、使用するCPUや基板が存在しない状況でのプログラミングとなりますから、この段階では実際にプログラムを動かす事ができません。プログラムを動かすためにハードウェアを模したスタブ(代用品)を準備して開発する場合や、使用している統合開発環境にシミュレータモード(基板なしでハードウェアをシミュレーションするモード)で開発したり、類似の基板で代用したりします。ソフトウェア技術者たちは、基板が出来上がるまでになるべく多くのプログラムの動作が確認できるように、様々に工夫して作業を行っているのです。
いよいよ開発した基板に開発したソフトウェアを組み込んで評価を行います。
多くの場合、プログラム開発にはWindows PCを使いますが、プログラムを動かすのは今回開発した基板の上になりますので、ソフトウェアを基板に流し込んで実行します。PCからプログラムを基板に流し込み、そのプログラムのデバッグを行うには、マイコン基板を開発する際に使うデバッガであるICE(In-Circuit Emulator)やJTAG(Joint Test Action Group)を利用します。
これにより、基板上に搭載されたCPUを制御し、組み込んだプログラムを1行ずつ実行できるようになります。実行した結果をWindows上に表示する事でデバッグを行います。この段階で基板上に搭載されたメモリやHDMIやSATAなどのチップが正しく接続されているか(正しく動作するか)のアクセス確認を行います。
このようなクロス環境によるデバッグは組み込みシステム開発ならではのものです。PC上でのソフトウェア開発、業務システム設計とは違い、変数の値が参照できなかったり、ハードウェアの動作タイミングの影響を受けたりと、バグ発見作業が大変難しいのですが、それが逆に組み込みシステム開発の醍醐味(だいごみ)でもあり、技術者の組み込み機器開発への挑戦意欲を奮い立たせてくれるのです。
クロスデバッグが完了すると、Windows上でのソフトウェア開発と同様にリリースモードでソフトウェアをコンパイルし、基板上のプログラム領域に焼きこんで動作させることになります。Windows上のソフトウェア開発でもそうですが、この段階になるとデバッグができなくなるので、エラーが発生した場合などにログを保存するような仕組みを使うなど工夫が必要です。
最後に、製品としての品質を確認するために環境試験を実施します。
組み込み機器はその特性上、ノイズ、温度など、環境が良くない場所に設置されることもあります。製造現場など工場の中に設置される機械、車のエンジンユニットに設置する機械などを思い浮かべてみてください。そのような環境の中でも正常に動作する必要があるため、環境試験は組み込み機器を開発する上でも重要な評価項目であり、プロジェクトの鍵を握っているともいえるでしょう。
組み込み機器がどのように作られているか、順を追って解説してきましたが、これでようやく組み込み機器製品が世の中(市場)に出回ることになります。
組み込みシステム開発は、自動車専用に開発された車載ソフトなどのように機器の用途が特化しているため、目につきにくかったり、動きが地味だったりと、ICTシステム系アプリケーションやゲームコンテンツ開発などと比較すると地味に見えるかもしれません。ですが、これまでも、そして今後も、”日本の製造業を支える縁の下の力持ち”として組み込み機器のシステム開発は欠かせないものといえるのです。
次回は、組み込みシステム開発における変化として、すり合わせ開発と組み合わせ開発について説明をします。(次回へ続く)
Copyright © ITmedia, Inc. All Rights Reserved.