
Obsluha přerušení v MCU - nastavení callback funkcí
Zdravím. Opět mám prosbu na mistry v hardware. Co může být v principu špatně, pokud program po volání funkce pro nastavení callbacků skočí do nekonečné smyčky, popsané jako DefaultISR? Jen principiálně. Vím, že musím studovat manuály. Pracuji konkrétně s jedním API, kde používám funkce pro povolení/zakázání přerušení, nastavení přerušení na portu, na pinech atd. Nemůžu se ale dostat přes to nastavení callbacků. Funkci předám IRQ číslo portu (ověřeno že je správné) a ukazatel na svou funkci void pokus(void) (chce to takovou funkci). Ale hned po zavolání to skočí do nějaké rutiny, podle názvu asi výchozí rutina pro obsluhu.
DefaultISR:
ldr r0, =DefaultISR
bx r0
a zde to cyklí do nekonečna na těch dvou instrukcích. Zkusil jsem nejdřív globálně zakázat přerušení, ale stejně to tam skočí. To je divné ne? Teprve nastavuji obslužnou funkci a hned to někam skočí. Co mohu dělat v principu špatně?
Díky