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

 
 
> at91rm9200 - неинициализированный указатель, неинициализированный указатель
sergeeff
сообщение Jul 26 2007, 15:42
Сообщение #1


Профессионал
*****

Группа: Свой
Сообщений: 1 481
Регистрация: 10-04-05
Пользователь №: 4 007



Команда разработчиков перетаскивает большой старый проект на at91rm9200. Где-то происходит запись полей стуктуры, которая не была должным образом инициализирована. Ясно, что данные пишутся куда-то в область около нулевых адресов, затирая при этом вектора прерываний. Нет ли каких мыслей по отладке таких событий?
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов (1 - 7)
AlexBoy
сообщение Jul 26 2007, 21:30
Сообщение #2


Местный
***

Группа: Свой
Сообщений: 205
Регистрация: 19-12-05
Из: Kiev
Пользователь №: 12 394



Цитата(sergeeff @ Jul 26 2007, 18:42) *
Команда разработчиков перетаскивает большой старый проект на at91rm9200. Где-то происходит запись полей стуктуры, которая не была должным образом инициализирована. Ясно, что данные пишутся куда-то в область около нулевых адресов, затирая при этом вектора прерываний. Нет ли каких мыслей по отладке таких событий?

Я такие вещи стараюсь отлавливать на PC, в С++ Buildere есть режим компиляции с CodeGuard. Отлавливаются неправильные выделения и освобождения памяти.
Go to the top of the page
 
+Quote Post
sergeeff
сообщение Jul 27 2007, 09:44
Сообщение #3


Профессионал
*****

Группа: Свой
Сообщений: 1 481
Регистрация: 10-04-05
Пользователь №: 4 007



Идея здравая. Я тоже стараюсь сначала вновь разрабатываемые модули погонять на модели на PC. Очень помогает и убыстряет весь процесс.

Но тут слишком много завязок на железо. Собственно идеи были как-то задействовать MMU. Пробовал первый мегабайт делать read-only и принудительно что-то по тем адресам писать. По идее должен бы возникать data abort exception? У меня реакции - никакой. Или эта идея левая?
Go to the top of the page
 
+Quote Post
e-yes
сообщение Jul 27 2007, 20:56
Сообщение #4


Участник
*

Группа: Новичок
Сообщений: 30
Регистрация: 16-06-07
Пользователь №: 28 483



Цитата(sergeeff @ Jul 27 2007, 13:44) *
Но тут слишком много завязок на железо. Собственно идеи были как-то задействовать MMU. Пробовал первый мегабайт делать read-only и принудительно что-то по тем адресам писать. По идее должен бы возникать data abort exception? У меня реакции - никакой. Или эта идея левая?

А в каком режиме? IMHO, в System или Supervisor может и не "вылетать", нет?
Go to the top of the page
 
+Quote Post
sergeeff
сообщение Jul 27 2007, 21:57
Сообщение #5


Профессионал
*****

Группа: Свой
Сообщений: 1 481
Регистрация: 10-04-05
Пользователь №: 4 007



В SYSTEM. Только я чего-то не читал нигде, что появление exception зависит от режима.
Go to the top of the page
 
+Quote Post
Dron_Gus
сообщение Jul 30 2007, 08:30
Сообщение #6


Профессионал
*****

Группа: Свой
Сообщений: 1 202
Регистрация: 9-01-05
Из: Санкт-Петербург
Пользователь №: 1 861



Embedded Trace Macrocell: ETM9 Rev2a
...
– Four Pairs of Address Comparators
– Two Data Comparators
...

Используйте. Кажется J-Link прекрасно ставит эти точки останова.


--------------------
Если сверху смотреть, то сбоку кажется, что снизу ничего не видно.
Go to the top of the page
 
+Quote Post
defunct
сообщение Aug 1 2007, 16:48
Сообщение #7


кекс
******

Группа: Свой
Сообщений: 3 825
Регистрация: 17-12-05
Из: Киев
Пользователь №: 12 326



Можно проинициализировать MMU с запретом записи в "около нулевые адреса". Будет генериться Data Abort при попытке таких записей.
Go to the top of the page
 
+Quote Post
sergeeff
сообщение Aug 2 2007, 05:24
Сообщение #8


Профессионал
*****

Группа: Свой
Сообщений: 1 481
Регистрация: 10-04-05
Пользователь №: 4 007



Ну я так и пробовал делать. Первый мегабайт адресов объявил как read-only. И туда явно пробовал писать. Ровным счетом ничего не происходит. Что-то делаю не так?
Go to the top of the page
 
+Quote Post

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

 


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


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