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

Запустить JLINK (AT91SAM-ICE) "из коробки"

Промучавшись и отчаявшись запустить openocd в связке с wiggler или ALTERA USB BLASTER, решил пойти по пути "как все" - и наткнулся на проблемы.

 

Установленный свежескачанный комплект программ и драйвер от SEGGER после применения ключеделки нормально прошивает программу в устройстве.

 

Свежеустановленный openocd 0.4.0 (дистрибутив от Freddie Chopin) не видиит USB устройство:

 

Error: Cannot find jlink Interface! Please check connection and permissions.

Command handler execution failed

 

Командная строка такая:

 

C:\user\dds2\TC1>openocd -d1 -f interface/jlink.cfg -f target/at91sam7sx.cfg -c init -c targets -c "halt" -c "flash write_image erase " -c "verify_image .\at91sam7s\tc1.elf" -c "reset run" -c shutdown

 

С wiggler были проблемы такого рода: openocd ругался на "не то" содержимое каких-то регистров процессора и невозможность его перевести в состояние halt. При этом, H-JTAG работал перкрасно. Но эти проблемы ушли вместе с LPT портом на старом ноутбуке. ALTERA BYTE BLSATER из-под девелоперской версии OpenOCD 0.5.0 опознавался, но диагностировались закорочнные на землю сигналы. UrJTAG при этом нормально опознавал подключенный по JTAG микропроцессор.

 

Операционная система - Windows XP.

Изменено пользователем Genadi Zawidowski

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


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

Подскажите пожалуйста, для использования с OpenOCD вместе с jlink нужны USB драйверы от SEGGER или какие-либо другие? Было подозрение на libusb0.dll - но вызывается именно та, что лежит в каталоге вместе с openocd.exe.

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


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

Попробовал на "чистой" (со свежеустановленной XP) машине - результат тот же:

Error: Cannot find jlink Interface!

Коллеги, кто использует у себя связку openocd+jlink - какой vid/pid программатора у вас? Ставится штатный драйвер от segger.com или какой-другой? Правите ли скрипты openocd?

Изменено пользователем Genadi Zawidowski

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


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

Коллеги, кто использует у себя связку openocd+jlink - какой vid/pid программатора у вас?
1366/0101

 

Ставится штатный драйвер от segger.com или какой-другой?
Да, стоит какой-то старый родной, но судя по логу openocd родной драйвер от сеггера OpenOCD не использует. А libusb то ли filter, то ли device ставить надо было. И в нем выбирать jlink. Если openocd скомпилирован с libusb. Если с ft2xx.dll - то и этого вроде не нужно. Не пробовал.

Правите ли скрипты openocd?
Один родной поправил - иначе давал предупреждение, что кристалл по номеру вместо имени выбирается. В at91sam7sx.cfg заменил
flash bank $_FLASHNAME at91sam7 0 0 0 0 0 0 0 0 0 0 0 0 18432

на

flash bank $_FLASHNAME at91sam7 0 0 0 0 $_TARGETNAME 0 0 0 0 0 0 0 4032

4032 - это частота кварца у меня в плате.

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


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

В файлике в корне инсталляции opecocd упоминаются обе библиотеки...

 

OpenOCD 0.4.0
build date: 22.02.2010
package date: 23.02.2010
build system: Linux OpenSUSE 11.2 (hosted in VMware Workstation 6.5.3
        build-185404 on Windows 2003 Server SP2 @ Intel Core2Duo)
compiler: GCC 4.4.2 (i686-w64-mingw32)

Libraries used:
libusb-win32-src-0.1.12.2
libftdi-0.17

Build commands used:
../configure --host=i686-w64-mingw32 --enable-ft2232_libftdi --enable-gw16012
        --enable-parport --disable-parport-ppdev --enable-parport-giveio
        --enable-presto_libftdi --enable-amtjtagaccel --enable-arm-jtag-ew
        --enable-jlink --enable-rlink --enable-usbprog --enable-vsllink
make
i686-w64-mingw32-strip src/openocd.exe

 

А libusb то ли filter, то ли device ставить надо было. И в нем выбирать jlink.

 

А можете уточнить, где в libusb0.dll ставить filter или device и выбирать jlink.

update: странно, что эту утилиту не положили в дистрибутив... все-таки "из коробки" не работает - надо напильником допиливать. filter не пошло (openocd сообщает о ошибках). а device по сгенерённому визардом inf файлу для Jlink напрочь обрубил все usb устройства в ноутбуке.

удалил... сменил Segger-овский драйвер на полученный - периферия заработала - а openocd без изменений

Error: jlink_usb_message failed with result=1)
Error: jlink_tap_execute, wrong result -107 (expected 1)

 

Перестал (естествено) работать flasher (да и всё остальное) от segger.

Сергей, в Вашем случае работает? Значит, Вы libusb в режиме filter поставили...

Изменено пользователем Genadi Zawidowski

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


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

Сергей, в Вашем случае работает? Значит, Вы libusb в режиме filter поставили...
Да, перечитал описание libusb-win32 и вспомнил - действительно, ставил filter. Мне нужно было сохранить возможность отлаживаться из ИАРа. Т.е. у меня стоит драйвер сеггера версии 3.80а и libusb-filter дает через него доступ к J-Linkу.

В libusb0.dll я ничего не выбирал. Просто скачал инсталяшку libusb-win32-filter-bin-1.1.14.0.exe и запустил ее. Драйвер сеггера уже стоял.

 

Подобные вашим ошибки Error: jlink_usb_message failed with result=1) я получал, когда пытался указать скорость в скрипте через jtag_rclk - мой МТ-линк не поддерживает адаптивную скорость. Когда задал через jtag_khz - все заработало. В начале скрипта ставлю jtag_khz 32, в $_TARGETNAME configure -event reset-init после настройки PLL ставлю jtag_khz 8000.

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


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

Спасибо за совет, вставил в командную строку команду про 32 кГц - -а потом и без неё)

получил вот такую выдачу:

 

debug_level: 1
32 kHz
srst_only srst_pulls_trst srst_gates_jtag srst_open_drain
Error: J-Link command 0xde failed (-22)
Error: J-Link command 0xdc failed (-22)
Error: J-Link command 0x01 failed (-22)
Error: J-Link command EMU_CMD_VERSION failed (-22)

Error: J-Link command 0xdd failed (-22)
Error: J-Link command 0xdf failed (-22)
Error: J-Link setting speed failed (-22)
Error: usb_bulk_write failed (requested=6, result=-22)
Error: jlink_tap_execute, wrong result -107 (expected 1)
Error: J-Link command 0xdd failed (-22)
Error: J-Link command 0xdf failed (-22)
Error: usb_bulk_write failed (requested=6, result=-22)
Error: jlink_tap_execute, wrong result -107 (expected 1)
Error: usb_bulk_write failed (requested=6, result=-22)
Error: jlink_tap_execute, wrong result -107 (expected 1)
Error: J-Link command 0xdc failed (-22)
Error: J-Link command 0xdf failed (-22)
Error: usb_bulk_write failed (requested=6, result=-22)
Error: jlink_tap_execute, wrong result -107 (expected 1)
Error: J-Link command 0xdd failed (-22)
Error: J-Link command 0xdf failed (-22)
Error: usb_bulk_write failed (requested=6, result=-22)
Error: jlink_tap_execute, wrong result -107 (expected 1)
Command handler execution failed
Warn : jtag initialization failed; try 'jtag init' again.

 

Вчера пробовал на оригинальном SAM-ICE (v8) , сегодня на MT-LINK (v7). Когда поменяю назад, будут новости.

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


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

получил вот такую выдачу:
Что-то не работает... Запустите с ключем -d, напишет более подробно.

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


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

Запустил с большим значением.

Всё нормально, кроме всех обращений к драйверу.

Libusb0.dll в каталоге Openocd заменил на тот, что был в дистрибутиве, скачанном c sourcefoge. Без изменений в поведении.

 

Можете выложить Ваш комплект?

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


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

Libusb0.dll в каталоге Openocd заменил на тот, что был в дистрибутиве, скачанном c sourcefoge. Без изменений в поведении.
У меня вообще нет такого файла. Есть libopenocd.a размером 52 мега.
Можете выложить Ваш комплект?
Архив скомпилированного oocd занимает у меня 15 мег. Свяжитесь со мной через личку или ICQ, пришлю почтой.

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


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

Позволю себе влезть в старую тему, дабы не плодить новых. Пытаюсь запустить J-Link (если быть точнее MT-Link) под Linux, пока не очень получается.

 

OpenOCD собирал из репозитория, с ключом --enable-jlink.

Целевая плата на LPC1768.

 

При попытке запуска openocd, получаю следующее:

 

$ openocd -f interface/jlink.cfg -f target/lpc1768.cfg
Open On-Chip Debugger 0.5.0-dev-00658-gaf3f77a (2010-12-17-12:20)
Licensed under GNU GPL v2
For bug reports, read
    http://openocd.berlios.de/doc/doxygen/bugs.html
Warn : Adapter driver 'jlink' did not declare which transports it allows; assuming legacy JTAG-only
Info : only one transport option; autoselect 'jtag'
adapter_nsrst_delay: 200
jtag_ntrst_delay: 200
32 kHz
Info : J-Link initialization started / target CPU reset initiated
Info : J-Link ARM V8 compiled Dec 16 2010 20:21:29
Info : JLink caps 0xb9ff7bbf
Info : JLink hw version 80000
Info : JLink max mem block 8368
Info : Vref = 3.254 TCK = 1 TDI = 0 TDO = 1 TMS = 0 SRST = 0 TRST = 0
Info : J-Link JTAG Interface ready
Error: jlink_usb_message failed with result=255)
Error: jlink_tap_execute, wrong result -107 (expected 1)
Info : clock speed 32 kHz
Error: jlink_usb_message failed with result=255)
Error: jlink_tap_execute, wrong result -107 (expected 1)
Error: jlink_usb_message failed with result=255)
Error: jlink_tap_execute, wrong result -107 (expected 1)
Command handler execution failed
in procedure 'transport'
Command handler execution failed
in procedure 'init'

 

Т.е. как я понимаю, сам отладчик находится, но дальше дело не идет.

 

PS

Родная софтина от Segger (JLinkExe) работает, процессор видит.

 

$ ./start
SEGGER J-Link Commander V4.20h ('?' for help)
Compiled Oct 19 2010 14:02:03
DLL version V4.20h, compiled Oct 19 2010 14:01:59
Firmware: J-Link ARM V8 compiled Dec 16 2010 20:21:29
Hardware: V8.00
S/N: 11111118 
VTarget = 3.254V
Info: TotalIRLen = 4, IRPrint = 0x01
Info: Found Cortex-M3 r2p0, Little endian.
Info: TPIU fitted.
Info: ETM fitted.
Info:   FPUnit: 6 code (BP) slots and 2 literal slots
Found 1 JTAG device, Total IRLen = 4:
#0 Id: 0x4BA00477, IRLen: 04, IRPrint: 0x1, CoreSight JTAG-DP (ARM)
Cortex-M3 identified.
JTAG speed: 100 kHz
J-Link>

 

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


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

Позволю себе влезть в старую тему, дабы не плодить новых. Пытаюсь запустить J-Link (если быть точнее MT-Link) под Linux, пока не очень получается.

[/code]

 

И я влезу.

Решилась ли проблемма, у меня дошел ход до openOCD и получил такую же ошибку.

 

Отладчик jlink находит, причем считвает непряжение на целевой плате

Info : Vref = 3.254 TCK = 0 TDI = 1 TDO = 1 TMS = 0 SRST = 0 TRST = 1

 

Остальное как описано выше у Pavel V

 

Пытаюсь запустить на Debian.

 

 

 

 

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


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

Подобные вашим ошибки Error: jlink_usb_message failed with result=1) я получал, когда пытался указать скорость в скрипте через jtag_rclk - мой МТ-линк не поддерживает адаптивную скорость. Когда задал через jtag_khz - все заработало. В начале скрипта ставлю jtag_khz 32, в $_TARGETNAME configure -event reset-init после настройки PLL ставлю jtag_khz 8000.

 

Нашел решение. Действительно нужно установить скорость.

Только команда adapter_khz 32

Это в openosd-0.7.0

 

Спасибо Сергей за подсказку.

 

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


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

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

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

Гость
К сожалению, ваш контент содержит запрещённые слова. Пожалуйста, отредактируйте контент, чтобы удалить выделенные ниже слова.
Ответить в этой теме...

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

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

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

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

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

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