19
« am: 13. February 2010, 15:49 »
An dieser Stelle, eigentlich an 0x00101b8b, ist der Code, um Einträge in die IDT zu machen.
Diese Funktion sieht so aus:
void setINT()
{
idtSetupEmpty(0, (uint32_t)INT_0, 0x08, TYP);
idtSetupEmpty(1, (uint32_t)INT_1, 0x08, TYP);
idtSetupEmpty(2, (uint32_t)INT_2, 0x08, TYP);
idtSetupEmpty(3, (uint32_t)INT_3, 0x08, TYP);
idtSetupEmpty(4, (uint32_t)INT_4, 0x08, TYP);
idtSetupEmpty(5, (uint32_t)INT_5, 0x08, TYP);
idtSetupEmpty(6, (uint32_t)INT_6, 0x08, TYP);
idtSetupEmpty(7, (uint32_t)INT_7, 0x08, TYP);
idtSetupEmpty(8, (uint32_t)INT_8, 0x08, TYP);
idtSetupEmpty(9, (uint32_t)INT_9, 0x08, TYP);
idtSetupEmpty(10, (uint32_t)INT_10, 0x08, TYP);
idtSetupEmpty(11, (uint32_t)INT_11, 0x08, TYP);
idtSetupEmpty(12, (uint32_t)INT_12, 0x08, TYP);
idtSetupEmpty(13, (uint32_t)INT_13, 0x08, TYP);
idtSetupEmpty(14, (uint32_t)INT_14, 0x08, TYP);
idtSetupEmpty(15, (uint32_t)INT_15, 0x08, TYP);
idtSetupEmpty(16, (uint32_t)INT_16, 0x08, TYP);
idtSetupEmpty(17, (uint32_t)INT_17, 0x08, TYP);
idtSetupEmpty(18, (uint32_t)INT_18, 0x08, TYP);
idtSetupEmpty(19, (uint32_t)INT_19, 0x08, TYP);
idtSetupEmpty(20, (uint32_t)INT_20, 0x08, TYP);
idtSetupEmpty(21, (uint32_t)INT_21, 0x08, TYP);
idtSetupEmpty(22, (uint32_t)INT_22, 0x08, TYP);
idtSetupEmpty(23, (uint32_t)INT_23, 0x08, TYP);
idtSetupEmpty(24, (uint32_t)INT_24, 0x08, TYP);
idtSetupEmpty(25, (uint32_t)INT_25, 0x08, TYP);
idtSetupEmpty(26, (uint32_t)INT_26, 0x08, TYP);
idtSetupEmpty(27, (uint32_t)INT_27, 0x08, TYP);
idtSetupEmpty(28, (uint32_t)INT_28, 0x08, TYP);
idtSetupEmpty(29, (uint32_t)INT_29, 0x08, TYP);
idtSetupEmpty(30, (uint32_t)INT_30, 0x08, TYP);
idtSetupEmpty(31, (uint32_t)INT_31, 0x08, TYP);
}
TYP = 0x8E.
Aber da die Addresse nicht genau 0x00101b84 ist, weiß ich nicht ob diese Funktion den Fehler verursacht.
Was FPU und deren Exceptons sind kenne ich, mich hat nur dieses mit dem "DOS" verwirrt.