|
Аварийное завершение AVR Studio 4.12, при попытке симуляции |
|
|
|
Feb 25 2007, 19:03
|

Местный
  
Группа: Свой
Сообщений: 272
Регистрация: 17-01-05
Из: Ростов-на-Дону
Пользователь №: 2 018

|
Возникла необходимость использовать AVR. Для работы с ними были установлены AVR Studio 4.12 с сервис-паком 4 (build 498), и WinAVR 20070122. Пробный код типа такого: Код int main(void) { int i; for(i = 0;;i++); return 0; } билдится без ошибок, однако запуск симулятора приводит к аварийному завершению AVR Studio. Где начать копать?
--------------------
/* Всё хорошо в меру. */
|
|
|
|
|
Feb 25 2007, 19:36
|

Ambidexter
    
Группа: Свой
Сообщений: 1 589
Регистрация: 22-06-06
Из: Oxford, UK
Пользователь №: 18 282

|
Цитата(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++); << ещё что-нибудь полезное>> } }
--------------------
Делай сразу хорошо, плохо само получится
|
|
|
|
|
Feb 25 2007, 21:24
|
Участник

Группа: Участник
Сообщений: 50
Регистрация: 16-04-05
Из: СПб
Пользователь №: 4 208

|
Стало интересно. Попробовал у себя. (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 не знаю, но возможно проблемы похожи.
|
|
|
|
|
Feb 26 2007, 08:58
|
Знающий
   
Группа: Участник
Сообщений: 596
Регистрация: 26-05-06
Из: Москва
Пользователь №: 17 484

|
Цитата(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. Анатолий.
|
|
|
|
|
Feb 26 2007, 09:22
|
Местный
  
Группа: Свой
Сообщений: 437
Регистрация: 23-04-05
Из: Таганрог
Пользователь №: 4 425

|
Цитата(aesok @ Feb 26 2007, 08:58)  Поставить AVR Studio 4.13. AVR Studio 4.12 не понимает '.elf' сгенерированые WinAVR-20070122.
Анатолий. Имеется в виду AVR Studio 4.13 бета?
|
|
|
|
|
Feb 26 2007, 09:43
|
Знающий
   
Группа: Участник
Сообщений: 596
Регистрация: 26-05-06
Из: Москва
Пользователь №: 17 484

|
Цитата(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 бета? Да.
|
|
|
|
|
Feb 26 2007, 11:00
|

Местный
  
Группа: Свой
Сообщений: 272
Регистрация: 17-01-05
Из: Ростов-на-Дону
Пользователь №: 2 018

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

Местный
  
Группа: Свой
Сообщений: 272
Регистрация: 17-01-05
Из: Ростов-на-Дону
Пользователь №: 2 018

|
Если точнее: http://sourceforge.net/project/showfiles.p...ackage_id=66543Добавлено через 15 минут: Поставил WinAVR 20060421 - сразу полегчало. aesok, спасибо за подсказки! А вообще, начинать освоение новых контроллеров с подобных несуразностей - это как-то некомильфо... Первое впечатление не самое приятное.
--------------------
/* Всё хорошо в меру. */
|
|
|
|
|
Feb 26 2007, 12:20
|
Знающий
   
Группа: Участник
Сообщений: 596
Регистрация: 26-05-06
Из: Москва
Пользователь №: 17 484

|
Цитата(Vitёk @ Feb 26 2007, 11:18)  Поставил - сразу полегчало. aesok, спасибо за подсказки! А вообще, начинать освоение новых контроллеров с подобных несуразностей - это как-то некомильфо... Первое впечатление не самое приятное.  Все несуразности только от того, что вы не прочитали 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). Анатолий.
|
|
|
|
|
Mar 2 2007, 22:27
|

Местный
  
Группа: Свой
Сообщений: 272
Регистрация: 17-01-05
Из: Ростов-на-Дону
Пользователь №: 2 018

|
Цитата В отладке стоит coff, а не DWARF2 Это в "опциях проекта" -> "линкер" или же руками прописано в makefile? А тем временем выплыл ещё один глюк симулятора. Проект для Tiny24: разрешаю работу TIMER_COUNTER_1, и автоинкремент происходит не с регистром TCNT1 (адрес 0x2d), а с PRR (адрес 0x00). В версии 4.13(528) это устранено, пришлось ставить. И WinAVR-20070122 за компанию.
--------------------
/* Всё хорошо в меру. */
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|