[an error occurred while processing this directive]
AVR JTAG ICE - первые впечатления (поубивал бы)
(«Телесистемы»: Конференция «Микроконтроллеры и их применение»)
миниатюрный аудио-видеорекордер mAVR

Отправлено Аскольд 05 июля 2002 г. 13:44

Всем привет!

Вот и сбылась мечта идиота. Уговорил я начальника на приобретение JTAG ICE и вот он приехал. Ну что ж, начинаем эксперименты. Первым делом скачиваем с сайта Atmel наисвежайший AvrStudio4 (надо заметить, что до сих пор я обходился IAR C Spy-ем и с AvrStudio дела не имел). Запускаем... нет - говорит - у тебя никакого JTAG ICE. Ну мы так просто не сдаемся и после 5-го выключения/включения питания и 10-го нажатия на кнопку "Retry" JTAG ICE наконец обнаруживается и тут же сообщает, что имеет устаревшую версию программы и что если я сейчас нажму на кнопку "ОК" эта версия будет обновлена, а если нажму на "Cancel", то они корректной работы обещать не могут. Делать нечего - жмем "OK" и попадаем прямиком в AvrProg в котором уже выбран файл для зашивки "AVRstudio\JTAGICE\JtagIce.hex". Кто там говорил, что прошивка проца в JTAG ICE защищена и самому его изготовить невозможно???. Ну ладно, перепрограммируем, перезапускаем по инструкции студию и получаем что? Правильно - "ваш JTAG ICE имеет устаревшую версию" и т.д.. Разумеется надо было еще выключить притание, но в инструкции об этом ни слова. Ну ладно, с 3-й попытки ICE завелся и даже обнаружил мою мегу128, но сообщил, что хоть она и есть но по JTAG общаться не хочет то ли потому, что fuse JTAGEN не запрограммирована то ли потому, что в ней JTAG программно отключен, а потому попробуйте-ка дернуть у нее RESET. Легко сказать - кнопки такой у меня не предусмотрено, а выключение питания заодно выключает и ICE, питающийся от той же схемы. Ну ладно, дергаю питание и, о чудо, все находится! Дальше, естественно, все зависло. Ан нет, не все! У JTAG ICE лампочка мигает. Оказывается это пошла грузиться моя программа во flash (а кто ее просил?) и пока она не загрузится студия будет висеть и на внешние раздражители не реагировать. Так... что-то куда-то загрузилось, только, похоже, не то или не туда... Какая интересная диагностика: "JTAG ICE _run() Message from IDR: -84". Главное все понятно :) Ага! Кварц вообще не генерит, похоже fuses неправильно зашиты. А через JTAG перешить слабо? Читаем доку - оказывается, для этого надо вызвать Tools/STK500 - кто бы мог подумать? Вызываем: нет - говорит - подходящей платы. Читаем доку внимательнее - оказывается сначала надо завершить сеанс отладки, чтобы освободить ICE, тогда STK500 его найдет. Точно - нашла. Меняю fuses. Заработало! Снова запускаю отладку. "%"?;%?;% мать - опрять пошел процесс прошивки flash. Это надолго ли ее хватит, если при каждом запуске отладчика она перешиваться будет?

Ну наконец-то. Вот она моя программа. А нахрена ж она на startup встала, а не на сишный main? Ну ладно, main я и сам найду, слава богу сишные исходники она видит. Так, тыкаем мышкой в первую строчку main, говорим RunToCursor и... хрен вам. Отладчик делает один шаг и останавливается. Пытаюсь еще несколько раз, пытаясь ставить курсор в разные места и в конце концов попадаю куда нужно, но как это получилось и почему не получалось до того остается загадкой. Ну что ж, походим по шагам..... __enable_interrupt(); "?;"%"? мать - ну нахрена ж в пошаговом режиме на прерывания-то реагировать? А где у нас кнопочка "выполнять до конца функции"? Нету? Замечательно. Доходим до конца прерывания, вот сейчас вернемся в основную программу... Хрен вам, опять в прерывание. Ну правильно, внешние-то прерывания ждать не будут, откуда им знать, что проц стоит. А как бы нам их заблокировать на время? А никак.

Ну ладно, пусть маленько поработает. Break! Ц?%"?% - "Недостаточно памяти"! (У меня Win2000, 256Mb). Все, висим, на этот раз окончательно. Прибиваем студию, запускаем снова - ну вы поняли, пошел процесс прошивки flash. А посмотрим ка на нашу EEPROM - "№"№!; - одни FF. А вель у меня в программе полно инициализированных __eeprom переменных и галку "Preserve eeprom" я не ставил. Ну и где? Попробуем Run-Break еще раз - "Недостаточно памяти"...

А теперь вопрос к любителям AvrStudio4 - какие из этих глюков свойственны студии изначально, а какие являются порождением JTAG ICE?

Составить ответ  |||  Конференция  |||  Архив

Ответы



Перейти к списку ответов  |||  Конференция  |||  Архив  |||  Главная страница  |||  Содержание  |||  Без кадра

E-mail: info@telesys.ru