LPC - Jak detekovat povolene/zakazane preruseni?
Pavel Hudecek
edizon na seznam.cz
Pátek Říjen 14 17:42:45 CEST 2016
Dobrý den všem,
mějme funkci v procesoru LPC11U68. Nějaká její část nesmí být přerušena.
Nemůže v ní ale být natvrdo zákaz a povolení přerušení, protože funkce může
být volána i v obsluze přerušení a kdyby ho povolila, hrozil by další
problém.
Potřebuji tedy detekovat, zda už je přerušení zakázáno, nebo není, aby po
provedení kritické části byl stav zákazu/povolení obnoven.
Díval jsem se, jak vypadají knihovní funkce pro zákaz a povolení a moc
moudrý z toho nejsem:
__attribute__( ( always_inline ) ) __STATIC_INLINE void __disable_irq(void)
{
__ASM volatile ("cpsid i" : : : "memory");
}
Syntaxe tohoto assembleru mi nedává smysl...
Díky,
PH
Další informace o konferenci Hw-list