Здравствуйте!
Использую LPC2103, IAR 5.20, язык С.
Есть функция:
Код
void Func (void)
{
DISABLE_INTERRUPT;
/* некоторый код */
ENABLE_INTERRUPT;
}
Она может вызываться как из main(), так и из обработчика прерывания.
Как описать разрешение/запрещение прерываний, чтобы в случае вызова из обработчика прерывания, при выходе прерывание не разрешалось?
Я так понимаю, для этих целей нужно сохранять регистр CPSR, а потом его восстанавливать.
Но у меня режим User (в основной программе).
Что делать? Менять режим в cstartup на Supervisor? Или как-то по-другому?