На процессорах Cortex-M с MPU (давайте использовать Cortex-M4, чтобы быть конкретным, но я уверен, что ответ такой же, например, для M3), в каком режиме привилегий выполняется стекирование аппаратного исключения в w.r.t MPU?Являются ли исключения сложными аппаратными средствами Cortex-M в режиме потока или обработчика?
Предположим, что я работаю в режиме непривилегированного потока, используя стек процесса (PSP), при этом MPU настроен на прием записей только в пределах определенной области (например, процесс пользовательского режима). Когда возникает исключение, до выполнения обработчиком (в режиме обработчика), аппаратные стеки регистрируют r0-r3, lr, pc и т. Д. На PSP. Это также происходит в режиме непривилегированного потока?
В частности, предположим, что процесс устанавливает его в какую-либо произвольную точку в памяти, которую не следует разрешать для записи, приведет ли к сбою исключения в ошибке памяти?
Некоторое уточнение: бит MSTKERR в статусе неисправности MemManage Регистрация (MMFSR) указывает, произошла ли ошибка доступа к памяти во время стекирования для записи исключения. Таким образом, ясно, что во время записи исключений может произойти сбой памяти, но я в основном спрашиваю, обрабатывает ли он обращения к памяти, как если бы он находился в привилегированном или непривилегированном режиме (например, если бит PRIVDEFENA в регистре управления MPU равен 1) – exobrain