「組み込みソフトウェア」の重要性をPC向けとの対比で理解する:組み込み機器開発入門(4)(3/3 ページ)
ソフトウェア開発と一口に言っても、PC向けと組み込み機器向けでは数多くの相違点があります。組み込みソフトウェアが重要な理由と合わせて組み込みソフトウェア開発の要点について解説します。
組み込みソフトウェアの言語
ソフトウェア開発に利用される言語といえば、C++、C#、Java、PHPなどがあります。一昔前の組み込み機器開発では、「組み込みはアセンブラでしょ!」なんて時代もありましたが、最近はC、C++、Javaを採用することが多くなってきているようです。
ただし、当然ながら組み込みソフトウェアにはアセンブラでしか記載できない部分があります。全てをC、C++、Javaで開発できるわけではありません。組み込みソフトウェア開発でも、PCのソフトウェア開発と同様に用途に合わせてソフト開発言語も選ぶようになってきています。
組み込みソフトウェアのプログラミング
これまでに、組み込みソフトウェア開発とPC向けソフトウェア開発の大きな違いとして以下の2点を説明しました。、
- (1)ICEやJTAGを使って開発をする。
- (2)アセンブラでプログラムしなくてはならない部分がある。
アセンブラ言語は基本的にはマニュアルなどを参照すればコードを書くことができます。組み込みソフトウェア開発技術者の腕の見せどころとなるのは、ICE、JTAGを使って開発をする部分です。PC上でのソフトウェア開発では、本来ソフトウェアが動作する環境にほぼ近い形でデバッグを行う事ができますが、組み込みソフトウェア開発ではソフトウェアは組み込み機器上で動かし、プログラムの制御と結果の表示をPCで行います。
このように、組み込みソフトウェア開発では実行する環境とデバッグする環境が異なるため、実行環境とデバッグ環境との間に通信が発生します。この通信によって生じるタイムラグによって“1行プログラムを実行させて計算結果を見ようとしても見ることができない”“実は既に違う値になっている”なんて状況が頻繁に起こるのです。
また、デバッグ途中でプロセッサを止めすぎてしまい、一定間隔で処理をしないとリセットがかかるようなハードウェアになってしまう、なんて事も起こりえます。組み込みソフトウェア技術者は、これらの起こりうる結果と要因を想定、予想しながらデバッグを行う必要があるのです。
このように組み込みソフトウェア開発は、PC上のソフトウェア開発と比べると複雑で、多くの経験や高い技術を要するものですが、今後の組み込み機器開発の中でも、ますます重要性が高くなっていくことが予想されます。
次回は、組み込みシステム開発のもう1つの柱となる、組み込みハードウェア開発を見ていきましょう。 (次回へ続く)
Copyright © ITmedia, Inc. All Rights Reserved.
関連記事
- 携帯電話開発の歴史に見る、「すり合わせ」から「組み合わせ」へのシフト
今回はスマートフォンへとシフトした携帯電話を例に、「すり合わせ」から「組み合わせ」と変化した組み込み開発の手法の変化と、今後求められる要件について考えます。 - BDレコーダー開発を例にした「組み込みシステム開発」概要
専用機である「組み込み機器」の開発に際しては、ハードとソフトの双方に渡る開発が必要となるケースがほとんどです。身近な家電である「BDレコーダー」を例に、開発の手順について解説します。 - 組み込み機器とは何か、PCとの対比で考える
この連載では、これから組み込み機器開発に携わる方を対象に、入門編として知っておくべき内容を紹介します。まずは「組み込み機器とは何か」について、考えてみましょう。 - いまさら聞けない FPGA入門
あなたは、人に「FPGA」を正しく説明できるだろうか? いまや常識となりつつあるFPGAについて、あらためてその概念から仕組み、最新動向までを解説する。(編集部)