Ok, in school we are developing an operating system. My project has been to develop an ATA hard disk driver. I thought I had my interrupt service routine working quite well when my professor pointed out that I was only sending end-of-interrupt commands to the slave PIC, and not the master as well.
My problem is that whenever I send the end-of-interrupt to the master PIC, it causes a triple fault which then causes my system to reboot. Now I have un/commented a bunch of lines and it appears that whenever the function to send the end-of-interrupt to the master PIC is left in the code I get the triple fault.
Now I am quite sure of the following:
- interrupts are disabled upon entering my ISR
- I am properly sending the end-of-interrupt byte (class tested)
- I am not re-acknowledging the same interrupt
This has been causing massive frustration, so I am hoping that someone can give me some guidance without needed to see our code.
Thanks!