このページは https://www.softech.co.jp/kaihatsu_kumikomisoft.htm のキャッシュです。2025-04-02T00:01:24.192+0900 に存在していたページのスナップショットです。
組み込みソフトウェア開発|技術分野別 開発内容紹介|株式会社ソフテック
HOME > 技術分野別 開発内容紹介 > 組み込みソフトウェア開発
技術分野別 開発内容紹介

組み込みソフトウェア開発

1.  概要

ソフテックでは「組み込みソフトウェア開発」に取り組んでいます。
「組み込みソフトウェア」は、マイコンと呼ばれるCPUで実行されます。
家電にも「マイコン搭載」という表記がされている製品もあり、家電製品や自動車など、マイコンは様々なところで利用されており、その1つ1つで「組み込みソフトウェア」が実行されています。

組み込みソフトウェアの開発は、パソコン用ソフトウェアとは違う知識が必要となりますので、以降では、「組み込みソフトウェア開発」の紹介をします。

2.  組み込みソフトウェア開発

2.1.  組み込みソフトとは

家電製品や産業機器に組み込まれた、マイコンと呼ばれるCPUで実行されるソフトを、ソフテックでは「組み込みソフト」や「マイコンソフト」と呼んでいます。
また、情報処理技術者試験には、組み込みシステムエンジニア用の試験区分として「エンベデッドシステムスペシャリスト試験(Embedded Systems Specialist Examination)」があるように、一般的にはエンベデッド開発と呼ぶこともあります。

組み込みソフトウェアは、洗濯機、炊飯器、エアコン、テレビ、リモコン、デジタルカメラ、プリンタ、自動車やロボットなど、あらゆる機器に搭載されています。

2.2.  組み込みソフト開発の特徴

組み込みソフトを開発する時は、専用のハードウェアの開発も行います。
そのハードウェアは、量産の対象になることが多く、量産時のコストが重要視されます。

このような要望を実現するために、処理能力が低い、安価なCPUと、できるだけ容量が少ないメモリでハードウェアを構成する場合があります。そのしわ寄せは処理速度的にもメモリ使用量でも、より効率のよいソフトウェアを作らなければならないという、ソフトウェア開発の難しさとなって現れます。
プログラムサイズ(ROM容量)や使用メモリ(RAM容量)、処理速度などを意識してプログラムを作ることは組み込み開発の特徴の1つと言えます。

また、組み込みシステムは、ハードウェア設計者が設計した、専用基板を利用することが一般的です。
ハードウェア設計者から、回路図やI/Oマップを受け取り、それを元に基板上に実装されたLSIを制御するソフトウェアを開発します。
LSIの仕様は、インターネットなどからデータシートを入手して理解します。
効率よくハードウェアを制御するソフトを作るためには、ソフト担当者でもハードウェアの動きを理解する必要がある点も、特徴の1つと言えます。

デバッグ段階では、自分が作ったソフトウェアが正しくLSIを制御していることを確認する必要があります。
LSIの制御のためには、1ミリ秒や、1マイクロ秒という出力信号を確認することもあり、ロジックアナライザやオシロスコープなどの測定器を利用しなければなりません。
このような測定器を利用してデバッグすることも組み込みソフト開発の特徴の1つと言えます。

2.3.  組み込みソフトの構成要素

以下にソフトウェアの構成要素を示します。

ソフトウェアの構成要素

組み込みソフト開発の構成要素は、大きく「アプリケーションソフト」、「OS」「ドライバソフト」、「ハードウェア」に分けることが出来ます。

「アプリケーションソフト」は、対象製品の機能を実現するプログラムです。
組み込みソフトは、ハードウェアの知識が必要なイメージですが、アプリケーションソフトは、ハードウェアと切り離して開発出来る部分です。

「OS」は、アプリケーションソフトの規模が小さい場合や、ハードウェアの性能がOSの利用条件を満たさない場合には利用しません。
リアルタイム性の向上や、OSを利用することによりソフト開発ボリュームが削減できる場合などメリットがある場合は、ITRON規格のOSやLinux OSを利用することもあります。

「ドライバソフト」は、基板上のLSIを制御するソフトウェアです。
「組み込みソフト開発の特徴」に記載した内容の大部分はドライバソフト開発が該当します。
OSを利用する場合は、ドライバソフトのサンプルが提供される場合もありますが、ハードウェアに合わせ込んだドライバを開発することが一般的です。

「ハードウェア」は、ハードウェア設計者が設計した専用基板を利用することが一般的ですが、”Raspberry Pi”のようにネット通販などで購入できる汎用化された基板を利用することもあります。
また、FPGA(Field programmable gate array)にマイコンとロジック回路を組み込み、ソフトを実行させることもあります。

2.4.  組み込みソフトの動作環境

ここで、組み込みソフトが実行される環境について説明します。

組み込みソフトは、基板上に実装されたマイコンと呼ばれるCPUで実行されます。
マイコンは、一言で言うと単一のLSI(電子部品)です。 形状は正方形あるいは長方形の板状で四方あるいは下面から多数の足が出ています。

LSI

このLSIの中には、プログラムを実行するCPU(MCUとも呼ぶ)のほかに、FlashROMやRAM、端子制御回路、タイマ回路、シリアル通信回路などの回路が含まれており、マイコンの機能として提供されています。
組み込みソフトは、マイコンが具備する機能を利用して、回路上の信号を制御しています。

マイコンと基板

近年は、マイコンに代わりFPGA(Field programmable gate array)を利用することもあります。FPGAの外見はマイコンと似ていますが、内部構造は全く違います。
マイコンの場合は、製品ラインナップごとに具備される機能が決まっていますが、FPGAの場合は、ユーザーがハードウェア記述言語(HDL:Hardware Description Language)で自由に回路を作成しFPGAに書き込むことが出来ます。

FPGA

3.  組み込みソフト開発事例

ソフテックでは、様々なハードウェアやOSをターゲットにしたソフトウェア開発実績があります。例を挙げると、以下のようなものがあります。

・お客様が設計・開発したハードウェア(基板)で動作するソフト開発
・市販のLinuxボードに、顧客が拡張回路を接続し、それらを制御するソフト開発
・FPGAを利用したハードウェアで動作する、HDL部分と対応するソフト開発
開発事例を詳しく知りたい方はこちら

また、マイコンとパソコンを通信で組み合わせたシステムの開発や、複数のマイコン基板やセンサを通信で組み合わせた、大規模システムの開発も行っています。

4.  組み込み開発におけるソフテックのアピールポイント

4.1.  ソフテックの開発実績

「ソフトウェア=パソコン用アプリケーション」と想像される方が多いようですが、組み込みソフトの開発はパソコン用のソフトウェア開発とは異なる開発技術が必要となります。
ソフテックは、1987年の創立時から、組み込みソフトウェア開発に取り組んでいます。

4.2.  あらゆるCPUに対応いたします

基本的にはお客様にハードウェアを開発して頂き、そのハードウェアに組み込むためのソフトウェアを開発しています。
このためCPUの供給メーカーには依存せずに、お客様が選択されたCPU用にソフトウェアを開発しています。

4.3.  C言語だけではなく、アセンブラにも対応実績があります

言語は基本的にはC言語によって開発を行っていますが、高速化やROM,RAM容量の制限が厳しい場合はアセンブラを使用して開発することもあります。

4.4.  ハードウェア問題点とソフトウェア問題点の迅速な切り分け

開発を進める中で、ハードウェアとソフトウェアを組み合わせる時点では、ソフトにもハードにも不適合が存在する可能性があります。
そのため、ロジックアナライザやオシロスコープなどの機器を社内に常備し問題の切り分けを行っています。

4.5.  シミュレータの迅速で効率のよい開発

組み込みソフト開発ではしばしばシミュレータが必要になります。たとえば、ほかのシステムとRS-232CやTCP/IPなどで通信する組み込みシステムを開発する場合、テストを実施するときに通信相手の実物を準備できないことはよくあります。その場合にはパソコン上にシミュレータを作ってテストする手法をとることができます。

また、ソフトウェア規模が大きいなど、複数人で開発を進めることがありますが、十分にハードウェア(基板)を準備出来ない場合があります。
その場合には、パソコン上にハードウェアのシミュレータを作成して開発を進めることもあります。

ソフテックには、組み込みソフトとWindows用アプリケーションソフトの両方を担当出来る担当者がいるので仕組み作りから提案することも可能です。

開発実績
開発システム事例

ページTOPへ