Народ, кто как выходит из такой ситуации? Нахожусь в обработчике IRQ. Надо запустить FIQ прерывания.
Если просто настроить аппаратуру и сбросить бит F в cprs, то прерывания пойдут, пока не выйду из обработчика IRQ, то есть пока cprs не перезапишется из IRQ sprs. Но мне то надо, чтобы прерывания продолжались и дальше. Напрашиваются следующие решения:
1. Менять содержимое бита F в IRQ sprs.
2. Сбросить F в начале main и дальше разрешать-запрещать FIQ через контроллер прерываний.
3. Вообще, запускать FIQ прерывания из фоновой программы, передавая туда команды из обработчика IRQ.
Как правильнее?