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

 
 
> Как прочитать link register в переменную, IAR5.11 + SAM7X
xelax
сообщение Jun 24 2008, 06:43
Сообщение #1


Местный
***

Группа: Свой
Сообщений: 370
Регистрация: 7-11-06
Пользователь №: 22 035



Портирую код из arm-elf-gcc в iar, стал возникать perfetch abort. Хочу почитать LR в локальную переменную в обработчике этой исключительной ситуации, но в синтаксисе IARа пока не силён.

Кто-нибудь знает как это сделать?
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
aaarrr
сообщение Jun 24 2008, 07:05
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448



У атмеловких ARM'ов есть Abort Status Register и Abort Address Status Register, посмотрите описание Memory Controller'а.

А для извлечения LR и остальных регистров лучше писать свой обработчик.
Go to the top of the page
 
+Quote Post
xelax
сообщение Jun 24 2008, 07:27
Сообщение #3


Местный
***

Группа: Свой
Сообщений: 370
Регистрация: 7-11-06
Пользователь №: 22 035



Цитата(aaarrr @ Jun 24 2008, 11:05) *
У атмеловких ARM'ов есть Abort Status Register и Abort Address Status Register, посмотрите описание Memory Controller'а.

А для извлечения LR и остальных регистров лучше писать свой обработчик.


Есть то он есть, но там адрес записан, по которому неправильный доступ был, а в каком месте кода он произошёл озябнешь искать, особенно если код пишется несколькими людьми и не один месяц.

Самый простой вариант посмотреть адрес возврата из прерывания, а следовательно предыдущая инструкция вызвала исключение. Для этого необходимо прочитать LR регистр и посчитать смещение. А как это сделать на IAR C я не умею. 05.gif
Go to the top of the page
 
+Quote Post



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

 


RSS Текстовая версия Сейчас: 23rd July 2025 - 02:59
Рейтинг@Mail.ru


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