lip 30 2010

Olimex SAM7-EX256, ARM-USB-TINY i Linux

Category: UncategorizedAdam Taciak @ 23:15

Jakiś czas temu wpadła w moje ręce płytka z procesorem ARM firmy Atmel, zaś sama płytka wyprodukowana została przez firmę Olimex. W owym czasie musiałem szybko zacząć z niej korzystać, więc nie chciałem poświęcać zbyt wiele czasu na uruchomienie tego urządzenia za pośrednictwem systemu Linux. Oczywiście do zestawu dołączona jest płytka wraz ze środowiskiem Eclipse oraz skonfigurowanym już oprogramowaniem pod system Windows. Jak się jednak okazało, całość można bardzo łatwo i szybko zmusić do współpracy z systemem Linux.

Płytka firmy Olimex z procesorem ARMDo zestawu odtrzymałem debugger ARM-USB-TINY tej samej firmy, Olimex. Debugger ten oparty jest na układzie FT2232 więc bez problemu można zmusić go do współpracy z systemem Linux.

Aby rozpocząć pracę, należy koniecznie zainstalować aplikację Open On-Chip Debugger (openocd), która oczywiście znajduje się w Portage. Zanim jednak zaczniemy instalację, należy się upewnić, że openocd zostanie skompilowane z flagą ftd2xx (jest to biblioteka umożliwiająca bezpośredni dostęp do USB).

asmodeus discovery # emerge openocd
Calculating dependencies… done!
>>> Verifying ebuild manifests
>>> Emerging (1 of 1) dev-embedded/openocd-0.3.1
>>> Downloading ‘http://gentoo.supp.name/distfiles/openocd-0.3.1.tar.gz’
>>> Installing (1 of 1) dev-embedded/openocd-0.3.1
>>> Auto-cleaning packages…
>>> No outdated packages were found on your system.
* Regenerating GNU info directory index…
* Processed 163 info files.
asmodeus discovery #
Debugger firmy Olimex
Połowa drogi za nami, teraz trzeba przygotować plik konfiguracyjny dla openocd, aby móc się połączyć z debuggerem. W katalogu /usr/share/openocd/scripts/ znajdują się katalogi interface oraz target. Są tam wcześniej przygotowane pliki konfiguracyjne dla wybranych urządzeń, i kolejno pierwszy katalog posiada pliki konfiguracyjne dla różnych debuggerów, a drugi dla różnych procesorów. Z racji tego iż aplikacja openocd domyślnie poszukuje pliku openocd.cfg, utworzymy taki plik, na podstawie dwóch skrytpów z powyższych katalogów.
cat /usr/share/openocd/scripts/interface/olimex-jtag-tiny.cfg /usr/share/openocd/scripts/target/sam7x256.cfg > openocd.cfg
Gotowe. Teraz wystarczy wydać polecenie openocd:
discovery@asmodeus ~/ARM $ openocd
Open On-Chip Debugger 0.3.1 (2010-07-30-22:49)
$URL$
For bug reports, read
http://openocd.berlios.de/doc/doxygen/bugs.html
srst_only srst_pulls_trst srst_gates_jtag srst_open_drain
Warn : use ‘sam7x256.cpu’ as target identifier, not ’0′
Info : device: 4 „2232C”
Info : deviceID: 364511236
Info : SerialNumber: 
Info : Description: Olimex OpenOCD JTAG TINY A
Info : clock speed 6000 kHz
Info : JTAG tap: sam7x256.cpu tap/device found: 0x3f0f0f0f (mfg: 0×787, part: 0xf0f0, ver: 0×3)
Info : Embedded ICE version 1
Teraz możemy podłączyć się do debuggera przez telnet na porcie 4444 albo gdb na porcie 3333:
discovery@asmodeus ~ $ nc localhost 4444
Open On-Chip Debugger
> halt
halt
target state: halted
target halted in Thumb state due to debug-request, current mode: System
cpsr: 0x2000003f pc: 0×00101136
>

Leave a Reply