Маскирование прерываний
Временный запрет процессору принимать прерывания — обычно чтобы защитить несколько строк кода, которые нельзя прерывать.
Замаскированное прерывание не теряется: оно ждёт в состоянии pending, пока маска не снимется. Но если за это время то же прерывание сработает дважды, уцелеет лишь одно, так что долгие окна маскирования теряют события. На Cortex-M PRIMASK (cpsid i, __disable_irq()) блокирует всё, кроме NMI и HardFault, а BASEPRI отсекает только прерывания ниже заданного приоритета.
Именно поэтому FreeRTOS использует BASEPRI: критические секции ядра блокируют лишь те прерывания, которым разрешено обращаться к RTOS, а более приоритетный цикл управления двигателем продолжает работать как ни в чём не бывало. Каждая микросекунда в замаскированном состоянии напрямую прибавляется к худшей задержке прерывания.