2

c++ にはハードウェアへの低レベル アクセスが多数あることを知ったので、c++ でドライバーを記述します。しかし、通常のデスクトップ アプリケーションを C++ で作成した場合、ハードウェアに直接アクセスできるでしょうか? デスクトップアプリケーションはアプリケーションレイヤーで実行されるため、これを求めています。アプリ層とハードウェアの間にOS層とOEM層があります。では、C++ で記述されたアプリケーションがハードウェアに直接アクセスするにはどうすればよいでしょうか? C ++デスクトップアプリがどのように機能するかを誰かに説明してください。

ありがとう。

4

1 に答える 1

7

一般に、デスクトップ アプリケーションは、追加のメモリからハード ドライブやサウンド チップまで、あらゆるリソースにアクセスするために OS を経由する必要があります。

組み込みシステムでは、通常はポインターを介して、ハードウェアに直接アクセスできます。したがって、UARTレジスタに書き込むには、レジスタのアドレスをポインタに割り当て、ポインタを逆参照します。

多くのコンパイラ ライブラリは、さまざまなプラットフォームと組み込みシステムをサポートしています。ARM 組み込みシステム用の IAR コンパイラを使用し、C++ でプログラミングしています。端末 I/O がないため、ストリームは使用しません。

編集 1: cout の例
たとえば、coutまたはを介し​​てコンソールに出力するprintfために、コンパイラはオペレーティング システム関数を呼び出してテキストを表示するライブラリを提供します。

オペレーティング システム機能は、テキストをコンソールに直接送信するか、「コンソール ウィンドウ」をポップアップしてそこにテキストを送信します。

コンソール関数は、テキストをビットマップに変換し、ビットマップをグラフィック コントローラーに送信します。

グラフィックス コントローラは、ビットマップを画面に表示します。

于 2013-07-31T01:19:57.507 に答える