ファームウエアって、そもそもナニ?

ソフトウエアとファームウエア

 ファームウエアもソフトウエアの一種ですが、通常は以下のように区別しています。

名称稼働する場所
ソフトウエアPCなどWindows (OS), Word, Excelなど(アプリケーション)
ファームウエア家電製品など炊飯器、デジタルカメラ、FAX、プリンタ、コピー機など

 ソフトウエアはユーザが新しいバージョンをダウンロードしてバージョンアップすることができますが、ファームウエアは専用のプログラムがすでに書き込まれており、基本的にユーザが更新することはできません。(主に不具合対策目的でユーザが更新できるようにしている場合もあります) SoftwareのSoftは「柔らかい」という意味ですが、FirmwareのFirmは「固い」という意味があります。ソフトは柔らかいので柔軟に変更することができますが、ファームは固いので簡単に変更できないという意味が込められているのです。

合わせて読みたい:IoTって、そもそもナニ?

合わせて読みたい

ファームウエアの開発

 WindowsなどのOS(オペレーティングシステム)上で動作するソフトウエア(アプリケーション)を開発するとき、キーボードやマウスなどの周辺機器はOSが面倒を見てくれますので、これらの機器とやりとりするプログラムをイチから作成する必要はありませんが、ファームウエアの場合そうはいきません。

 例えば家電製品の新製品開発では、その製品の形状に合わせて下図のようなマイコン(マイクロコンピュータ)ボードを開発することになります。

 図のように、操作ボタンや表示用LCDはその製品「専用」になっているのが普通であり、場合によってはCPU(マイコン)も専用のチップが組み込まれます。この図の中でROMは メモリーデバイスであり、Read Only Memory を略したもので「ロム」と呼ばれます。このROMの中にCPUを動かすためのプログラム(ファームウエア)が書き込まれますが、いったん書き込んだら動作中は読み出し専用となります。

 このようにファームウエアは専用のデバイスに書き込まれるもので、Windowsなどの汎用OSで動作するソフトウエアとは開発手法が全く異なります。Windows上で完結するソフトウエアと異なり、専用ハードウエアを動かすプログラミングが必要であり、同時にハードウエアの知識もある程度必要になるのが普通です。

関連ページ

プログラミング不要の評価システム: https://www.keisoku.co.jp/pw/product/system/eval/