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

 
 
 
Reply to this topicStart new topic
> сложности с отладкой на AT91SAM7x, сложности с отладкой на AT91SAM7x
Понедельник
сообщение Aug 16 2007, 13:04
Сообщение #1


Частый гость
**

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



среда mVision, есть проект, вполне рабочий (результаты работы наблюдаю на LCD), проблема с отладкой.
Линкую код во флэш по адресу 0х10000, после загрузки и ресета флэш мапится по нулевому адресу, стартую прогу - все работает, однако при попытка просмотреть содержимое переменных пишет ошибку *** error 34: undefined identifier, также не пройтись по шагам в сишном коде, только в дисассемблере. Помогите решить проблему, я уже чего только только не менял - ничего не помогает crying.gif
Go to the top of the page
 
+Quote Post
Понедельник
сообщение Aug 16 2007, 14:37
Сообщение #2


Частый гость
**

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



вдогонку, можно ли, в режиме отладки вообще обойтись без флеш памяти ? я слинковал прогу(и код, и данные) в ОЗУ по адресу 0х200000, попыталса отладить, но загрузчик не желает, пишет
No Algorithm found for: 00200000H - 00007003H
Erase skipped!
смотрю мап файл , вроде все в норме, вот кусок из мапа
.text 0x00200000 0x95c
*startup.o(.text)
*(.text)
.text 0x00200000 0x168 sam7s.o
0x00200000 _startup
.text 0x00200168 0x2f0 lcd.o
0x00200188 Delay_
0x002002c4 Backlight
0x00200244 WriteSpiCommand
0x00200310 LCDSettings
0x00200168 Delaya
0x002002fc SetContrast
0x00200284 WriteSpiData
0x002001b8 InitLCD
0x002003f8 LCDWrite130x130bmp
.text 0x00200458 0x16c system.o
0x00200458 Delay_s
0x0020051c InitPeriphery
0x00200478 InitFrec

что ему еще нужно ?
Go to the top of the page
 
+Quote Post
Сергей Борщ
сообщение Aug 16 2007, 16:47
Сообщение #3


Гуру
******

Группа: Модераторы
Сообщений: 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)
Go to the top of the page
 
+Quote Post
Понедельник
сообщение Aug 16 2007, 18:38
Сообщение #4


Частый гость
**

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



Цитата(Сергей Борщ @ Aug 16 2007, 20:47) *
Да, можно. Только вы неправильно линкуете. Не забывайте, что обращение к векторам исключений происходит всегда в нулевых адресах, даже несмотря на то, что они физически лежат в адресах 0х200000 и отремаплены на нулевые. Поэтому два варианта линковки, и, соответственно, отладки:
1) Все линкуется в нулевые адреса, перед загрузкой скриптом отладчика делается ремап, программа грузится и работает в нулевых адресах
2) Вектора линкуются в 0х200000, но так, как будто бы они находятся в нулевых (не знаю как в кейле, у иара ключ -Q линкера), а все остальное в адреса 0х200040... И ремап делается перед загрузкой или после нее.


огромное спасибо за исчерпывающий ответ a14.gif
еще один вопросов, если не возражаете ? отчего отладчик не видит ни функций, ни переменнных, при линковке и,соответственно, загрузке кода по адресам от0х100000 (флэш) , данных - 0х200000(SRAM), хотя код исполняется корректно?
кстати, пробовал я линковать код по нулевым адресам, загрузчик не проглотил, пишет
No Algorithm found for: 00000000H - 00007003H
Erase skipped!

Сообщение отредактировал Понедельник - Aug 16 2007, 18:43
Go to the top of the page
 
+Quote Post
Сергей Борщ
сообщение Aug 16 2007, 20:55
Сообщение #5


Гуру
******

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



Цитата(Понедельник @ Aug 16 2007, 21:38) *
отчего отладчик не видит ни функций, ни переменнных
Я с кейлом не работал вообще, могу только предположить, что в объектный файл, который вы скармливаете отладчику, не включается отладочная информация. Надо смотреть ключи линкера, возможно использовать другой формат выходного файла. О! вспомнил - в книжке Тревора Мартина по LPC как раз подробно рассматривалась работа с кейлом. Поищите ее, еще недавно на нее куча ссылок была.
Цитата(Понедельник @ Aug 16 2007, 21:38) *
загрузчик не проглотил, пишет
No Algorithm found for: 00000000H - 00007003H
Erase skipped!
Тут пас. Надо ждать кого-то, кто с кейлом работает. DASM, ау!


--------------------
На любой вопрос даю любой ответ
"Write code that is guaranteed to work, not code that doesn’t seem to break" (C++ FAQ)
Go to the top of the page
 
+Quote Post
Понедельник
сообщение Aug 17 2007, 12:58
Сообщение #6


Частый гость
**

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



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



Ура !!! Вылечил я Кейл, наконец ? Клизма рулит tort.gif
Go to the top of the page
 
+Quote Post
defunct
сообщение Aug 17 2007, 22:33
Сообщение #7


кекс
******

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



Цитата(Понедельник @ Aug 17 2007, 15:58) *
Ура !!! ...

Так это было из-за этого... Кто бы мог подумать...

На будущее - иногда полезно читать и вникать в "build и command" log'и.
Go to the top of the page
 
+Quote Post
Понедельник
сообщение Aug 20 2007, 03:54
Сообщение #8


Частый гость
**

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



Цитата(defunct @ Aug 18 2007, 02:33) *
Так это было из-за этого... Кто бы мог подумать...

На будущее - иногда полезно читать и вникать в "build и command" log'и.



кто бы спорил, когда пришло их время - они и были прочитаны smile.gif
кстати, в логах ни слова про клизму -)) недорабатывают ребята в Кейле )

Сообщение отредактировал Понедельник - Aug 20 2007, 04:03
Go to the top of the page
 
+Quote Post

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

 


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


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