Цитата(Obam @ Jul 22 2015, 15:55)

В стек при обработке MemManageFault-исключения контекст сохраняется же: там и xPSR, и PC, и LR и проч. Не оно?
Да это понятно, что регистры сохраняются. В обработчике исключений это у меня всё используется.
Но, во-первых: исключение MPU может произойти например при записи в регион, который кеширован, и я не уверен, что PC не успеет к этому моменту переместиться на несколько команд.
Во-вторых: исключение из-за выполнения кода из региона со статусом XN=1 (запрет исполнения) как следует из описания ядра происходит не при
выполнении кода, а при
предвыборке кода,
т.е. когда PC ещё не дошёл до этого адреса.
Сейчас-то да, конечно, сужу по содержимому PC об адресе срабатывания MPU. Но в тоже время для Memory Manager fault и Bus fault есть спец. регистры, хранящие адрес fault-а. А для MPU (хоть он и генерит MMfault) - нет адреса