Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Согласование форматов иара и студии.
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > AVR
Balaganov
Всем привет. Беда меня постигла следующая: IAR 4.12a, Astudio 4.12, JTAGICE, код содержит несколько переменных, объявленных как глобальные и расположенные в eeprom. К ним идет, по ходу, как запись так и чтение. При этом студия на отрез отказывается воспринимать эти переменные, в место них сплошные ff (в лучшем случае). Иаровский дебагер работает на ура, но как-то студия роднее. Читал не так давно ветку здесь по этому поводу (помнится что у студии свой формат восприятия eeprom), но поиски результатов не дали. Подскажите как ее (студию) заставить воспринимать генерированные иаром переменные, расположенные в eeprom.
beer_warrior
В студии, еепром данные надо подгружать отдельно, они ж в сущности
берутся из периферийного устройства.По умолчанию еепром считается чистым.
Balaganov
Цитата(beer_warrior @ Mar 2 2006, 22:39) *
В студии, еепром данные надо подгружать отдельно, они ж в сущности
берутся из периферийного устройства.По умолчанию еепром считается чистым.

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

Попробовал, в студии аналогичный вашему пример (с чтением и записью переменных в eeprom). При загрузке проекта студия определила, что объектный файл содержит инициализированные переменные в eeprom, и спросила грузить их или нет. Разрешил грузить и все заработало.
Balaganov
Цитата(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, что и получается если использовать иаровский дебагер.
Old1
Цитата(Balaganov @ Mar 3 2006, 14:57) *
Я тоже разрешил грузить, но в окне 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, что и получается если использовать иаровский дебагер.

Увы, раньше понедельника теперь проверить не смогу, но в понедельник проверю обязательно.
Old1
Цитата(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...
Balaganov
[/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: птичка 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...

Спасибо за исчерпывающий ответ. Пункты 1-4 лишние (достаточно установить профиль release и компилятор автоматом создаст hex-файлы которые РУКАМИ можно втулить в студию). Я так и поступил, но это неудобно.Так что вопрос остается открытым.
PS ВСЕХ ДАМ ПРАЗДНИКОМ!!!
Kovrov
test
Old1
Цитата(Balaganov @ Mar 8 2006, 19:11) *
Пункты 1-4 лишние (достаточно установить профиль release и компилятор автоматом создаст hex-файлы которые РУКАМИ можно втулить в студию).

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