Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: сложности с отладкой на AT91SAM7x
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > ARM
Понедельник
среда mVision, есть проект, вполне рабочий (результаты работы наблюдаю на LCD), проблема с отладкой.
Линкую код во флэш по адресу 0х10000, после загрузки и ресета флэш мапится по нулевому адресу, стартую прогу - все работает, однако при попытка просмотреть содержимое переменных пишет ошибку *** error 34: undefined identifier, также не пройтись по шагам в сишном коде, только в дисассемблере. Помогите решить проблему, я уже чего только только не менял - ничего не помогает crying.gif
Понедельник
вдогонку, можно ли, в режиме отладки вообще обойтись без флеш памяти ? я слинковал прогу(и код, и данные) в ОЗУ по адресу 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

что ему еще нужно ?
Сергей Борщ
Цитата(Понедельник @ Aug 16 2007, 17:37) *
вдогонку, можно ли, в режиме отладки вообще обойтись без флеш памяти ? я слинковал прогу(и код, и данные) в ОЗУ по адресу 0х200000
Да, можно. Только вы неправильно линкуете. Не забывайте, что обращение к векторам исключений происходит всегда в нулевых адресах, даже несмотря на то, что они физически лежат в адресах 0х200000 и отремаплены на нулевые. Поэтому два варианта линковки, и, соответственно, отладки:
1) Все линкуется в нулевые адреса, перед загрузкой скриптом отладчика делается ремап, программа грузится и работает в нулевых адресах
2) Вектора линкуются в 0х200000, но так, как будто бы они находятся в нулевых (не знаю как в кейле, у иара ключ -Q линкера), а все остальное в адреса 0х200040... И ремап делается перед загрузкой или после нее.
Понедельник
Цитата(Сергей Борщ @ 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, 21:38) *
отчего отладчик не видит ни функций, ни переменнных
Я с кейлом не работал вообще, могу только предположить, что в объектный файл, который вы скармливаете отладчику, не включается отладочная информация. Надо смотреть ключи линкера, возможно использовать другой формат выходного файла. О! вспомнил - в книжке Тревора Мартина по LPC как раз подробно рассматривалась работа с кейлом. Поищите ее, еще недавно на нее куча ссылок была.
Цитата(Понедельник @ Aug 16 2007, 21:38) *
загрузчик не проглотил, пишет
No Algorithm found for: 00000000H - 00007003H
Erase skipped!
Тут пас. Надо ждать кого-то, кто с кейлом работает. DASM, ау!
Понедельник
Цитата(Понедельник @ Aug 16 2007, 17:04) *
среда mVision, есть проект, вполне рабочий (результаты работы наблюдаю на LCD), проблема с отладкой.
Линкую код во флэш по адресу 0х10000, после загрузки и ресета флэш мапится по нулевому адресу, стартую прогу - все работает, однако при попытка просмотреть содержимое переменных пишет ошибку *** error 34: undefined identifier, также не пройтись по шагам в сишном коде, только в дисассемблере. Помогите решить проблему, я уже чего только только не менял - ничего не помогает crying.gif



Ура !!! Вылечил я Кейл, наконец ? Клизма рулит tort.gif
defunct
Цитата(Понедельник @ Aug 17 2007, 15:58) *
Ура !!! ...

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

На будущее - иногда полезно читать и вникать в "build и command" log'и.
Понедельник
Цитата(defunct @ Aug 18 2007, 02:33) *
Так это было из-за этого... Кто бы мог подумать...

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



кто бы спорил, когда пришло их время - они и были прочитаны smile.gif
кстати, в логах ни слова про клизму -)) недорабатывают ребята в Кейле )
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.