Перейти к содержанию
    

Согласование форматов иара и студии.

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

В студии, еепром данные надо подгружать отдельно, они ж в сущности

берутся из периферийного устройства.По умолчанию еепром считается чистым.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

В студии, еепром данные надо подгружать отдельно, они ж в сущности

берутся из периферийного устройства.По умолчанию еепром считается чистым.

вот в точности такое же мнение сложилось, но иар то берет их из объектного файла а студию что не научили?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Всем привет. Беда меня постигла следующая: 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, что и получается если использовать иаровский дебагер.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Я тоже разрешил грузить, но в окне 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, что и получается если использовать иаровский дебагер.

Увы, раньше понедельника теперь проверить не смогу, но в понедельник проверю обязательно.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Если Вас не затруднит проверьте у себя такой примерчик:

 

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... и на этот раз все должно заработать. Вот такой простой способ :biggrin:. Может кто знает как попроще сделать?

 

Если я что-нибудь непонятно изложил, тогда читайте файл ...\avr\doc\postlink.htm там все написано.

ЗЫ Для того, чтобы постоянно не менять настройки проекта ИАРа, я создал дополнительный профиль типа debug...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Проверил, получилось тоже, что и у вас (я оказывается еепром-переменную инициализировал нулем). Но это дело поправимое. Для того чтобы заработало я сделал следующее:

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... и на этот раз все должно заработать. Вот такой простой способ :biggrin:. Может кто знает как попроще сделать?

 

Если я что-нибудь непонятно изложил, тогда читайте файл ...\avr\doc\postlink.htm там все написано.

ЗЫ Для того, чтобы постоянно не менять настройки проекта ИАРа, я создал дополнительный профиль типа debug...

Спасибо за исчерпывающий ответ. Пункты 1-4 лишние (достаточно установить профиль release и компилятор автоматом создаст hex-файлы которые РУКАМИ можно втулить в студию). Я так и поступил, но это неудобно.Так что вопрос остается открытым.

PS ВСЕХ ДАМ ПРАЗДНИКОМ!!!

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Пункты 1-4 лишние (достаточно установить профиль release и компилятор автоматом создаст hex-файлы которые РУКАМИ можно втулить в студию).

Да, действительно... если проект создается как AVR Studio compatible output... лишний раз убеждаюсь, что ларчик как всегда открывается просто :)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...