ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Среда
27 ноября
1266945 Топик полностью
Boвa (10.12.2022 08:09, просмотров: 210) ответил Лaгyнoв на Вот когда я ставлю строку - __disable_irq (); , то реально запрещаю всё? Меня в первую очередь беспокоит SysTick. Чтобы он не лез. Ну а всякие там NMI_Handler и HardFault_Handler понятно. Будем надеяться, что их не будет. :-)
Обработку NMI_Handler вы не запретите с помощью disable_irq () по определению. HardFault_Handler с веротностью 99% - нет ибо это скорее всего тоже вид Non-Maskable Interrupt. 

Про систик и прочее.


1)Если у вас крутится в проце линукс то скорее всего вы не запрещаете disable_irq () ничего, кроме доступа к процессору для своего потока.
2) Возможно стоит посмотреть асм код не факт что в disable_irq () вообще есть какая-то инструкция CLI.
3) Если у вас в вашем проце есть режим супервайзера/пользователя есть то на уровне пользователя инструкции CLI исполняются как Nop
4) В некоторых системах (Расберри пи например) и ядро с уровнем супервайзера крутится в виртуальной машине, а управляет ядром какая-то хтонь зашитая в некую память недоступную для программирования вообще. Эта хтонь мониторит пиитание и выводит руну Зиг на экран при проблемах с ним.