| Предыдущий | Следующий |
| ERROR_GPIO_INCOMPATIBLE_CONNECT_MODE | ERROR_CANNOT_SWITCH_RUNLEVEL |
ERROR_GPIO_INTERRUPT_ALREADY_UNMASKED
Что означает ERROR_GPIO_INTERRUPT_ALREADY_UNMASKED
ERROR_GPIO_INTERRUPT_ALREADY_UNMASKED указывает на рассогласование конечного автомата GPIO-прерывания: запрос на разблокировку пришёл, когда линия уже находилась в разрешённом состоянии. Повторный вызов нельзя считать безусловно идемпотентным.
Что проверить
- Сопоставьте controller, pin и последние вызовы mask/unmask для одной и той же линии.
- Проверьте гонки между enable/disable, переходами питания, sleep/resume и остановкой устройства.
- Храните программное состояние под той же синхронизацией, которая защищает жизненный цикл прерывания.
- После ошибки перечитайте фактическое состояние контроллера, а не полагайтесь только на кешированный флаг драйвера.
Как подтвердить исправление
Исправление подтверждается последовательностью переходов masked → unmasked без повторного unmask для одной generation устройства.
Технические ссылки
Нужно найти другой код? Найти другой код состояния или ошибки.
