Lowlevel
Lowlevel => Lowlevel-Coding => Thema gestartet von: Osbios am 17. June 2006, 09:45
-
Habe hier ein Problem mit dem HLT Befehl.
Soviel Ich weiß sollte der Prozessor bei einem HLT anhalten und nur für einen IRQ seinen Wartezustand verlassen bzw. wieder in den Wartezustand gehen, wenn der IRQ mit einem normalen IRET beendet wird.
Bei mir überspringt er das HLT aber einfach.
Ich habe das bis jetzt nur unter bochs(2.2.1) getestet. Ich hoffe das es nicht daran liegt.
-
?
HLT wartet einfach nur bis zum nächsten IRQ. Da ist nix mit danach weiterwarten wenn der IRQ vorbei ist.
-
l: hlt
jmp l
Funktioniert auch nicht! --> 100% CPU
-
Auslastung der Host CPU oder der Bochs CPU? Ersteres würde mich nicht wundern. Kann sein, dass Bochs einfach nicht dafür programmiert ist, bei einem hlt CPU-Zeit zu sparen. Letzteres bedeutet vielleicht, dass der Timer-IRQ die ganze Zeit feuert. Überprüfe mal deine Werte für ips, die Einstellungen der Bochs-Uhr, und wie du deinen PIC eingestellt hast.
-
Auslastung der Host CPU oder der Bochs CPU? Ersteres würde mich nicht wundern. Kann sein, dass Bochs einfach nicht dafür programmiert ist, bei einem hlt CPU-Zeit zu sparen.
Thx, Bochs war der Grund. :D