niedziela, 29 marca 2015

GNU ARM Eclipse + OpenOCD

Jak pisałem ostatnio : Dzięki GNU ARM Eclipse konfiguracja środowiska pod ARM'y stała się banalna. Nadal trzeba jednak potrafić użyć OpenOCD, którego ustawienia / ustawianie łatwo zapomnieć gdy ma się je wpisane na stałe w jakimś miejscu.

Od początku! Na początek trzeba OpenOCD ściągnąć:
OpenOCD - sourceforge download
Następnie wypakować (tego raczej tłumaczyć już nie będę...) i zbudować. Tu UWAGA: by móc używać np z ST-Linka potrzebna jest biblioteka libusb-1.x w wersji developerskiej, inaczej nie zbudujemy sobie supportu i OpenOCD będzie wyrzucał nam niezbyt jasny komunikat który wcale nie wskazuje na nieodpowiednią kompilację ;)

1) By zainstalować libusb w najnowszej wersji wraz z developerką proponuję użyć tym razem menedżera pakietów synaptic, wpisać w wyszukiwaniu "libusb-1" i zainstalować z okienka. Lub standardowe "apt-get install libusb-1.0.0 libusb-1.0.0-dev"

2) Konfigurujemy i budujemy instalkę OpenOCD, pomijając to że wszystko jest w README, bo zwykle czytamy tą część gdy coś nie działa (a w tym przypadku dojście dlaczego może trochę potrwać)
./configure --verbose --enable-stlink (można przekazać więcej parametrów, polecam dla ciekawych :P)
make

3) Instalujemy OpenOCD: sudo make install

4) Instalujemy sobie pięknie dostarczone udev rules:
sudo cp 99-openocd.rules /etc/udev/rules.d
jeśli nie jesteśmy w grupie plugdev (lub nie istnieje?) wtedy:
sudo useradd -G plugdev >NazwaUsera<
robimy reload udev rules, albo restart PC
sudo udevadm control --reload-rules

Możemy sprawdzić czy napewno przeszło wszystko pomyślnie:
openocd --version
Powinno zwrócić nam naszą wersję OpenOCD na dziś dzień jest to 0.8.0

By używać OpenOCD z ARM Eclipsem pozostało nam jedynie dobrze skonfigurować to w Eclipsie.

 

1)  W OpenOCD setup, w części executable podajemy ścieżkę do binarki openocd (możemy ją znaleźć poprzez najpierw: "cd //"  potem: "sudo find -iname openocd")

2) Podkreślone na niebiesko config options jest mega istotne. Na screenie używam plików z katalogu w którym rozpakowałem OpenOCD, jednak po instalacji powinny być one przekopiowane do /usr/local/share/openocd/scripts/
opcja -f >ścieżka< /interface/>programator<.cfg służy do wybrania programatora, -f >ścieżka< /target/>procesor<.cfg służy do wybrania procesora. Trzeba podać obie ;)

3) W GDB Client Setup należy podać GDB dla ARM'ów , a nie domyślne GDB (da się zrobić, been there done that, a błąd jaki się wysypuje też nie jest instynktowny ;) ) Jest on w tym samym folderze gdzie kompilator pod ARM'y :) Jeśli nie pamiętamy gdzie go skopiowaliśmy (a to źle...) znów przyda się nam:
cd //
sudo find -iname arm-none-eabi-gdb

I możemy cieszyć się działającym debugerem. Nie jest to trune - ale łatwo o czymś zapomnieć, a wtedy mszczą się prawa Murphiego ;)