Czy mogę używać programatora ST-Link do układów innych niż ST?

12

Czy mogę programować wszystkie rodzaje układów programowalnych SWD (ARM-MCU) za pomocą ST-Link?

Meylis Cherkezov
źródło
„ST-LINK / V2 to wbudowany debugger i programator dla rodzin mikrokontrolerów STM8 i STM32.” Nie sądzę, żebyś mógł od razu, ale teoretycznie powinno to być możliwe. Ktoś zdołał podłączyć go do MCU LPC tutaj: lpcware.com/content/forum/…
Fluffy
1
Być może w niektórych przypadkach używasz czegoś takiego jak openocd zamiast oprogramowania ST. Jeśli napotkasz trudności, istnieją implementacje CMSIS-DAP o otwartym kodzie źródłowym, które możesz sflashować, które są bardziej uniwersalne, ponieważ oprogramowanie hosta ma lepszą kontrolę nad szczegółami.
Chris Stratton,
To nie jest to, o co prosiłeś, ale są też debuggery, które obejmują wiele celów, takich jak mikro debuggery PE.
mkeith,
2
Używam łącza ST do programu lpc1549, to działa.
user2425240,

Odpowiedzi:

6

Możesz także sflashować st-link i przekonwertować go na Czarną Magiczną Sondę . Ten sam obraz przekształci również niebieską pigułkę w BMP.

Zrobiłem oba. Zaletą Blue Pill jest to, że most USB-RS232 eksportowany przez BMP jest łatwo dostępny.

BMP obsługuje szereg układów, które obejmują między innymi:
ST Microelectronics STM32F0, STM32F1, STM32F3, STM32F2, STM32F4, STM32F7, STM32L0, STM32L1, STM32L4
Atmel SAM3N, SAM3X, SAM3S, SAM3U, SAM3M, DMM
Nordic nRF51, nRF52 (właśnie dlatego używam BMP)

BMP jest oprogramowaniem typu open source, może być używany do programowania komercyjnego, a sprzęt może być tani („Prawdziwy” BMP kosztuje około 60 USD, niebieska tabletka 5-amazonowa wysłana za mniej niż 20 USD).

GB - AE7OO
źródło
4

Aby dodać do istniejącej odpowiedzi; wiadomo, że niektóre układy nie działają poprawnie z ST-LINK i OpenOCD.

W szczególności, jeśli twój cel pochodzi z rodziny MCU Atmel SAMD21, możesz napotkać dziwne problemy z wykryciem procesora, ale wszelkie próby usunięcia sektorów flash kończą się błędem.

Powód jest raczej zaangażowany , aby zacytować:

AFAIK, problem polega na zapisaniu pół słowa (16-bitów) do rejestru NVMCTRL-> CTRLA. STLink nie implementuje dostępu do pamięci pół słów, a emulacja OpenOCD jest operacją dwóch bajtów. Niestety rejestr CTRLA składa się z klucza i polecenia i musi być zapisany atomowo. Jeśli STLink zapisuje dwa bajty, kontroler NVM ustawia bit PROGE w STATUSIE: „Niepoprawne polecenie i / lub złe słowo kluczowe zostało / zostało zapisane w rejestrze poleceń NVM”

Obejście polega na ponownej kompilacji OpenOCD z poprawkami kodu. Nie śmieszne.

Jeśli jednak nie masz nic przeciwko flashowaniu swojego ST-Link (poprzez inny ST-Link), możesz przekonwertować go na adapter CMSIS-DAP , który działa dobrze z SAMD i powinien również działać z STM32 i innymi Cortex-M frytki.

minexew
źródło
1

Tak, wierzę, że jest to możliwe, chociaż jeszcze tego nie próbowałem. Prawdopodobnie naruszysz umowę licencyjną ST, jeśli spróbujesz programować urządzenia inne niż ST

Przykładowo Segger (jeden z liderów rynku w debuggerach i programistach) obsługuje konwersję ST-Link do J-link (zasadniczo nadpisując układ ST-Link kodem Segger). Jest to również odwracalne, więc jeśli chcesz przywrócić urządzenie ST-link do jego pierwotnej postaci, możesz to zrobić.

Istnieje jednak kilka wersji ST-Link. Zapoznaj się z poniższymi linkami, które zawierają dodatkowe informacje i wskazówki, jak to zrobić.

https://www.segger.com/jlink-st-link.html
https://www.segger.com/jlink-ob.html

Peter H.
źródło
1
Używałem nagłówka stlink na nukleo i tablicach odkrywczych w większości głównych marek cortex-m ... i te, nad którymi nie mogłem zmusić do pracy, to problemy z konfiguracją openocd, a nie stlink.
old_timer
1
Flashowanie ST-Link do J-Link będzie działało (i będzie legalne) na płycie Nucleo lub Discovery i tylko do użytku z docelowym MCU. Przeczytaj warunki licencji Seggar, są one dość restrykcyjne. O ile mi wiadomo, flasher Seggar nie działa nawet na samodzielnym ST-Link.
GB - AE7OO,
1

Tak, to możliwe. Używam stlink v2 (oryginalny, a także chińskie klony USB typu stick) z Coocox IDE. Coocox ma również samodzielną aplikację programistyczną - CoFlash , która może zostać użyta do zaprogramowania wielu układów. Mam doświadczenie tylko z dwiema seriami: LPC176x i LPC175x, przez interfejs SWD. I nie mam żadnych problemów z tymi żetonami. Nie wprowadziłem też żadnych konkretnych zmian ani aktualizacji dla programistów (oprócz tego, że oryginalny st link wymagał wysokiego poziomu napięcia w TVCC (PIN1), w przeciwnym razie nie pozwalał na programowanie układu, więc podłączyłem bezpośrednio pin 19 (3.3vcc) do pinu 1 na stlink v2).

janiso
źródło
0

STLink V2 / V2.1 lub V3 z najnowszym oprogramowaniem układowym może być również używany z platformą PC-stlinkv2 Blackmagic hostowaną na komputerze PC. Skompiluj z „make PROBE_HOST = pc-stlinkv2”, uruchom serwer debugowania z „blackmagic_stlinkv2” i połącz się z: 2000 w gdb lub bezpośrednio załaduj pliki binarne z „blackmagic_stlinkv2”. Działa to ze wszystkimi celami, które zna BMP. Jednak V3 aktywnie zaprzecza pracy nad celami spoza ST, podczas gdy V2 to nie obchodzi.

UweBonnes
źródło