2003-10-30 02:41 AM
2011-05-17 02:35 AM
Dear Sir
All interrupts have their interrupt vectors, the location where the program control lands to service the interrupt. In ST9 this Interrupt vector decided bye 2 registers, IVR (Interrupt Vector Register - 8 Bit) and ISR (Interrupt Segment Register- 6 bits). 8 bit Value in IVR gives 128 different Interrupt Vector locations (2 bytes for one interrupt vector). We have this register associated with all the interrupts. So we can say that we have space of 256 bytes in memory, where all the interrupts vectors are mapped ST9 can address 4 MB of space we can divide this into 64 segments of 64kb each. In one of these 64 segments there lies these 256 bytes, which are mapped to the interrupt vector of different peripherals. The 64Kb segment is decided by the 6-bit value of ISR. The 256 bytes are always located at the starting of this segment. e.g. if ISR = 00h then the first 256 bytes of memory are can be mapped to different interrupts, If ISR = 04 then these 256 bytes will be the first 256 bytes located after the address 040000h. For more information see the ST9 datasheet.2011-05-17 02:35 AM
Dear Sirs, i need to locate the Interupt Vector Table in the third sector (F2) on ST92F150 (or relocate after reset) obviously excluding the reset vector by default at 0x0000. Have you some sample code to realize this task? I know that I should work on crtbegin.spp and on the ISR register.
Thank'you in advance. E.C.2011-05-17 02:35 AM
Hello Enconfal,
I am afraid you can't relocate your IVT to F2 as it begins after 16K bytes of segment0. And IVT always lies in the first 256 bytes of segment that we chose through ISR register as explained by Chaps. So we have flexibility just for the selection of segment we want to place our IVT in not the offset. Ritu2011-05-17 02:35 AM
If I need to include the IVT inside segment 3, how I could implement it.
May you provide some configuration examples.2011-05-17 02:35 AM
For including the IVT in segement 3, just put 0x03 in ISR.