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

 
 
> Согласование форматов иара и студии., слышал звон да не нашел где он...
Balaganov
сообщение Mar 2 2006, 20:29
Сообщение #1


Участник
*

Группа: Свой
Сообщений: 41
Регистрация: 16-02-05
Пользователь №: 2 688



Всем привет. Беда меня постигла следующая: IAR 4.12a, Astudio 4.12, JTAGICE, код содержит несколько переменных, объявленных как глобальные и расположенные в eeprom. К ним идет, по ходу, как запись так и чтение. При этом студия на отрез отказывается воспринимать эти переменные, в место них сплошные ff (в лучшем случае). Иаровский дебагер работает на ура, но как-то студия роднее. Читал не так давно ветку здесь по этому поводу (помнится что у студии свой формат восприятия eeprom), но поиски результатов не дали. Подскажите как ее (студию) заставить воспринимать генерированные иаром переменные, расположенные в eeprom.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Old1
сообщение Mar 3 2006, 08:37
Сообщение #2


Знающий
****

Группа: Свой
Сообщений: 697
Регистрация: 26-07-05
Из: Могилев
Пользователь №: 7 095



Цитата(Balaganov @ Mar 3 2006, 00:29) *
Всем привет. Беда меня постигла следующая: IAR 4.12a, Astudio 4.12, JTAGICE, код содержит несколько переменных, объявленных как глобальные и расположенные в eeprom. К ним идет, по ходу, как запись так и чтение. При этом студия на отрез отказывается воспринимать эти переменные, в место них сплошные ff (в лучшем случае). Иаровский дебагер работает на ура, но как-то студия роднее. Читал не так давно ветку здесь по этому поводу (помнится что у студии свой формат восприятия eeprom), но поиски результатов не дали. Подскажите как ее (студию) заставить воспринимать генерированные иаром переменные, расположенные в eeprom.

Попробовал, в студии аналогичный вашему пример (с чтением и записью переменных в eeprom). При загрузке проекта студия определила, что объектный файл содержит инициализированные переменные в eeprom, и спросила грузить их или нет. Разрешил грузить и все заработало.
Go to the top of the page
 
+Quote Post
Balaganov
сообщение Mar 3 2006, 10:57
Сообщение #3


Участник
*

Группа: Свой
Сообщений: 41
Регистрация: 16-02-05
Пользователь №: 2 688



Цитата(Old1 @ Mar 3 2006, 10:37) *
Цитата(Balaganov @ Mar 3 2006, 00:29) *

Всем привет. Беда меня постигла следующая: IAR 4.12a, Astudio 4.12, JTAGICE, код содержит несколько переменных, объявленных как глобальные и расположенные в eeprom. К ним идет, по ходу, как запись так и чтение. При этом студия на отрез отказывается воспринимать эти переменные, в место них сплошные ff (в лучшем случае). Иаровский дебагер работает на ура, но как-то студия роднее. Читал не так давно ветку здесь по этому поводу (помнится что у студии свой формат восприятия eeprom), но поиски результатов не дали. Подскажите как ее (студию) заставить воспринимать генерированные иаром переменные, расположенные в eeprom.

Попробовал, в студии аналогичный вашему пример (с чтением и записью переменных в eeprom). При загрузке проекта студия определила, что объектный файл содержит инициализированные переменные в eeprom, и спросила грузить их или нет. Разрешил грузить и все заработало.

Я тоже разрешил грузить, но в окне memory->eeprom не вижу своих переменных!
Если Вас не затруднит проверьте у себя такой примерчик:

volatile __eeprom unsigned char e_var=100;
volatile unsigned char var=0;

void main( void )
{
var=e_var;
var++;
e_var=var;
while(1);
}

У меня в итоге var=e_var=1, хотя по идее они должны быть равны 101, что и получается если использовать иаровский дебагер.
Go to the top of the page
 
+Quote Post
Old1
сообщение Mar 6 2006, 08:19
Сообщение #4


Знающий
****

Группа: Свой
Сообщений: 697
Регистрация: 26-07-05
Из: Могилев
Пользователь №: 7 095



Цитата(Balaganov @ Mar 3 2006, 14:57) *
Если Вас не затруднит проверьте у себя такой примерчик:

volatile __eeprom unsigned char e_var=100;
volatile unsigned char var=0;

void main( void )
{
var=e_var;
var++;
e_var=var;
while(1);
}

У меня в итоге var=e_var=1, хотя по идее они должны быть равны 101, что и получается если использовать иаровский дебагер.

Проверил, получилось тоже, что и у вас (я оказывается еепром-переменную инициализировал нулем). Но это дело поправимое. Для того чтобы заработало я сделал следующее:
1)установил формат выходного файла (в ИАРе)- simple. (это делается в настройках проекта, раздел:linker, закладка:output, выпадающее окошко:output format); установил расширение выходного файла *.smp (чтобы его ни с чем не перепутать);
2)скомпилировал проект, получил файл *.smp;
3)в меню tools, выбрал раздел Configure Tools и заполнил строки в появившемся окне следующим образом:
Menu Text: Postlink
Command: <укажите путь к файлу postlink.bat (он лежит в папке bin)>
Argument: <полный путь скомпилированному к файлу *.smp> $TOOLKIT_DIR$\bin
Initial Directory: <путь к папке где лежит ****.smp>
Redirect to Outpyt Window: птичка smile.gif
Давим OK.
4)В меню tools, выбираем появившийся раздел Postlink, в результате чего (если все было сделано правильно) в папке где лежит файл *.smp появляются еще три файла с расширениями *.hex, один из них с eeprom в имени файла ,содержит прошивку еепром которую можно подсунуть студии для начальной загрузки инициализированных данных в еепром;
5) загружаем в студию проект;
6)в меню Debug выбираем раздел UP/Download Memoru, в появившемся окне выбираем ЕЕПРОМ и указываем путь к hex-файлу с прошивкой, нажимаем Load from file... и на этот раз все должно заработать. Вот такой простой способ biggrin.gif. Может кто знает как попроще сделать?

Если я что-нибудь непонятно изложил, тогда читайте файл ...\avr\doc\postlink.htm там все написано.
ЗЫ Для того, чтобы постоянно не менять настройки проекта ИАРа, я создал дополнительный профиль типа debug...
Go to the top of the page
 
+Quote Post



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

 


RSS Текстовая версия Сейчас: 22nd July 2025 - 16:45
Рейтинг@Mail.ru


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