ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Среда
26 марта
1505293 Топик полностью
il-2 (12.03.2025 06:13, просмотров: 67) ответил VladislavS. на Я уже писал про глобальный вкл/выкл прерываний. Это только бит MIE. Соответственно, вкл это "csrsi mstatus,8", а выкл "csrci mstatus,8". Зачем вы все MPIE дрюкаете? Его процессор при входе в исключение ставит.
Если честно - я тоже его дрюкаю :-) Просто потому, что так делается в китайских примерах. 

А еще я для запрета/разрешения прерываний пользую CSRW (запись) а не CSRS/CSRC (чтение/модификация/запись).

Только - при пользовании CSRW надо не забывать правильно заполнять остальные поля MSTATUS - MPP, MPOP, MPPOP. В типовом проекте эти поля константные, так что проблем нет.

В MPP записываем рабочий уровень привилегий (у меня Machine mode), а в MPOP и MPOP записываем состояние HPE (Hardware prologue/epilogue).

Рабочий способ, проверено на корках V3A, V4A, V4C