( bzt | 2024. 07. 26., p – 11:35 )

Szánalmas. ARM alatt nincs is ilyen, azt ott külön független hardware vezérli, de te még azt sem tudod, hogy "NVIC"-t kezelő kód az "NVIC_EnableIRQ" függvényen túl berak még egy ISR kódot is a programodba... Szánalmas vagy, na.

Maga az ARM nem is tud megszakításvektorokat kezelni, csak 4 típust ismer (Sync, IRQ, FIQ, SError, esetleg ezek jogosultság szintes kombinációja a CSel rendszerregiszter beállításától függően), az már az ISR feladata, hogy különböző rendszerregisztereket lekérve eldöntse, melyik is történt (pl. hogy UART IRQ volt-e egyáltalán a megszakítás oka).

Röviden: az ISR az, ami aztán a ramvectors tömbből választ, és nem a CPU.

https://developer.arm.com/documentation/ddi0487/latest/arm-architecture…
https://documentation-service.arm.com/static/5f8fef3af86e16515cdbf816

Elárulom, hogy ez pontosan ugyanígy zajlik akkor is, ha nem NVIC-ed hanem GIC-ed vagy QA-d van, mint a régi Pi-ken.