Нет, не приведёт. У AVR просто бит I выполнял две функции - (1) запрет/разрешение прерываний и (2) приоритет исполняемого кода. У ARM эти функции разделены, disable_irq и enable_irq управляют только битом в регистре PRIMASK (запрет/разрешение), а текущий приоритет вычисляется довольно хитрым способом, описанном в ARMv7-M Architecture Reference Manual, на основе BASEPRI, PRIMASK, FAULTMASK и приоритетов всех активных обработчиков, т.е. тех, что начали исполняться, но были прерваны более приоритетным запросом. Смотреть "Execution priority and priority boosting" в упомянутом мануале.
--------------------
Russia est omnis divisa in partes octo.
|