私はUARTレジスタの読み書きのために/ dev/memを開くのにmmap
を使用しています。 正常に動作しますが、私の質問は次のとおりです。 書き込み後、MS_SYNCフラグ付きのmsync
システムコールが本当に必要ですか?/dev/memに書き込むときには常にmsyncが本当に必要ですか?
私の理解から、/ dev/memは、仮想メモリアドレスを変換することによって物理メモリゾーン(私の場合はUARTレジスタ)へのアクセスを提供し、ユーザスペースから物理メモリにアクセスできる仮想デバイスです。
これは一般的なファイルではないので、レジスタの変更はバッファリング/キャッシュされていないと思います。私は実際にパフォーマンス上の理由からこのシステムコールを避けたいと思っています。
おかげ
"私はmmapを使って/ dev/memをUARTレジスタに読み書きするために使用しています。" **大ミス**。これにはカーネルドライバとシリアルAPIを使用します。 –