|
|
  |
Согласование форматов иара и студии., слышал звон да не нашел где он... |
|
|
|
Mar 2 2006, 20:29
|
Участник

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

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

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

|
Цитата(beer_warrior @ Mar 2 2006, 22:39)  В студии, еепром данные надо подгружать отдельно, они ж в сущности берутся из периферийного устройства.По умолчанию еепром считается чистым. вот в точности такое же мнение сложилось, но иар то берет их из объектного файла а студию что не научили?
|
|
|
|
|
Mar 3 2006, 08:37
|

Знающий
   
Группа: Свой
Сообщений: 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, и спросила грузить их или нет. Разрешил грузить и все заработало.
|
|
|
|
|
Mar 3 2006, 10:57
|
Участник

Группа: Свой
Сообщений: 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, что и получается если использовать иаровский дебагер.
|
|
|
|
|
Mar 6 2006, 08:19
|

Знающий
   
Группа: Свой
Сообщений: 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: птичка  Давим OK. 4)В меню tools, выбираем появившийся раздел Postlink, в результате чего (если все было сделано правильно) в папке где лежит файл *.smp появляются еще три файла с расширениями *.hex, один из них с eeprom в имени файла ,содержит прошивку еепром которую можно подсунуть студии для начальной загрузки инициализированных данных в еепром; 5) загружаем в студию проект; 6)в меню Debug выбираем раздел UP/Download Memoru, в появившемся окне выбираем ЕЕПРОМ и указываем путь к hex-файлу с прошивкой, нажимаем Load from file... и на этот раз все должно заработать. Вот такой простой способ  . Может кто знает как попроще сделать? Если я что-нибудь непонятно изложил, тогда читайте файл ...\avr\doc\postlink.htm там все написано. ЗЫ Для того, чтобы постоянно не менять настройки проекта ИАРа, я создал дополнительный профиль типа debug...
|
|
|
|
|
Mar 8 2006, 15:11
|
Участник

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

|
[/quote] Цитата(Old1 @ Mar 6 2006, 10:19)  Проверил, получилось тоже, что и у вас (я оказывается еепром-переменную инициализировал нулем). Но это дело поправимое. Для того чтобы заработало я сделал следующее: 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: птичка  Давим OK. 4)В меню tools, выбираем появившийся раздел Postlink, в результате чего (если все было сделано правильно) в папке где лежит файл *.smp появляются еще три файла с расширениями *.hex, один из них с eeprom в имени файла ,содержит прошивку еепром которую можно подсунуть студии для начальной загрузки инициализированных данных в еепром; 5) загружаем в студию проект; 6)в меню Debug выбираем раздел UP/Download Memoru, в появившемся окне выбираем ЕЕПРОМ и указываем путь к hex-файлу с прошивкой, нажимаем Load from file... и на этот раз все должно заработать. Вот такой простой способ  . Может кто знает как попроще сделать? Если я что-нибудь непонятно изложил, тогда читайте файл ...\avr\doc\postlink.htm там все написано. ЗЫ Для того, чтобы постоянно не менять настройки проекта ИАРа, я создал дополнительный профиль типа debug... Спасибо за исчерпывающий ответ. Пункты 1-4 лишние (достаточно установить профиль release и компилятор автоматом создаст hex-файлы которые РУКАМИ можно втулить в студию). Я так и поступил, но это неудобно.Так что вопрос остается открытым. PS ВСЕХ ДАМ ПРАЗДНИКОМ!!!
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|