Content originally posted in LPCWare by bavarian on Mon Jul 07 05:15:20 MST 2014
I assume that you have a problem with the setting of the vector interrupt table base address in the Cortex-Mx register VTOR.
This register needs to be set correctly in order to execute the ISRs. Where ever the IRQ table in memory is, the address in VTOR needs to point to it.
Debuggers normally set this address to the internal SRAM of the MCU, using an init script. Alternatively (or in addition) VTOR can also be set to the correct location in the application code, e.g. at the beginning of system_init. So if you always download to RAM then you can set this to the right loaction in RAM. If you always flash into SPIFI you need to set it to the right address in the SPIFI memory area.
LPCXpresso is also based on the GCC compiler, so the difference must be somewhere outside the compilation environment (source code + compiler).
Hope this helps to solve the problem,
NXP Support Team.
P.S. even if this problem is not really MCU specific it would always be good to know which MCU and which tool/compiler/debugger version you use.