Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Linux и JTAGICE mkII
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > Cредства разработки для МК > GNU/OpenSource средства разработки
107
Народ! У кого-нибудь получилось подружить сабж?
Я пытаюсь через JTAG mkII зашить Atmega 64.

Запускаю (к примеру чтение или что-то еще):
$ avrdude -p m64 -c jtag2 -v -U flash:r:./a.out
Дает:
Код
avrdude: jtagmkII_program_enable(): bad response to enter progmode command: RSP_ILLEGAL_JTAG_ID
avrdude: JTAGEN fuse disabled?
avrdude: initialization failed, rc=-1
         Double check connections and try again, or use -F to override
         this check.

Кто-нибудь сталкивался с подобным? Что посоветуете?
JTAGEN выставлен в 1, в винде через Студию - шьется без проблем.
Andy Great
Цитата
JTAGEN выставлен в 1

Это значит, не запрограммирован. Т.е., JTAG отключен. Активный уровень фузов =0.

Вдогонку: не заметил про Винду. Подключение по 232му, я понимаю? И попробуйте предлагаемый -F
107
Пробовал и по USB и через COM порт - одно и тоже.
Если указать -F пишет тоже самое, плюс в догонку:

Код
avrdude: AVR device initialized and ready to accept instructions

Reading |                                                    | 0% 0.00s
avrdude: jtagmkII_program_enable(): bad response to enter progmode command: RSP_ILLEGAL_JTAG_ID
avrdude: JTAGEN fuse disabled?
avr_read(): error reading address 0x0000
    read operation not supported for memory "signature"
avrdude: error reading signature data for part "ATMEGA64", rc=-2
avrdude: error reading signature data, rc=-1


Я измучал этот avrdude уже... Даже патч пробовал: http://www.mail-archive.com/avrdude-dev@no...g/msg01299.html он для случая если в цепочке несколько устройств и добавляет параметр -j. Само собой без толку, т.к. устройство у меня одно.
Может еще есть что-то помимо avrdude, умеющее шить через JtagicemkII? Или может какую надо новую прошивку в программатор залить... Хотя в винде в Студии то шьется... sad.gif
xelax
Используйте avarice. Через него и прошиваться и дебажиться можно. И в винде и в линухе.
Сам в винде им пользуюсь, коллеги в линухе. Вполне довольны.
107
Спасибо за совет, попробовал avarice, но он сказал:

Код
JTAG config starting.
Found a device: JTAGICEmkII
Serial number:  00:b0:00:00:37:2d
Reported JTAG device ID: 0xFFFF
No configuration available for device ID: ffff


А в логах у него нашел:
Код
response: 81 FF FF FF FF
JTAG id = 0xFFFFFFFF : Ver = 0xf : Device = 0xffff : Manuf = 0x7ff
No configuration available for device ID: ffff

хотя должно быть что-то типа:
Код
response: 81 3F 20 80 49
JTAG id = 0x4960203F : Ver = 0x4 : Device = 0x9602 : Manuf = 0x1f
Looking for device: atmega64

Т.е. у меня avr-ка отзвыется как 0xFFFFFFFF (или вообще не отзывается). По идеи опять же fuse-биты, но в винде то пишется через Студию! sad.gif
Пробовал насильно указать -P atmega64, оно соответственно пытается, но не выходит:
Код
Reported JTAG device ID: 0xFFFF
Configured for device ID: 0x9602 atmega64 -- FORCED with atmega64
JTAG config complete.
JTAG ICE: Cannot synchronise


Может попробовать какие обновления для моего программатора залить?
xelax
Вот так прошивать

Код
Firmware burn

В консоли:

$ avarice -2 -ep -W<fuse> -f application.elf  -j device

device к которому подключен JTAG

    * /dev/ttyS0 последовательный порт
    * /dev/ttyUSB0 последовательный порт поверх usb

пояснения (см. также avarice --help) :

-2 использовать JTAG ICE mkII
-j порт к которому подключен JTAG box
-r, --read-fuses            Read fuses bytes.
-e, --erase                 Erase target.
-p, --program               Program the target.
                               Binary filename must be specified with --file
                               option.
-f, --file <filename>       Specify a file for use with the --program and
                               --verify options. If --file is passed and
                               neither --program or --verify are given then
                               --program is implied.



вот так запускать дебаг

Код
$ avarice -2 -B<speed> -j  device :<port>


с 1281 проблем не было, с 2561 были глюки, пока не обновил firmware jtaga. Так что советую Вам тоже обновить firmware.
107
Да, так и запускал. Уже отписал в Mail-list пользователей avarice, может чем помогут...
Проблема в том, что Atmega не отзывается, или отзывается, но как 0xFFFF, и оно с ним не может работать.

Цитата
были глюки, пока не обновил firmware jtaga. Так что советую Вам тоже обновить firmware.
Да вот последняя надежда и остается... А где лучше проверенную прошивку добыть?
xelax
Цитата(107 @ Feb 18 2008, 14:26) *
Да вот последняя надежда и остается... А где лучше проверенную прошивку добыть?


Прошивка идёт с AVRStudio. Вкладка Tools. На этой вкладке выбирай JTAGICE mkII Upgrade smile.gif
107
Спасибо всем кто отвечал! Проблему решил!
Помог mail-list у avarice.

Дословно они подсказали:
Цитата
AVR Studio
automatically clears the OCDEN fuse when it exits debugging mode. The reason
for this is that the AVR will draw excessive sleep current with the OCDEN
fuse set. AVR Studio also sets the OCDEN fuse when it begins debugging.


От куда я понял что:
AvrStudio в Windows-е сама выставляля OCDEN fuse-бит и сама же его потом снимала. По этому там все и работало.

Я поставил OCDEN бит в AvrStudio4, сохранил, затем подключил к себе - и все заработало!

AvrDude к стати тоже теперь все видит!
Всем спасибо.
Andy Great
Странно весьма, этот бит отвечает за отладку, а не за прошивку. Вы ничего в исходном вопросе не напутали? Например, используемые мной Меги16 поставляются с прошитым JTAGEN и снятым OCDEN, их можно прошивать через JTAG. Правда, только под Виндой пробовал.
107
Да, они так и пишут:
Цитата
The JTAG interface is only enabled by the JTAGEN
fuse, plus the JTD bit in MCUCR must not be set. OCDEN is only
required for on-chip debugging, and like AVR Studio, AVaRICE is
supposed to automatically handle setting this fuse when starting a
debugging session.

Типа для того чтобы работал JTAG - достаточно флага JTAGEN и снятого JDT, но выставление этого флага помогло, и чуваки предположили что:
Цитата
However, I've seen one scenario where a deactivated OCDEN fuse causes
similar JTAG connection issues as seen by the submitter of this bug
report: the device in question entered power-save sleep mode, and
while being in that kind of deep sleep, the JTAG communication cannot
be initiated. Setting the OCDEN fuse, however, effectively prevents
the device from entering a real power-save state, so JTAG still works.

Типа мой AVR ушел в глубокую спячку, и с ним невозомжно было установить коннект, а когда я выставил OCDEN - он начал работать нормально. И предложили:
Цитата
I think we should be able to handle that situation, probably by making
the ICE pull the nSRST line before trying to initiate the JTAG
communication. A device being in reset state is not supposed to
sleep, so JTAG comm ought to work. (This will also help in situations
where JTD is being set early within the application, but obviously
only until the application reaches the instruction that sets JTD.)

Может доделают такую штуку в следующей версии avarice...


---
Ха! Вот еще новости.
Я залил в AvrStudio4 в Windows в свою ATmeg-у другую программу. Пустую, чисто для теста с void main (void).
И теперь у меня устройство видится и шьется и в avarice и в avrdude в Linux даже _без_ OCDEN бита!
Следовательно причина бага кроется где-то в старом коде, видимо он на самом деле вгонял девайс в глубокую спячку.
Причем AvrStudio4 у меня все время спрашивало перед тем как залить:
Цитата
Failed to identify target. Would you like to retry with external reset enabled?

А теперь перестало.
Осталось чтобы этот "external reset" добавили в avarice или avrdude. smile.gif
andybeg
не удаётся подружить сабж, собственно винлы под руками нет, в виртуалке житагвидится, даже фирмварю обновляет, но при попытке прошить устройство житага вылетает из виртуалки sad.gif, попытка прошиться через avarice остановилась на том этапе что в устройствах отсутствует /dev/ttyUSB0
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.