BF20 JTAG dla ARM ów z interfejsem USB Instrukcja obsługi Copyright (c) 2007 2008 Boff
Spis treści 1. Opis urządzenia...3 2. Instalacja oprogramowania w Windows...4 3. Instalacja oprogramowania w UBUNTU Linux...5 4. Płyta LiveDVD...6 5. Skrypty openocd...6 6. Skład zestawu BF-20...7-2- www.boff.pl
1. Opis urządzenia BF-20 jest narzędziem umożliwiającym debugowanie programów oraz programowanie pamięci FLASH wielu rodzin mikrokontrolerów z rdzeniem ARM wyposażonych w interfejs JTAG. Jest on w pełni zgodny z interfejsem OOCDLINK dzięki czemu może on współpracować z otwartym debugerem OPENOCD, umożliwiając pracę zarówno w niedocenianym środowisku Linux oraz Windows. BF-20 oprócz interfejsu JTAG zawiera dodatkowy interfejs szeregowy RS232, który może być wykorzystany na przykład do wyświetlania logów wysyłanych z urządzenia poprzez port szeregowy RS232 mikrokontrolera. Interfejs BF-20 zasilany jest z uruchamianej płytki, i umożliwia współprace z układami zasilanymi napięciem 5V oraz 3,3V. Za pomocą BF-20 użytkownik może przejąć kontrolę nad rdzeniem mikrokontrolera, oraz jego peryferiami i na przykład wymusić pracę krokową, ustawiać pułapki sprzętowe, podglądać stan rejestrów i pamięci. Na rysunku 1, 2 przedstawiono sygnały interfejsu JTAG, oraz RS232. Rysunek 2: Złącze RS232 Rysunek 1: Złącze JTAG Złącze JTAG jest 20 stykowym złączem zgodnym ze standardem WIGGLER, dzięki czemu za pomocą prostej taśmy (wchodzi w skład zestawu), urządzenie możemy podłączyć do wielu zestawów ewaluacyjnych różnych firm (np. zestawy ZL-xx Kamami). Z linii VREF (1), pobierane jest napięcie zasilające urządzenie. Złącze interfejsu RS232 posiada wyprowadzone wszystkie linie modemowe, i poziomy napięć sygnałów na tym interfejsie odpowiadają napięciu doprowadzonym do linii VREF złącza JTAG. Uwaga! Należy pamiętać aby do złącza portu szeregowego nie dołączać sygnałów z portów RS232 pracujących w standardzie napięciowym +/-12V, bo to grozi uszkodzeniem układu, lub uszkodzeniem portu USB komputera. BF-20 posiada 4 diody sygnalizujące stan pracy urządzenia. Dioda USBPwr umieszczona od strony interfejsu USB sygnalizuje obecność napięcia zasilającego z portu USB. Dioda TargetPwr sygnalizuje obecność napięcia zasilającego na płytce do której dołączony jest JTAG. Dioda SerTx sygnalizuje nadawanie danych przez interfejs RS232 urządzenia, natomiast dioda SerRx sygnalizuje odbieranie znaków poprzez dodatkowy port szeregowy urządzenia BF-20-3- www.boff.pl
2. Instalacja oprogramowania w Windows Proces rozpoczynamy od instalacji sterowników systemowych, w tym celu z katalogu bf20 kopiujemy na dysk plik CDM 2.04.06 WHQL Certified.zip, oraz rozpakowujemy go. Do złącza USB komputera podłączamy JTAG-a BF-20, w tym momencie system Windows powinien wykryć nowe urządzenie, a następnie powinno się pojawić okienko instalacji sterowników. Należy tutaj wybrać opcje Instalacji sterowników z określonej lokalizacji. w następnym ooknie dialogowym należy podać katalog zawierający pliki ze sterownikami, w tym celu klikamy na przycisk przeglądaj, a następnie wybieramy katalog gdzie zostały rozpakowane sterowniki, i wciskamy przycisk DALEJ> Po tej czynności system Windows powinien odnaleźć odpowiedni sterownik i zainstalować go w systemie. Aby upewnić się, że sterowniki zostały prawidłowo zainstalowane możemy wejść w managera urządzeń i sprawdzić czy w systemie istnieje urządzenie wirtualnego portu szeregowego. Przy okazji możemy zanotować numer tego portu, ponieważ jest to dodatkowy port szeregowy, -4- www.boff.pl
który jest dostępny w urządzeniu BF-200. BF-20 JTAG dla ARM-ów z interfejsem USB Uwaga! Aktualne sterowniki dla JTAG-a BF-20 możemy zawsze pobrać ze strony internetowej http://www.ftdichip.com/drivers/vcp.htm Gdy upewnimy się, że sterowniki zostały zainstalowane poprawnie, przystępujemy do instalacji programu OpenOcd. W tym celu z płyty DVD należy uruchomić program openocdr592-20080419.exe, znajdujący się w katalogu bf20 oraz zainstalować go tak jak każdy inny program dla systemu Windows. Najnowszą wersję programu OpenOCD możemy pobrać zawsze ze strony www.yagarto.de. 3. Instalacja oprogramowania w UBUNTU Linux W linuxie standardowo nie potrzebujemy instalować sterownika dla BF-20, ponieważ jest on domyślnie obsługiwany przez jądro linuxa. Jedyną czynnością jaką musimy wykonać jest instalacja programu obsługi JTAG-a OpenOCD. Najprostszym sposobem na instalację oprogramowania jest jego zainstalowanie z repozytorium na przykład za pomocą managera pakietów synaptic, poprzez zaznaczenie odpowiedniej opcji rys (n) Niestety instalacja openocd z repozytorium ma tę wadę że program ten jest niezbyt aktualny, oraz wykorzystywanie otwartych sterowników libftdi, które niestety są troche niestabilne. Dlatego zalecamy instalację przygotowanego przez nas programu OpenOCD, który znajduje się w katalogu bf20 na płycie DVD, lub kompilację aktualnej wersji openocd z najświeższych źródeł dostępnych na stronie http://openocd.berlios.de/web/ Opiszemy teraz sposób instalacji programu openocd z płyty DVD. Najpierw z katalogu bf20 (płyta DVD), skopiować do katalogu domowego plik openocd-r383-i386.tar.gz. Następnie należy rozpakować archiwum za pomocą polecenia sudo tar xvfz openocd-r383.tar.gz -C /, a następnie wydać polecenie sudo ldconfig. Po wykonaniu tych -5- www.boff.pl
czynności program jest już gotowy do użycia, możemy sprawdzić poprawność instalacji wywołując z konsoli polecenie openocd. Program powinien zwrócić wówczas informację o wersji oraz informację o braku pliku konfiguracyjnego. $URL: svn://svn.berlios.de/openocd/trunk/src/openocd.c $ Info: options.c:51 configuration_output_handler(): couldn't open script file openocd.cfg Error: jtag.c:1424 jtag_interface_init(): JTAG interface has to be specified, see "interface" command 4. Płyta LiveDVD Do zestawu BF-20 dołączana jest płyta DVD z bootowalnym systemem linux zawierającym kompletne środowisko uruchomieniowe dla mikrokontrolerów ARM, umożliwiające pisanie oraz uruchamianie oprogramowania dla mikrokontrolerów ARM. W skład środowiska wchodzi kompletny bootowalny system ubuntu linux kompilator języka C/C++ dla mikrokontrolerów ARM debugery: arm-elf-gdb, cgdb, arm-elf-gdbtui Kompletne środowisko IDE eclipse Aby skorzystać ze wspomnianego środowiska musimy uruchomić komputer, oraz ustawić go w BIOS-ie tak, aby uruchamiał się z płyty. Na płycie CD w katalogu /usr/share/doc/boff umiesczono przykładowe projekty dla zestawów ZL11ARM/ZL10ARM firmy Kamami. Pokażemy teraz jak w najprostszy sposób skompilować oraz zaprogramować pamięć FLASH mikrokontrolera LPC2142. W katalogu /usr/share/doc/boff/lpc214x zawarto przykład mrugający diodami LED D0..D7 zestawu ZL11ARM. Aby skompilować ten program uruchamiamy terminal a następnie za pomocą polecenia cp /usr/share/doc/boff/lpc214x ~, kopiujemy do katalogu domowego przykład. Następnie przechodzimy do tego katalogu za pomocą polecenia cd ~/lpc214x i kompilujemy przykład za pomocą polecenia make. Po wykonaniu tej czynności w katalogu powstanie plik example.hex, służący do programowania procesora. Aby zapisać program do pamięci FLASH mikrokontrolera należy teraz wydać polecenie make install. Polecenie to wywołuje program obsługi jtaga openocd, wraz ze skryptem, który programuje pamięć FLASH mikrokontrolera. Po zakończeniu programowania diody zestawu ZL11ARM powinny wyświetlać efekt węża świetlnego. 5. Skrypty openocd Program OpenOCD do prawidłowej pracy potrzebuje skryptów, których zadaniem jest opis aktualnie używanego interfejsu JTAG, typu procesora, oraz szeregu innych parametrów. Skrypty te zawierają szereg komend tekstowych dla programu OpenOCD ustawiające różnorodne parametry. Podstawowe przykłady oraz skrypty dla mikrokontrolerów STR912, LPC214x, oraz AT91RM9200 zostały dołączone do płyty. Oczywiście sam JTAG umożliwia programowanie dużo większej gamy procesorów. Program OpenOCD jest intensywnie rozwijany i lista obsługiwanych przez niego procesorów stale się rozrasta. Wiele przykładowych skryptów konfiguracyjnych można znaleźć w internecie, na przykład na stronie domowej projektu OpenOCD http://openocd.berlios.de/web/. Aby skorzystać ze skryptów zawartych w internecie należy zmodyfikować opis interfejsu sprzętowego tak jak poniżej: -6- www.boff.pl
#interface interface ft2232 ft2232_layout oocdlink ft2232_vid_pid 0x0403 0x6010 ft2232_device_desc "OOCDLink A" Pierwsza linia informuje debuger OpenOCD, aby korzystał ze sterownika ft2232, kolejna linia zawiera informację o modelu JTAGA. Następnie kolejne linie zawieraja konfiguracje identyfikatora USB urządzenia, oraz opis interfejsu urządzenia. Szczegółowe informację na temat konfiguracji,poszczególnych poleceń oraz możliwości OpenOCD opisane są na stronie domowej projektu OpenOCD http://openocd.berlios.de/web/ 6. Skład zestawu BF-20 W skład zestawu JTAG BF-20 wchodzą następujące elementy: Urządzenie JTAG BF-20 zgodne z intefejsem OOCDLINK Kabel Wiggler umożliwiający dołączenie JTAG-a do urządzenia Bootowalna płyta DVD zawierająca UBUNTU LINUX oraz kompletne środowisko uruchomieniowe dla mikrokontrolerów ARM. -7- www.boff.pl