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

 
 
> сложности с отладкой на 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
 
Start new topic
Ответов
Понедельник
сообщение 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



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

 


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


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