ST-Link и Jlink

MartynC
Wed Nov 22, 2017 6:01 am

Здравствуйте

Каковы различия между ST-Link и Jlink и можно ли использовать Jlink для программирования плат STM32F103?


RogerClark
Wed Nov 22, 2017 6:37 am

J-Link предоставляет аппаратные интерфейсы JTAG и SWD (и, возможно, другие), а ST-Link — только SWD и SWIM.

На аппаратном уровне оба могут быть использованы для программирования STM32.

Мое Arduino Core на базе LibMaple имеет возможность загрузки через JLink для некоторых плат, например, generic _stm32f103 aka Blue Pill.

Однако это будет работать, только если у вас установлено собственное программное обеспечение JLink, т.е. JFlash и, в частности, инструмент командной строки.
Также вы должны добавить путь к папке с исполняемыми файлами JFlash в системный путь, потому что было непрактично заставить его работать без этого, так как раздражающий Segger помещает каждую версию JFlash в папку с другим именем (в зависимости от версии).
Т.е. это удобно, если вы хотите установить множество различных версий JLink, т.к. они не перезаписываются при обновлении, но это проблема для любого стороннего программного обеспечения, например, Arduino IDE, т.к. нет возможности узнать путь к двоичным файлам Segger JFlash.


MartynC
Wed Nov 22, 2017 8:01 am

Спасибо. Я начал немного теряться во всей этой полуинформации, которая доступна в Интернете.

Это означает, что платы могут быть запрограммированы с помощью:
USB-последовательный адаптер,
ST-Link,
J-Link, и
Bootloader + встроенный USB.

Есть ли другие варианты?


Slammer
Wed Nov 22, 2017 8:28 am

и Black Magic Probe…. (он же BMP)

Это другой тип SWD-адаптера, но…

— Он open-source/open hardware.
— Включает функциональность отладки как gdb-сервер (заменяет stlink+ocd).
— Включает интерфейс UART
— Поддерживает чипы не STM.

На самом деле вы можете превратить в BMP любую плату STM32F103 с USB, например, очень хорошая идея использовать дополнительный Blue Pill в качестве BMP.


RogerClark
Wed Nov 22, 2017 9:57 am

Для STM32F103 MCU может быть прошит непосредственно через USB to Serial или любой SWD программатор.

JLink, Black Magic Probe и ST-Link — это все SWD программаторы. Существуют и другие типы SWD-программаторов, но мой репозиторий на базе Libmaple поддерживает загрузку только через эти три.

Загрузчик Maple (он же stm32duino bootloader) — единственный вариант загрузчика, который поддерживают репо libmaple и STM32 GENERIC на STM32F1.

Примечание. STM32F4 имеет встроенный USB DFU загрузчик, однако он использует DFUSE, который является расширением DFU для STM и требует совершенно других драйверов (установленных Zadig) и другой версии DFU_util, которая поддерживает расширения DFU.

Я не знаю, какие ядра поддерживают это, но мое ядро на базе LibMaple поддерживает загрузчик только на F1


MartynC
Wed Nov 22, 2017 2:09 pm
Many thanks

racemaniac
Wed Nov 22, 2017 2:42 pm
Возможно, это тоже интересно для данной темы: у ST-Link меньше возможностей, но много ли вы теряете, если не используете J-Link?
Сейчас я использую ST-Link для отладки и т.д… и не могу представить, чего такого сверхэксклюзивного может предложить другой программатор. Я думаю, что можно выбрать любой программатор, особенно который дешевле, и он в любом случае будет соответствовать вашим потребностям. :).


Ollie
Wed Nov 22, 2017 6:17 pm
Я согласен с racemaniac, что простой ST-Link делает все, что нужно. Помимо цены, нужно учитывать наименее проблемную платформу. Я не знаю, какая из них самая надежная. В прошлом у меня было много проблем с драйверами для ST-Link, и последняя версия V2.1 не работает на моих платах. В дополнение к упомянутым ссылкам я планирую перейти на EBLink.

Slammer
Wed Nov 22, 2017 8:07 pm
Лично я нахожу BMP более удобным, чем другие. Мне также нравится встроенный интерфейс usb to serial.
Для профессионального использования, особенно для отладки, я думаю, что JLink — это выход, так как это промышленный стандарт и официально поддерживается (например, Eclipse, ARM plugin, и т.д…).
Для хобби, и для загрузки программ в MCU (как ISP), ST-Link более чем достаточно по цене.

RogerClark
Wed Nov 22, 2017 8:27 pm

Я обнаружил, что платы JLink из Китая имеют привычку стирать собственную прошивку, но к счастью, кто-то выложил старый двоичный файл в Интернете давным-давно, и их можно перепрошить. Тем не менее, очень неприятно, когда подобное случается.

Также на eBay есть несколько JLinks (из Китая), которые используют STM32. Они действительно работают, но это очень старая версия, которая была предназначена только для постоянного встраивания в целевую плату.
И Segger прекратил их поддержку в JFlash около 6 месяцев назад.


Slammer
Wed Nov 22, 2017 8:59 pm
Оригинальный JLink — не игрушка… стоит около 300$ за базовую версию и 500$ за Plus, несправедливо сравнивать его с ST-Link. На самом деле ST-Link — это интерфейс ISP с некоторыми возможностями отладки, а JLink — это профессиональный JTAG.

Rick Kimball
Wed Nov 22, 2017 9:10 pm

Когда вы говорите, что это не игрушка… что делает ее не игрушкой? У меня такое чувство, что ребята из Segger долгое время получали неоправданно огромную прибыль при полном отсутствии недорогих альтернатив. Стремление предложить недорогую версию возникло из за ценового давления дешевой китайской электроники на производителей BMP, ST-Link и CMSIS.

Я попробовал поменять свой st-link на j-link и не увидел никаких преимуществ.

Вообще не увидел никаких преимуществ.

* Должен сказать, что я предвзято отношусь к программному обеспечению BMP, я преобразовал свой stm32f100 value line ST-LInk V1 в BMP и очень доволен.


RogerClark
Wed Nov 22, 2017 9:12 pm
С JLink вы также играете за JFlash и большой набор инструментов, которые поддерживают тысячи процессоров.
STLink предназначен только для программирования устройств ST (но может программировать и другие, если вы используете Open OCD), поэтому он имеет простой графический интерфейс windows и командную строку exeNote. STLink на некоторых платах Nucleo также имеет USB to Serial, а некоторые имеют еще и USB Mass storage.

Я использую JLink только иногда из-за JFlash, который делает удобным чтение и запись двоичных файлов, модификацию флэш-памяти и т.д.


Rick Kimball
Wed Nov 22, 2017 9:18 pm
[RogerClark — Wed Nov 22, 2017 9:12 pm] —
Примечание. STLink на некоторых платах Nucleo также имеет USB to Serial, а некоторые имеют еще и USB Mass storage.

.
Каждый NUCLEO поддерживает загрузку программы USB Mass Storage. Это очень недооценивается здешней публикой. Это позволяет вам прошивать целевой MCU без какого-либо пользовательского программного обеспечения на стороне хоста. Вы просто перетаскиваете двоичный файл, и он загружается на целевой микроконтроллер. Это огромное преимущество. Это позволяет использовать любое устройство, которое может работать с USB Mass Storage, будь то raspberry pi, планшет или os/x компьютер, не беспокоясь о пользовательских драйверах.

Также не стоит забывать, что устройства NUCLEO предоставляют виртуальное COM-устройство. Поэтому вам не нужно использовать встроенный USB, если вы этого не хотите, вы можете просто подключиться к последовательному USART PA9/PA10.


RogerClark
Wed Nov 22, 2017 9:56 pm

Рик

Я исследовал, можно ли сделать загрузчик для USB-накопителя, но думаю, что накладные расходы на файловую систему сделают его довольно большим.

Буква диска в Windows также может быть проблемой для автоматизации USB Mass storage, поскольку IDE имеет выпадающий список для выбора накопителя для загрузки.
Я думаю, что есть обходной путь для буквы диска в Windows, но с помощью одной из встроенных в Windows утилит командной строки, я полагаю, что в Linux и т.д. есть то же самое.

BTW.

Я не оспариваю, что цена на JLink сильно завышена, даже с учетом того, что он поставляется с JLink и т.д., поскольку они не могут сейчас тратить очень много средств на поддержание обновлений, а затраты на разработку должны были быть возмещены много лет назад.


Slammer
Wed Nov 22, 2017 10:41 pm
[Rick Kimball — Wed Nov 22, 2017 9:10 pm] —
Когда вы говорите, что это не игрушка… что делает ее не игрушкой?

Цена, я думаю…. Я полностью согласен с вами по поводу ценовой политики JLink.
Я тоже использую BMP с Eclipse и gdb, и все в порядке.


Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *