Подскажите, как правильно обеспечить синхронизацию между обработчиком прерывания и функцией, которая программирует железяку для выдачи прерываний. По моему хорошо бы было делать так:
void my_hardware_service(){
disable_irq(irq);// дождется завершения обработчиков прерывания
// программирование железки
. . .
// готово
enable_irq(irq); }
но вызывать disable_irq() для шаренных прерываний в доках не советуют. Как тогда обеспечить синхронизацию функций программирования устройств и функций обрабатывающих таймауты с обработчиком IRQ ?