Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Аварийное завершение AVR Studio 4.12
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > AVR
Vitёk
Возникла необходимость использовать AVR. Для работы с ними были установлены AVR Studio 4.12 с сервис-паком 4 (build 498), и WinAVR 20070122.
Пробный код типа такого:
Код
int main(void)
{
  int i;
  for(i = 0;;i++);
  return 0;
}
билдится без ошибок, однако запуск симулятора приводит к аварийному завершению AVR Studio.
Где начать копать?
zorromen
Дык смотрите что написали ... цикл с i=0 до хрен знает чего ... и сразу return 0 c main ...
=GM=
Цитата(Vitёk @ Feb 25 2007, 16:03) *
Возникла необходимость использовать AVR. Для работы с ними были установлены AVR Studio 4.12 с сервис-паком 4 (build 498), и WinAVR 20070122.
Пробный код типа такого:
Код
int main(void)
{
  int i;
  for(i = 0;;i++);
  return 0;
}
билдится без ошибок, однако запуск симулятора приводит к аварийному завершению AVR Studio.
Где начать копать?

Не надо использовать оператор return 0. Возврат произойдёт, но куда?
Хотя может и не дойти до него, зависит от компилятора...В смысле, оператор
for лучше использовать для конечного числа циклов

Лучше сделайте так
Код
int main(void)
{
  int i;
  while(1)
  {
   for(i = 0;i<1000;i++);
   << ещё что-нибудь полезное>>
  }
}
bill_vs
Стало интересно. Попробовал у себя. (AVRStudio 4.12 SP2, IAR 4.12). Сделал самый простой проект (Create new project-Empty project, options v1 small), main от автора темы. Загрузил в AVRStudio (device ATmega8), и полетел: message AVR Simulator: Invalid opcode 0xffff at address
При разбое оказалось, что линкер взял родной lnk1s.xcl, а там CSTACK 0x60 – 0x105F, RSTACK 0x1060 – 0x115F. При первом же возврате из п/п (ещё в STARTUP) происходит улёт (память 0x105F не симулируется для ATmega8).
WinAVR не знаю, но возможно проблемы похожи.
singlskv
Если у Вас все компилируется но вылетает при попытке просимулировать,
попробуйте скомпилировать, затем создать новый проект из файла progname.elf
и уже с ним симулировать
*.elf - результат компиляции с отладочной информацией
aesok
Цитата(Vitёk @ Feb 25 2007, 19:03) *
Возникла необходимость использовать AVR. Для работы с ними были установлены AVR Studio 4.12 с сервис-паком 4 (build 498), и WinAVR 20070122.
...
Где начать копать?

Поставить AVR Studio 4.13. AVR Studio 4.12 не понимает '.elf' сгенерированые WinAVR-20070122.

Анатолий.
Dopler
Цитата(aesok @ Feb 26 2007, 08:58) *
Поставить AVR Studio 4.13. AVR Studio 4.12 не понимает '.elf' сгенерированые WinAVR-20070122.

Анатолий.


Имеется в виду AVR Studio 4.13 бета?
aesok
Цитата(Dopler @ Feb 26 2007, 09:22) *
Цитата(aesok @ Feb 26 2007, 08:58) *

Поставить AVR Studio 4.13. AVR Studio 4.12 не понимает '.elf' сгенерированые WinAVR-20070122.

Анатолий.


Имеется в виду AVR Studio 4.13 бета?

Да.
Vitёk
zorromen, =GM=: криво написанный код либо не компилится/не линкуется, либо в симуляторе видно, что он криво написан. А если Винда закрывает среду разработки с потерей несохранённых данных - это уже проблема среды разработки. Моей вины тут как бы нет...
Цитата
Поставить AVR Studio 4.13.
Почитал здесь отклики о ней, ставить расхотелось. sad.gif А ни кто не знает, откуда можно утянуть прошлогодний WinAVR?
aesok
Цитата(Vitёk @ Feb 26 2007, 11:00) *
А ни кто не знает, откуда можно утянуть прошлогодний WinAVR?


http://sourceforge.net/project/showfiles.php?group_id=68108
Vitёk
Если точнее:
http://sourceforge.net/project/showfiles.p...ackage_id=66543


Добавлено через 15 минут:

Поставил WinAVR 20060421 - сразу полегчало. smile.gif aesok, спасибо за подсказки! a14.gif
А вообще, начинать освоение новых контроллеров с подобных несуразностей - это как-то некомильфо... Первое впечатление не самое приятное. angry.gif
aesok
Цитата(Vitёk @ Feb 26 2007, 11:18) *
Поставил - сразу полегчало. smile.gif aesok, спасибо за подсказки! a14.gif
А вообще, начинать освоение новых контроллеров с подобных несуразностей - это как-то некомильфо... Первое впечатление не самое приятное. angry.gif


Все несуразности только от того, что вы не прочитали Release Notes для WinAVR-20070122:

- Change the DWARF2 debug information from 16-bit addresses to 32-bit addresses.
This now allows debugging of code above 64K, including bootloaders for the
ATmega128 and ATmega1281, and debugging of the ATmega2560 and ATmega2561 devices.
This requires a version of AVR Studio that has a new ELF/DWARF2 parser (> 4.12).

Анатолий.
Vitёk
Да уж, "прокосячил"... Особенно учитывая то, что Release Notes не лежат на виду, так же как и не предлагается прочитать их перед скачиванием. Ну да ладно...
mdmitry
У меня стоит WinAVR-20070122, AVRStudio 4.12 с последним апдейтом, но не 4.13. Старый проект специально просмотрел, все работает. В отладке стоит coff, а не DWARF2.
Vitёk
Цитата
В отладке стоит coff, а не DWARF2
Это в "опциях проекта" -> "линкер" или же руками прописано в makefile?

А тем временем выплыл ещё один глюк симулятора. Проект для Tiny24: разрешаю работу TIMER_COUNTER_1, и автоинкремент происходит не с регистром TCNT1 (адрес 0x2d), а с PRR (адрес 0x00).
В версии 4.13(528) это устранено, пришлось ставить. И WinAVR-20070122 за компанию. smile.gif
mdmitry
Цитата(Vitёk @ Mar 2 2007, 22:27) *
Цитата
В отладке стоит coff, а не DWARF2
Это в "опциях проекта" -> "линкер" или же руками прописано в makefile?

строка в makefile, сильно правил после программы генерации Mfile.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.