Autor Thema: HLT funktioniert nicht  (Gelesen 3460 mal)

Osbios

  • Beiträge: 247
    • Profil anzeigen
Gespeichert
« 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.
db 0x55AA

Legend

  • Beiträge: 635
    • Profil anzeigen
    • http://os.joachimnock.de
Gespeichert
« Antwort #1 am: 17. June 2006, 09:48 »
?

HLT wartet einfach nur bis zum nächsten IRQ. Da ist nix mit danach weiterwarten wenn der IRQ vorbei ist.
*post*

Osbios

  • Beiträge: 247
    • Profil anzeigen
Gespeichert
« Antwort #2 am: 17. June 2006, 10:26 »
l: hlt
jmp l


Funktioniert auch nicht! --> 100% CPU
db 0x55AA

Jidder

  • Administrator
  • Beiträge: 1 625
    • Profil anzeigen
Gespeichert
« Antwort #3 am: 17. June 2006, 12:28 »
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.
Dieser Text wird unter jedem Beitrag angezeigt.

Osbios

  • Beiträge: 247
    • Profil anzeigen
Gespeichert
« Antwort #4 am: 17. June 2006, 13:00 »
Zitat von: PorkChicken
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
db 0x55AA

 

Einloggen