I Can't Get Interrupts Working: Difference between revisions
Jump to navigation
Jump to search
[unchecked revision] | [unchecked revision] |
Content deleted Content added
m Added keyboard IRQ case to 'I can only receive one IRQ' |
|||
Line 5: | Line 5: | ||
== ISR problems == |
== ISR problems == |
||
=== My handler doesn't get called |
=== My handler doesn't get called?! (Assembly) === |
||
For this test, you need to call the interrupt yourself, by software. Don't try to get [[IRQ]] handled right from the start before you're sure your IDT setup is correct. You need to have: |
For this test, you need to call the interrupt yourself, by software. Don't try to get [[IRQ]] handled right from the start before you're sure your IDT setup is correct. You need to have: |
||
* your IDT loaded and filled properly. |
* your IDT loaded and filled properly. |
||
* your IDT's ''linear'' address loaded in a structure together with the table's size (in bytes, |
* your IDT's ''linear'' address loaded in a structure together with the table's size (in bytes, IIRC). Be especially cautious if you have a [[Higher Half Kernel]] design or did not set up [[Identity Paging|identity paging]]. |
||
* a valid Code selector and offset in the [[Descriptors|descriptor]], proper type, etc. |
* a valid Code selector and offset in the [[Descriptors|descriptor]], proper type, etc. |
||
* a handling code at the defined offset. |
* a handling code at the defined offset. |