Eclipse Helios + STM32 + OpenOCD + jtagkey

Po sieci krąży wiele tutoriali jak skonfigurować Eclipse Helios i OpenOCD. Niestety mi zajęło sporo czasu aby przebić się i dość o co chodzi, gdyż większość opisów dotyczy Eclipse Galileo (czyli starej wersji).

Na dzień pisania tej „dokumentacji dla potomności” aktualne wersje to:

Do tego wszystkiego potrzebujemy jakiś interface JTAG. OpenOCD wspiera m.in.:

  • Najtańszy JTAG jaki można sobie wyobrazić to Wiggler. Niestety wymaga portu równoległego, co w obecnych komputerach jest już rzadkością (o ile w ogóle jeszcze występuje). Jeżeli ktoś posiada port równoległy, Wigglera można kupić już nawet za 30 PLN lub złożyć samemu – google dostarczają wielu schematów.
  • Inteface\’y z interface\’em USB bazowane na układzie FT2232. Osobiście mam pewne „ALE” dotyczące tych interface\’ów i ich sterowników. Ze względu na ograniczenia licencyjne binarki OpenOCD nie mogą być dystrybuowane ze skompilowaną biblioteką D2XX. Aby użyć sterowników D2XX należy OpenOCD skompilować własnoręcznie, co nie jest takie oczywiste i proste dla osób, które nie mają doświadczenia. Nie jest to jednak duży problem. OpenOCD domyślnie skompilowany jest z użyciem biblioteki libftdi, która działa nieco wolniej niż sterowniki producenta (ale też bardzo dobrze) – pod warunkiem że producent dostarcza sterowniki dla libftdi. Na aukcjach i polskich sklepach internetowych można nabyć wiele różnych rozwiązań sprzętowych, w tym: Olimex (kilka wersji), JTAG-lock-pick (Freddie Chopin, dobre wsparcie klienta/użytkownika), KT-Link (Kristech)
  • Interface\’y bazowane na mikrokontrolerach, takie jak: J-Link. Teoretycznie J-Link jest wspierany przez OpenOCD, ale chyba od niedawna.
  • Inne… Wystarczy przejrzeć katalog „interface” w katalogu OpenOCD, gdzie są wyszczególnione pliki konfiguracyjne do różnych typów intarface\’ów.

Po instalacji wszystkich narzędzi trzeba skonfigurować komendę uruchamiającą daemona OpenOCD

Następnie trzeba stworzyć konfigurację do Debug.

I na znalezieniu informacji, że trzeba przestawić Debug Luncher\’a spędziłem pół dnia. Musi być ustawiony „Standard GDB Hardware Debugging Luncher” domyślnie ustawiany jest inny.

Konfiguracja zakładki Debug

Konfiguracja zakładki Startup

Jeżeli wszystko jest ok, za każdym kliknięciem „robaczka” do procka zostanie załadowany aktualny plik elf i rozpocznie się debug.

Inne opisy konfiguracji: