|
сложности с отладкой на AT91SAM7x, сложности с отладкой на AT91SAM7x |
|
|
|
Aug 16 2007, 13:04
|
Частый гость
 
Группа: Новичок
Сообщений: 76
Регистрация: 16-03-06
Пользователь №: 15 295

|
среда mVision, есть проект, вполне рабочий (результаты работы наблюдаю на LCD), проблема с отладкой. Линкую код во флэш по адресу 0х10000, после загрузки и ресета флэш мапится по нулевому адресу, стартую прогу - все работает, однако при попытка просмотреть содержимое переменных пишет ошибку *** error 34: undefined identifier, также не пройтись по шагам в сишном коде, только в дисассемблере. Помогите решить проблему, я уже чего только только не менял - ничего не помогает
|
|
|
|
|
 |
Ответов
|
Aug 16 2007, 16:47
|

Гуру
     
Группа: Модераторы
Сообщений: 8 455
Регистрация: 15-05-06
Из: Рига, Латвия
Пользователь №: 17 095

|
Цитата(Понедельник @ Aug 16 2007, 17:37)  вдогонку, можно ли, в режиме отладки вообще обойтись без флеш памяти ? я слинковал прогу(и код, и данные) в ОЗУ по адресу 0х200000 Да, можно. Только вы неправильно линкуете. Не забывайте, что обращение к векторам исключений происходит всегда в нулевых адресах, даже несмотря на то, что они физически лежат в адресах 0х200000 и отремаплены на нулевые. Поэтому два варианта линковки, и, соответственно, отладки: 1) Все линкуется в нулевые адреса, перед загрузкой скриптом отладчика делается ремап, программа грузится и работает в нулевых адресах 2) Вектора линкуются в 0х200000, но так, как будто бы они находятся в нулевых (не знаю как в кейле, у иара ключ -Q линкера), а все остальное в адреса 0х200040... И ремап делается перед загрузкой или после нее.
--------------------
На любой вопрос даю любой ответ"Write code that is guaranteed to work, not code that doesn’t seem to break" ( C++ FAQ)
|
|
|
|
|
Aug 16 2007, 18:38
|
Частый гость
 
Группа: Новичок
Сообщений: 76
Регистрация: 16-03-06
Пользователь №: 15 295

|
Цитата(Сергей Борщ @ Aug 16 2007, 20:47)  Да, можно. Только вы неправильно линкуете. Не забывайте, что обращение к векторам исключений происходит всегда в нулевых адресах, даже несмотря на то, что они физически лежат в адресах 0х200000 и отремаплены на нулевые. Поэтому два варианта линковки, и, соответственно, отладки: 1) Все линкуется в нулевые адреса, перед загрузкой скриптом отладчика делается ремап, программа грузится и работает в нулевых адресах 2) Вектора линкуются в 0х200000, но так, как будто бы они находятся в нулевых (не знаю как в кейле, у иара ключ -Q линкера), а все остальное в адреса 0х200040... И ремап делается перед загрузкой или после нее. огромное спасибо за исчерпывающий ответ еще один вопросов, если не возражаете ? отчего отладчик не видит ни функций, ни переменнных, при линковке и,соответственно, загрузке кода по адресам от0х100000 (флэш) , данных - 0х200000(SRAM), хотя код исполняется корректно? кстати, пробовал я линковать код по нулевым адресам, загрузчик не проглотил, пишет No Algorithm found for: 00000000H - 00007003H Erase skipped!
Сообщение отредактировал Понедельник - Aug 16 2007, 18:43
|
|
|
|
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0
|
|
|