This is the mail archive of the
gcc-help@gcc.gnu.org
mailing list for the GCC project.
OS-programming
- To: "gcc-help" <gcc-help at gcc dot gnu dot org>
- Subject: OS-programming
- From: "Thomas Lenherr" <lenherr at netpeople dot ch>
- Date: Sat, 20 Oct 2001 13:47:59 +0200
- Reply-To: <lenherr at netpeople dot ch>
Hi everybody,
I regret, that I have to write my problem here, but I think it's my last
chance to solve my problem, so please, don't be angry, but it my problem has
ABSOLUTLY NOTHING to do with gcc!
I'm writing a little PM-program, but now I need to switch back to real mode.
After some hours of work this switch worked fine and I was back home in real
mode. But then a strange thing happened:
After I've loaded all registers with its new segments
(CS,DS,ES,FS,GS:0x800/SS:0x7e0) and loaded a new idt (content: dw 0x03ff dd
0) I reactivated the interrupts with sti.
After these steps, the processor always made a fault a rebooted, but I don't
know why. I search the point where the machine crashes with a death-loop
(die: jmp die) and found out, it was the sti.
I have no idea, why reboots, I didn't change any segments but 0x7c0-0x840
and 0xb800.
I tested also, if the stack-access results in the fault, but it doesn't.
Please help me!
Thanks
Thomas Lenher