Tengo un problema con la escritura de controladores de interrupciones 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 mi problema.
#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();
}
Cuando intento compilar este código con la opción del compilador --cpp obtengo un bucle infinito en caso de desastre:
SysTick_Handler PROC
EXPORT SysTick_Handler [WEAK]
B .
ENDP
Este es el lugar donde debe estar __NOP () del programa anterior. Y está ahí cuando estoy compilando código con la opción del compilador --c99 o sin opciones adicionales. La versión Keil MDK es 4.12. ¿Alguien puede decirme si hay alguna solución o solución?
volatile
en ella.