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

Interrupt vector calculation with VTOR.

Hi Cortex-M architects or experts,

I have a question. Is the interrupt vector calculated by not ADDed with VTOR but ORed with VTOR? There is a post in the Freescale Kinetis Community as "Vector Table Offset - is this expected behaviour??" (https://community.freescale.com/thread/337498). His post shows it is ORed. This would be uncertain even if I read ARMv7M Reference Manual. I would like to clarify the fact.

Best regards,
Yasuhiko Koumoto.

Parents
  • Hi Gopal,

    I prefer to your guess but the fact is different. The original post says as the following.
    In case of VTOR=0x00000000, USB OTG interrupt offset is 0x164 and UART0 interrupt offset is 0x0f4. And if VTOR is set to 0x8080, USB OTC interrupt address became 0x81e4 and UART0 interrupt address is 0x80f4, the former was 0x81e4 (as expected) and the latter was NOT 0x8174 (as not expected).
    Also my experiment shows the interrupt of 0xf0 offset still invoked from 0xf0 address even if VTOR was set to 0x0080.
    It shows the interrupt vector offset is calculated by OR-ing.

    Best regards,
    Yasuhiko Koumoto.

Reply
  • Hi Gopal,

    I prefer to your guess but the fact is different. The original post says as the following.
    In case of VTOR=0x00000000, USB OTG interrupt offset is 0x164 and UART0 interrupt offset is 0x0f4. And if VTOR is set to 0x8080, USB OTC interrupt address became 0x81e4 and UART0 interrupt address is 0x80f4, the former was 0x81e4 (as expected) and the latter was NOT 0x8174 (as not expected).
    Also my experiment shows the interrupt of 0xf0 offset still invoked from 0xf0 address even if VTOR was set to 0x0080.
    It shows the interrupt vector offset is calculated by OR-ing.

    Best regards,
    Yasuhiko Koumoto.

Children
No data