AnsweredAssumed Answered

After Moving Vector Table Device Crashes on First IRQ

Question asked by pcpro178 on Jun 20, 2018
Latest reply on Jun 22, 2018 by pcpro178

I've updated my linker file, so that the IVT should be located at 0x2300.


m_flash_config (RX) : ORIGIN = 0x000022F0, LENGTH = 0x00000010
m_interrupts (RX) : ORIGIN = 0x00002300, LENGTH = 0x00000100
m_foo_data (RW) : ORIGIN = 0x00002400, LENGTH = 0x00000400
m_bar_data (RW) : ORIGIN = 0x00002800, LENGTH = 0x00000400
m_baz_data (RW) : ORIGIN = 0x00002C00, LENGTH = 0x00000400
m_qux_data (RW) : ORIGIN = 0x00003000, LENGTH = 0x00000400
m_text (RX) : ORIGIN = 0x00003400, LENGTH = 0x0003CC00
m_data (RW) : ORIGIN = 0x1FFFE000, LENGTH = 0x00008000

Upon launching the debugger I can see the IVT at 0x2300, as well as the implemented ISR vectors at their respective offsets, in the memory view.  My SCB->VTOR value is also set to the expected 0x2300.  The only other thing I see, which I can't explain, is that when I inspect __VECTOR_TABLE it's value is still 0x20006000.  I'm not sure if that's an issue or not.  I have only these four ISRs implemented:


  • ADC0_IRQn
  • PIT_IRQn
  • TPM2_IRQn


Does anyone know what's wrong here?