У меня проблема с записью обработчиков прерываний в компиляторе Keil ARM для LPC1114. Когда я пишу программу на C ++ и указываю опцию компилятора --cpp, весь код из обработчиков прерываний исчезает, он заменяется бесконечным циклом. Я написал простую программу, которая иллюстрирует мою проблему.
#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();
}
При попытке скомпилировать этот код с параметром компилятора --cpp, я получаю бесконечный цикл в disasm:
SysTick_Handler PROC
EXPORT SysTick_Handler [WEAK]
B .
ENDP
Это место, где должна быть программа __NOP () сверху. И это там, когда я компилирую код с опцией компилятора --c99 или без дополнительных опций. Версия Keil MDK - 4.12. Может кто-нибудь сказать мне, есть ли решение или обходной путь?
volatile
в ней.