|
Prefetch abort |
|
|
|
Jun 5 2014, 06:40
|
Знающий
   
Группа: Свой
Сообщений: 565
Регистрация: 22-02-13
Пользователь №: 75 748

|
Пытаюсь найти ошибку, приводящую к prefetch abort. После остановки программы в отладчике прочитал регистры. R13 для SVC, FIQ, IRQ не превосходит границы областей, выделенных под соответствующие стеки. То есть их переполнения нет. При этом PC = FC13FFFC. Огромное число, которого не может быть. R14 = 00000000 в режиме SVC, в других режимах - огромные числа. Так, R14_abt = 20000097 (как он получился нечетным?). Поэтому SUBS PC,R14_abt,#4 не помогает. Таких огромных адресов нет. Как в данном случае понять, где возникает ошибка?
|
|
|
|
|
 |
Ответов
|
Jun 5 2014, 07:22
|
Знающий
   
Группа: Свой
Сообщений: 565
Регистрация: 22-02-13
Пользователь №: 75 748

|
Спасибо за ответ. Цитата(jcxz @ Jun 5 2014, 15:26)  Останавливаете после уже "улёта" в неизвестность? Здесь отладчик собственный, нестандартный. Он только для данного процессора, который аналогичен ARM7. Так вот отладчик останавливает программу автоматически и выдает сообщение об ошибке. Но, думаю, вы правы. Всё равно какието инструкции выполняются за это время.
|
|
|
|
|
Jun 5 2014, 08:25
|

неотягощённый злом
     
Группа: Свой
Сообщений: 2 746
Регистрация: 31-01-08
Из: Санкт-Петербург
Пользователь №: 34 643

|
Цитата(Grizzzly @ Jun 5 2014, 15:32)  За все ARMV7 не скажу, а для ARMV7-M можно написать обработчик прерывания HardFault и там вывести в консоль значения регистров и их проанализировать. Вот тут внятно описано как.
--------------------
“Будьте внимательны к своим мыслям - они начало поступков” (Лао-Цзы)
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|