This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

DYNAMIC REDIRECTION OF INTERRUPT VECTORS

Hi

My ST10/C167 target hardware has a BOOT (that starts at 0:0000h) and a
separate and independant MAIN application that is downloaded into FLASH memory at 2:0000h.
Both applications use serial comm and interrupts, so redirection of
the interrupt vectors is necessary in BOOT, before I switch to application.
In read the description C166: INTERRUPT VECTOR REDIRECTION but there
the JMPS uses fix segment address. I looks that I have to jump into
a subroutine that decides where I am (BOOT or application) and than
set the interrupt vector (all in assembler, help!).
How can I implement the suggested solution mentioned by KEIL
above when I use the interrupts in BOOT too?

Can anyone help me? I would be very pleased.

Regards,
Christian

Parents
  • I haven't done that myself. I know that it is easy to relocate the whole interrupt vector table - there is a setting in Target Options/L166 that does that. But that would be a waste of RAM. If you have plenty of RAM, it's not a problem.
    To get only some of the entries in the interrupt vector table to point to RAM is tricky. I think it can be done using assembler (locating sections to absolute address and placing a JMPS instructions there). You will have to read the manual...
    Good luck!
    - Mike

Reply
  • I haven't done that myself. I know that it is easy to relocate the whole interrupt vector table - there is a setting in Target Options/L166 that does that. But that would be a waste of RAM. If you have plenty of RAM, it's not a problem.
    To get only some of the entries in the interrupt vector table to point to RAM is tricky. I think it can be done using assembler (locating sections to absolute address and placing a JMPS instructions there). You will have to read the manual...
    Good luck!
    - Mike

Children
No data