8

私の理解では、ファームウェアはハードウェアを制御するものであり、ドライバーはファームウェアと対話してハードウェアを制御します。あれは正しいですか?

Linux では、ファームウェアとやり取りする API または関数は何ですか? ファームウェア コードは、どの OS (Linux や Windows など) からも独立していますか?

4

2 に答える 2

8

ファームウェアは、デバイス上で実行されるソフトウェアです。ドライバーは、オペレーティング システムにデバイスとの通信方法を指示するソフトウェアです。ファームウェアを持つすべてのデバイスは、通常、(ROM チップまたはプログラマブル ROM チップのいずれかを使用して) デバイスにプログラムされますが、一部のデバイスでは、初期化時にファームウェアがデバイスにロードされます。すべてのデバイスにfrimware が搭載されているわけではありません。

  1. より技術的には、「ファームウェアは、ハードウェア デバイス自体のマイクロプロセッサまたはプログラマブル ロジックにアップロードされるソフトウェアです。ファームウェアを使用するハードウェアの例は、電源投入時に USB ポートからコードを受信する HP プリンター、起動時にファームウェアをアップロードするワイヤレス ネットワーク インターフェイスです。アップ、インターネットから自分自身を更新できるルーターなど...一般的に、デバイスにファームウェアをアップロードできることはプラスです.これにより、最初の販売後に製品の改善を追加できます.これらには、製品のバグ修正が含まれます. 、セキュリティ問題への対応、または規制環境の変化への対応。例: FCC による許容帯域幅の開放または制限、消費電力、安全性。」
  2. 一般的に: ドライバーは、ハードウェアと対話するカーネル モジュールです。ファームウェアは、ドライバーと対話するハードウェア上で実行されるソフトウェアです。
于 2013-04-22T13:02:50.037 に答える
1

これは、デバイスと PC 間の接続方法によって異なります。PCI ボードには、Linux カーネル モード API のセットがあります。別のカーネル モード API のセットを使用して、USB ポート経由で接続されたデバイスと通信します。イーサネットおよび WiFi 接続の場合、ソケット API を使用できます。通信は完全にユーザー モードで行われます。シリアル ポート経由で接続されたデバイスも、ユーザー モード API で処理されます。Linux OS ではファイルとして処理されます。

通常、デバイスのファームウェアはホスト システムの OS に依存しません。ただし、デバイス自体で実行されている OS (存在する場合) に依存します。ファームウェア コードは、OS を使用せずにプレーンな C で記述したり、リアルタイム OS で実行したりできます。最新のデバイスには、組み込みの Linux や Windows などのフル機能の OS が含まれている場合があります。この場合、このデバイスに固有のプログラムを含む OS 全体がデバイス ファームウェアと見なされます。たとえば、特定のモバイル デバイス用の Android OS です。

于 2013-04-22T12:20:45.293 に答える