6

学校のプロジェクトとして x86 用のカーネル (シミュレートに qemu を使用) を作成していて、奇妙な問題に遭遇しました。eflags レジスタに割り込みフラグを設定しても、クロック割り込みが発生しません (qemu info register コマンドで確認したところ、eflag=0x292 が設定されていることがわかりました)。

正確には、ユーザーモードでスピンテスト (while(1); プログラム) を実行すると、1 つのクロック割り込みが発生しますが、その後は停止し、qemu はそれ以上シミュレートしていないようです! それは他の誰かに起こりましたか?割り込みに影響を与える別のメカニズムはありますか? 誰にも手がかりがありますか?
シャイ。

4

2 に答える 2

3

どうやらx86では、クロック割り込みごとに確認する必要があります。つまり、クロックが中断されるたびに確認応答を lapic に送信する必要があります。

于 2013-05-08T11:14:12.337 に答える
0

RTC からの割り込みを予期している場合は、最初に REG_C (CMOS レジスタ 0x0C) から読み取って前の割り込みを確認する必要があります。

于 2013-05-23T20:53:19.127 に答える