2017-06-09 4 views
1

私はAMD64アーキテクチャ用のOSカーネルを作成していますが、複雑な理由からIRQ 0(レガシーPIT)を無効にしたいと思っています。 (タイマーが必要な場合は、HPETまたはローカルAPICを使用することをお勧めします)。しかし、osdever.netWikipedia、またはOSDev Wikiのいずれもそれをオフにする方法については説明していません。誰もこれを行う方法を説明できますか?in/out ASM命令ですか?レガシー8253/4 PITを無効にするにはどうしたらいいですか?

+0

PITをワンショットモードに設定してから、一度起動すると割り込みを確認してタイマーをリセットしないでください。 –

+0

ありがとうございます。私はそれが動作するかどうかを確認します。 – codecuirassier

答えて

0

また、GitHubで見つかるSilcosカーネルも開発中です。カーネル用のタイマー・サブシステム・フレームワークを開発する際に、この問題にも直面しました。現実には、PITを設定することによってPITを無効にする方法はありません。マザーボード固有の方法があるかもしれませんが、私たちはそこに行きたくありません。

あなたがする必要があるのは、必要でないときにオーバヘッドを減らすために、最大許容期間で周期的割り込みをPITで生成しなければならないことです。各IRQでは、1つのIRQ上で複数のデバイスを処理する

のようなIRQサブシステムを構築する必要があります。

関連する問題