Czy mogę programować wszystkie rodzaje układów programowalnych SWD (ARM-MCU) za pomocą ST-Link?
Czy mogę programować wszystkie rodzaje układów programowalnych SWD (ARM-MCU) za pomocą ST-Link?
Odpowiedzi:
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).
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.
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
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).
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.