interrupt emitted when I enable maskable interrupts
Posted: Tue Dec 04, 2018 7:30 am
Hi, I am early in the development of a little kernel, and I am already facing something I don't know how to solve.
I want to enable interrupts but when the line "sti" is executed there is always an interrupt emitted and I don't know why. I set up the IDT to call interrupt handlers that display the interrupt vector of the handler on the screen when it is executed.
I verified with Bochs that everything was well configured by looking what it thought my GDT and IDT was, and watching bits per bits these tables on the RAM, and it was. At least, it was configured the way I want it to be, it may be the wrong way
When I execute my kernel with Bochs, it always displays me a "(8)" (VirtualBox too) when maskable interrupts are enabled. 8 is for double fault so I tried to run my (tiny little)kernel on real hardware to have more info and I came up with this result "(15)(15)(15)(8)(15)" (photo of the result : https://www.cjoint.com/c/HLenjb7VIDv). An Intel reserved exception is causing the double fault. Well... That won't help me a lot
If somebody can look at my code to tell me what I am doing wrong I will really appreciate it. I have surely misunderstood something but, after about a month of investigations, I can't find it. The code is at https://github.com/DridriLaBastos/Beetl ... -idt-issue
I want to enable interrupts but when the line "sti" is executed there is always an interrupt emitted and I don't know why. I set up the IDT to call interrupt handlers that display the interrupt vector of the handler on the screen when it is executed.
I verified with Bochs that everything was well configured by looking what it thought my GDT and IDT was, and watching bits per bits these tables on the RAM, and it was. At least, it was configured the way I want it to be, it may be the wrong way
When I execute my kernel with Bochs, it always displays me a "(8)" (VirtualBox too) when maskable interrupts are enabled. 8 is for double fault so I tried to run my (tiny little)kernel on real hardware to have more info and I came up with this result "(15)(15)(15)(8)(15)" (photo of the result : https://www.cjoint.com/c/HLenjb7VIDv). An Intel reserved exception is causing the double fault. Well... That won't help me a lot
If somebody can look at my code to tell me what I am doing wrong I will really appreciate it. I have surely misunderstood something but, after about a month of investigations, I can't find it. The code is at https://github.com/DridriLaBastos/Beetl ... -idt-issue