質問: ファームウェアのコードかデータか ファームウェアをデバイスに「フラッシュ」したと誰かが言ったとき、これが実際に何を意味するのかについて興味があります。 1. ファームウェアは、メモリに格納されていて、デバイスのCPUで解釈できる(コンピュータ上の他のEXEファイルと同じように)ネイティブバイナリにすぎませんか。それともファームウェアは、不変プログラムへの入力として機能するデータに過ぎず、すでにデバイスにハードコード/配線されていますか。 2. 後者の例がファームウェアではない場合、どうしますか。たとえば、デバイスにバイナリ( `someapp.exe` )が含まれているとします。このバイナリを削除または変更することはできません。バイナリが実行されると、メモリチップから入力を受け取ります。このチップにデータを「フラッシュ」することができます。そのため、次回の実行時に有効になる `someapp.exe` の入力/設定に影響します。ファームウェアでなければ、これは何と呼ばれますか。
回答: そのような定義としばしば同様に、私たちはほとんどの場合同意します、しかしファームウェアであるものとそうでないものの間に実際に明確な境界がありません。ファームウェアは * 永続的に保存されています(変更可能な知識のある人を除く...) * 変更を意図していません(...を除く) * 他のソフトウェアの助けを借りずにプロセッサ上で動作します(ただし、あなたはそれを入手しますか?) (ファームウェア)インタプリタによって解釈されるデータに関して:これは製品をより高価にするので、プロの設定ではあまり行われません。同じ目的を達成するにはより多くのメモリ、CPUパワーなどが必要です。これは趣味の設定で使われることもありますが、基本的にはフラッシュのBasicインタプリタや、eepromに保存された(またはトークン化された)Basicアプリケーションで使用されます。例えばPICAXEと様々な基本スタンプをチェックしてください。 そのような設定でのIMOはBasicインタプリタとBasicアプリケーションの両方をファームウェアと呼ぶべきです。 保存されたコードを解釈するファームウェアインタプリタ(IMOもファームウェアと見なすべきです)の興味深い使い方はXBOX 360の起動です。この優れた講演では、詳細について説明しています。 以下のMSaltersは、FPGAコード/コンフィギュレーションデータをファームウェアと見なすべきかどうか疑問に思います。 最も重要な点(生産プロセスの後半で変更可能な情報ですが、エンドユーザーが自由に変更することは意図されていません)では、FPGAビットはファームウェアのように動作します。それは、定義に反してファームウェアがファームウェアであるかどうかという疑問を投げかけます。重要な点は、それがファームウェアのように書かれ、扱われ、そして管理されることができる(そしてそうあるべきである)ということです。 (アヒルのように歩いて震えたら、アヒルですか?) 定義が役に立たないときに定義を気にするなマイクロコードファームウェアですか。表現は重要ですか?文脈は重要ですか? IWMファームウェアのROMビットはありますか? OPの質問に対するVaxquisのコメントは私が彼がリンクしているWiki記事を読むことを私に促しました。そこに与えられたファームウェアの定義(永続的なメモリとプログラムコードとそれに格納されたデータ)は面倒です。 IMOカーナビゲーションシステムに保存されている地図はデータであり、ファームウェアではなく、保存方法に関係なく(Wikiによるとファームウェアになります)。そしてあなたのiPhoneやAndroid携帯のアプリはアプリケーションであり、ファームウェアではありません(wikiによるとそれらもファームウェアであるべきです)。