реклама на сайте
подробности

 
 
 
Reply to this topicStart new topic
> Адрес MPU fault-а, кортекс М4
jcxz
сообщение Jul 22 2015, 08:35
Сообщение #1


Гуру
******

Группа: Свой
Сообщений: 5 228
Регистрация: 3-07-08
Из: Омск
Пользователь №: 38 713



Закрыл недопустимую для выполнения область памяти при помощи MPU. Соответственно - при попытке выполнения оттуда получаю MemManage Fault.
Но регистр MMFSR содержит значение ==1. Т.е. - содержимое MMFAR невалидно.
Как получить адрес fault-а? Есть-ли способ?
Go to the top of the page
 
+Quote Post
Obam
сообщение Jul 22 2015, 09:55
Сообщение #2


Знающий
****

Группа: Участник
Сообщений: 756
Регистрация: 14-11-14
Пользователь №: 83 663



В стек при обработке MemManageFault-исключения контекст сохраняется же: там и xPSR, и PC, и LR и проч. Не оно?


--------------------
Пролетарий умственного труда.
Go to the top of the page
 
+Quote Post
jcxz
сообщение Jul 22 2015, 10:09
Сообщение #3


Гуру
******

Группа: Свой
Сообщений: 5 228
Регистрация: 3-07-08
Из: Омск
Пользователь №: 38 713



Цитата(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) - нет адреса sad.gif
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 7th July 2025 - 10:21
Рейтинг@Mail.ru


Страница сгенерированна за 0.01365 секунд с 7
ELECTRONIX ©2004-2016