AnsweredAssumed Answered

Interrupts not working after loading app with bootloader

Question asked by Tom Junkans on Jul 12, 2013
Latest reply on Jul 25, 2013 by Monica Arvizu

Hi, Fellow MQX People,

Running this on a K20DX256ZVMD10 using MQX4.0 and CW10.3

 

I have an app using an interrupt from SPI and everything works great if I load and start the app from address 0x0000_0000. I put the SPI interrupt ISR directly into vectors.c

Next, I fired up the MSD bootloader to bootload starting at address 0x0000_C000.

 

Next, in the app:

  1. Set '#define MQX_ROM_VECTORS   0' in user_config.h and small_ram_config.h
  2. Changed intflash.lcf to:

   vectorrom   (RX): ORIGIN = 0x0000C000, LENGTH = 0x00000400  # TJ changed from 0000 to C000

   cfmprotrom  (RX): ORIGIN = 0x0000C400, LENGTH = 0x00000020  # TJ changed from 0400 to C400

   rom         (RX): ORIGIN = 0x0000C420, LENGTH = 0x00033BE0  # Code + Const data TJ changed from 0420 to C420, & 3FBE0 to 33BE0 

   ram         (RW): ORIGIN = 0x1FFF8000, LENGTH = 0x00010000  # SRAM - RW data

 

   3. Cleaned the project and re-built.

 

Now, after I load the application with the bootloader and restart, the application loads and runs but the SPI interrupt never gets serviced.

 

Looking at the SRAM area where the vector table should have been copied to, address 0x1FFF_8000, I do not see my SPI ISR vector in the table. ??? n

 

I know there must be something simple I missed (I hope!)

Any ideas or help is much appreciated.

Cheers,

Tom

Outcomes