Tengo un problema con la escritura de controladores de interrupción en el compilador Keil ARM para LPC1114. Cuando escribo un programa en C ++ y especifico la opción del compilador --cpp, todo el código de los controladores de interrupción desaparece, se reemplaza con un bucle infinito. Escribí un programa simple que ilustra mis problemas.
#include "LPC11xx.h" // LPC11xx definitions
#define SYSTICK_DELAY 120000 // for 10 ms systick @ 12MHz osc
void SysTick_Handler(void)
{
__NOP();
}
int main (void)
{
SystemInit(); // from system_LPC11xx.c
SysTick_Config(SYSTICK_DELAY); // from core_cm0.h
// Loop forever
while (1) __NOP();
}
Al tratar de compilar este código con la opción del compilador --cpp, obtengo un bucle infinito en el desorden:
SysTick_Handler PROC
EXPORT SysTick_Handler [WEAK]
B .
ENDP
Este es el lugar donde debe estar __NOP () del programa anterior. Y está ahí cuando compilo el código con la opción del compilador --c99 o sin opciones adicionales. La versión de Keil MDK es 4.12. ¿Alguien puede decirme si hay alguna solución o solución?