Strona główna
Witaj na stronie Chopina!
bleeding-edge-toolchain - o co chodzi?
Wpisany przez Freddie Chopin   
Sobota, 09 Luty 2013 14:55

Niektórzy zapewne zauważyli, że w dziale Download pojawiła się nowa kategoria - Programy > bleeding-edge-toolchain - a w niej całkiem spore pliki o nazwach wskazujących na to, iż są to kompilatory typu bare-metal dla układów z rdzeniem ARM... "Na rynku" jest już przecież CodeSourcery (zwane teraz Sourcery CodeBench), linaro, Yagarto, jakby się uprzeć są jeszcze prehistoryczne pakiety GNUARM i WinARM, zapewne jeszcze kilka o których (na razie) nie wiem - po co więc kolejny? Nawet nazwy sensownej mu nadać nie można, bo Yet Another Gnu ARm TOolchain jest już zajęte (;

Może więc na początek odrobinę historii. W zamierzchłych czasach (czyli jakieś 3-4 lata temu [; ), gdy ARMy zaczynały się robić naprawdę popularne (Cortex-M3 i te sprawy), najlepszym wyborem był pakiet CodeSourcery - była dostępna wersja dla Windowsa i Linuxa, pakiet był regularnie uaktualniany, programiści z firmy tworzącej go współpracowali ponoć z firmą ARM, no generalnie wszystko co trzeba. Niezliczone ilości stron w internecie (z tą włącznie) polecają go jako dobry punkt startu.

Zmieniony: Niedziela, 10 Luty 2013 14:38
 
JTAG-lock-pick Tiny 2
Wpisany przez Freddie Chopin   
Sobota, 02 Luty 2013 13:02

JTAG-lock-pick Tiny 2JTAG-lock-pick Tiny 2 to JTAG do procesorów z rdzeniem ARM podłączany do komputera PC przez magistralę USB 2.0. Urządzenie oparte jest o układ FTDI FT232H, czyli jednokanałowy konwerter USB <=> UART/FIFO. Projekt JTAG-lock-pick Tiny 2 powstał z myślą stworzenia małego i taniego, ale jednocześnie w pełni funkcjonalnego i szybkiego interfejsu o szerokim zastosowaniu.

Zmieniony: Sobota, 02 Luty 2013 13:47
 
JTAG-lock-pick Tiny 2 - już jest!
Wpisany przez Freddie Chopin   
Poniedziałek, 29 Październik 2012 12:32

Cała historia nieco się przeciągnęła (jak zwykle [; ), ale w końcu wszystko gotowe! Przedstawiam więc nowy projekt w wersji finalnej - JTAG-lock-pick Tiny 2!

JTAG-lock-pick Tiny 2
JTAG-lock-pick Tiny 2
JTAG-lock-pick Tiny 2
JTAG-lock-pick Tiny 2
JTAG-lock-pick Tiny 2
JTAG-lock-pick Tiny 2
JTAG-lock-pick Tiny 2
JTAG-lock-pick Tiny 2
JTAG-lock-pick Tiny 2
JTAG-lock-pick Tiny 2
JTAG-lock-pick Tiny 2
JTAG-lock-pick Tiny 2
JTAG-lock-pick Tiny 2
JTAG-lock-pick Tiny 2
JTAG-lock-pick Tiny 2
JTAG-lock-pick Tiny 2
 

JTAG-lock-pick Tiny 2 w telegraficznym skrócie:

  • USB 2.0,
  • max TCK 30MHz,
  • wsparcie dla RTCK,
  • wsparcie dla SWD,
  • napięcie targeta 1.4 - 3.6V,
  • dwie niezależne linie reset, każda osobno konfigurowalna do trybu PP lub OD,
  • mały rozmiar (całość ok. 53 x 33mm),
  • "obudowa" z przezroczystej koszulki termokurczliwej.

Kluczowym założeniem było zaprojektowanie układu tak aby był mały, tani ale jednocześnie funkcjonalny. Względem JTAG-lock-pick 1.x.x nowa wersja pozbawiona jest kilku bonusowych funkcji - UARTu, RS-232 i możliwości zasilania targeta za pośrednictwem JTAGa, tak więc można by powidzieć, że jest to "po prostu JTAG". Więcej szczegółów już wkrótce! Jeśli ktoś jest niecierpliwy, to zapraszam do kontaktu już teraz (;

Kolejny projekt - JTAG-lock-pick 2 (bez "Tiny") (;

Zmieniony: Poniedziałek, 29 Październik 2012 13:54
 
Nowe OpenOCD w wersji 0.6.1
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
 
Kolejny "next level"
Wpisany przez Freddie Chopin   
Wtorek, 03 Lipiec 2012 21:38

Dawno nic się nie działo na stronie, więc czas na uchylenie rąbka tajemnicy (; What do you say?

JTAG-lock-pick 2 Tiny
JTAG-lock-pick 2 Tiny
JTAG-lock-pick 2 Tiny
JTAG-lock-pick 2 Tiny
JTAG-lock-pick 2 Tiny
JTAG-lock-pick 2 Tiny
JTAG-lock-pick 2 Tiny
JTAG-lock-pick 2 Tiny
  

EDIT (2012.07.08):

Trochę zdjęć dodających całej sprawie "skali" (;

JTAG-lock-pick 2 Tiny
JTAG-lock-pick 2 Tiny
JTAG-lock-pick 2 Tiny
JTAG-lock-pick 2 Tiny
JTAG-lock-pick 2 Tiny
JTAG-lock-pick 2 Tiny
JTAG-lock-pick 2 Tiny
JTAG-lock-pick 2 Tiny
JTAG-lock-pick 2 Tiny
JTAG-lock-pick 2 Tiny
 

Zmieniony: Niedziela, 08 Lipiec 2012 09:16
 
«PoczątekPoprzednia12345678910NastępnaOstatnie»

Strona 4 z 10