Je to tak, jak jsem tušil. Jen jsem nevěděl, že mám hledat vektory přerušení. Vlastní přerušení povolit a využít vím - to jsem úspěšně použil v semaforech, ale nevěděl jsem, které přerušení “vyhraje”, když se potkají dvě.
Vezmu teoretickou situaci. Mám přerušení 0-3. S nejvyšší prioritou má 0, nejnižší 2.
Pokud probíhá podprogram přerušení 2 a přijde přerušení 1, tak se přeruší přerušení 2 jako kdyby ten podprogram byl součástí programu a nastalo klasické přerušení? A zpětně to dopadne stejně jako u klasického jednoho přerušení? Takže po skončení přerušení 1 to skočí na místo, kde to vyskočilo z podprogramu pro přerušení 2. Předpokládám, že pokud by nastalo přerušení 0, tak by se přerušilo i provádění podporogramu pro přerušení 2, provedl by se podprogram pro přerušení 0, navrátilo by se to do boku výskoru z podprogramu pro přerušení 1 a následně i 2 do základního programu.
Je moje úvaha správná?
V případě nutnosti nebude až tak obtížný programově donutit libovolné přerušení se zažadit do fronty, pokud se bude momentálně provádět jiné.