LPC - Jak detekovat povolene/zakazane preruseni?

Jaroslav Buchta jaroslav.buchta na hascomp.cz
Pátek Říjen 14 18:53:50 CEST 2016


To je syntaxe zapisu asm v gcc, doted jsem to taky nepochopil, mezi ty 
dvojtecky se pisou parametry, pouzite registry...
Jinak je to instrukce, ktera proste zakaze preruseni

http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.dui0497a/CHDBIBGJ.html

PRIMASK registr by mel jit precist instrukci MRS, popis treba zde 
https://www.keil.com/pack/doc/CMSIS/Core/html/group___core___register__gr.html#ga799b5d9a2ae75e459264c8512c7c0e02

Dne 14.10.2016 v 17:42 Pavel Hudecek napsal(a):
> 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
> _______________________________________________
> HW-list mailing list  -  sponsored by www.HW.cz
> Hw-list na list.hw.cz
> http://list.hw.cz/mailman/listinfo/hw-list




Další informace o konferenci Hw-list