Saya memiliki masalah dengan penulisan interrupt handler di kompiler ARM Keil untuk LPC1114. Ketika saya menulis program dalam C ++ dan menentukan opsi --cpp compiler, semua kode dari interrupt handler menghilang, diganti dengan infinite loop. Saya menulis program sederhana yang menggambarkan masalah saya.
#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();
}
Ketika mencoba mengkompilasi kode ini dengan opsi --cpp compiler, saya mendapatkan infinite loop dalam disasm:
SysTick_Handler PROC
EXPORT SysTick_Handler [WEAK]
B .
ENDP
Ini adalah tempat di mana __NOP () dari program di atas harus. Dan itu ada ketika saya mengkompilasi kode dengan opsi kompiler --c99 atau tanpa opsi tambahan. Versi Keil MDK adalah 4.12. Adakah yang bisa memberi tahu saya apakah ada solusi atau solusi?
volatile
di dalamnya.