Strona główna Artykuły News Nowe OpenOCD w wersji 0.6.1
Nowe OpenOCD w wersji 0.6.1
Ocena użytkowników: / 4
SłabyŚwietny 
Wpisany przez Freddie Chopin   
Sobota, 13 Październik 2012 16:02

Przez nadmiar obowiązków (i odrobinę wypoczynku w postaci wyjazdu wspinaczkowego [; ) nie zamieściłem informacji o pojawieniu się OpenOCD w wersji 0.6.0, co miało miejsce na początku września. Jak się później okazało (po powrocie z wyjazdu) nawet dobrze się stało, bo wersja ta zawierała dosyć poważnego buga, który pojawił się pomiędzy 0.6.0-rc1 a 0.6.0-rc2. Żeby nie przynudzać, powiem tylko, że problem objawiał się tym iż niektóre operacje działały poprawnie tylko za pierwszym razem, a następne próby kończyły się niepowodzeniami - tak na przykład działo się w przypadku prób wgrywania czegoś do flasha na układach LPC17xx/2xxx. Zainteresowani więcej szczegółów znajdą na liście dyskusyjnej OpenOCD oraz w informacji o poprawionej wersji na stronie projektu.

Tak więc wkrótce po wykryciu usterki wydana więc została wersja 0.6.1, przywracająca poprawne działanie dotkniętych tym problemem funkcjonalności. Jak zwykle na stronce w dziale Download > Programy > OpenOCD pojawiła się binarka skompilowana dla systemu Windows (w paczce zarówno wersja 32- jak i 64-bitowa). Przy okazji - w związku z powtarzającymi się pytaniami - paczki te od wersji 0.5.0 (włącznie) nie są dostępne w postaci instalatora, a jedynie w formie spakowanego folderu ze wszystkim co jest potrzebne. W związku z tym nie da się ich zainstalować (jak to opisane jest w artykule o toolchainie), tylko wystarczy rozpakować gdziekolwiek i po prostu uruchamiać podając pełną ścieżkę. Tworzenie instalatora to trochę za dużo zachodu jak na zerowe korzyści wynikające z jego użycia (;

Co ciekawego przynosi nowe wydanie OpenOCD? Bardzo dużo! Nie wiem od czego zacząć, jadę wiec po prostu po ważniejszych rzeczach z listy którą można znaleźć w newsie o nowej wersji na stronie projektu.

  • OpenOCD współpracuje więc z interfejsem ST-LINK (znanymi chyba najlepiej z płytek z serii Discovery) - z tymi starszymi (V1) jak i z tymi nowszymi (V2). Przy okazji warto wspomnieć, że z tymi interfejsami możliwe jest debuggowanie układów przez SWD.
  • Pojawił się nowy, na chwilę obecną jeszcze nieco eksperymentalny, driver dla interfejsów opartych na układach FTDI z serii FTx232, czyli dla przypuszczalnie najpopularniejszych interfejsów używanych z OpenOCD (takich jak znany JTAG-lock-pick 1 i nadchodzący już-bardzo-wkrótce JTAG-lock-pick Tiny 2). Driver ten w miejsce bibliotek libftdi + libusb-0.1 wykorzystuje jedynie bibliotekę libusb-1.0 w trybie asynchronicznym, co przekłada się na jego bardzo dobre osiągi - szczegółowe porównanie można znaleźć tutaj, a w skrócie wzrost prędkości sięga nawet 500%! Pliki konfiguracyjne korzystające z nowego drivera znajdują się w folderze interfaces/ftdi - warto spróbować, jednak przed testami konieczna jest zmiana sterownika dla JTAGa na taki korzystający z libusb-1.0 (informacja jak to zrobić na Windowsie znajduje się w paczce ze skompilowaną wersją, w pliku drivers\libusb-1.0 drivers.txt).
  • Wsparcie dla debuggowania RTOSów - na chwilę obecną obsługiwane są: Linux, FreeRTOS, ThreadX i eCos.
  • Asynchroniczny algorytm flashowania dla niektórych układów (STM32, Stellaris i PIC32), co przekłada się oczywiście na wzrost prędkości.
  • ...
Zachęcam wiec do pobierania i używania najnowszej wersji, szczególnie osobom które pobrały wersję 0.6.0 (już usuniętą ze strony) sugeruję aktualizację.

 

Zmieniony: Sobota, 13 Październik 2012 17:32