RTX51: RELOCATING INTERRUPT BASE ADDRESS
Is it possible to relocate RTX-51's interrupt vector base address?
Yes. There are only a few steps you must take to move the interrupt vectors.
The following example assumes that you wish to relocate the interrupt table to 0x1000 where the reset vector is at 0x1000 and interrupts are at 0x1003, 0x100B, 0x1013, and so on.
Rebuild your program and look at the M51 map file to make sure your program begins at the appropriate address.
Note that if you attempt to run your program with dScope, it will not run. This is because dScope jumps to the REAL interrupt vectors (0000h, 0003h, 000Bh, 0013h, and so on). You can get around this problem by using the dScope assembler to add LJMPs at the real interrupt vectors to the relocated interrupts. For example:
ASM 0x0000 ASM LJMP 0x1000 ASM 0x0003 ASM LJMP 0x1003 ASM 0x000B ASM LJMP 0x100B ASM 0x0013 ASM LJMP 0x1013 . . .
You could also create a small assembly program that redirects the interupt vectors to their new locate. Either way, the real interrupt vectors must redirect the interrupt to your new interrupt vector table.
The following Discussion Forum threads may provide information related to this topic.
Last Reviewed: Saturday, July 9, 2005
of your data.