デバイスドライバサブシステムオプション

デバイスドライバサブシステムオプション

ハードウェアデバイスとそのドライバをHWMONサブシステムとINPUTサブシステムに接続することのパフォーマンスの違いは何ですか?

SPIバスを介して接続されたADCを内蔵したボードがあります。現在、HWMONサブシステムにバインドされた単純なベンダー提供のデバイスドライバを使用しています。 ADCが頻繁に読み取ると、CPU時間が大量に消費されます。 HWMONサブシステムよりもINPUTサブシステムを使用するドライバを作成する方が効率的ですか?

ベストアンサー1

私の考えでは、HWMONサブシステムは比較的高価なデバイスから読み取るのに最適ですが、アプリケーションがそれを必要とする場合にのみそうです。

INPUTサブシステムドライバでは、アプリケーションがデバイスからどのくらいの頻度で読み取るべきかをドライバに知らせるか、ドライバがデバイスを定期的にポーリングできるようにするメカニズムを実装する必要があります。いつも,リードする言葉のないCPU消費。

ベンダーが提供するデバイスドライバコードを批判的に見てください。実際には生産品質ですか、それともパフォーマンスに気を使わずにADCを読み取る方法の簡単な例ですか?

ループ内で愚かに回転してADC固有のタイミングを実行し、組み込みプラットフォームが高解像度タイマーを提供できる場合は、コアが再び戻る必要があるまで他のタスクを実行できるようにするクロックイベントハンドラまたは他のメカニズムを使用できます。ループを交換してください。 ADCを読むことをお勧めします。接続に使用されるサブシステムに関係なく、ドライバが使用するCPU時間を大幅に短縮できます。

おすすめ記事