Własne środowisko programistyczne

Transkrypt

Własne środowisko programistyczne
Programowanie mikroprocesorów
jednoukładowych
Własne środowisko programistyczne
Mariusz Naumowicz
Programowanie mikroprocesorów jednoukładowych
23 listopada 2016
1 / 18
Plan I
Integracja środowiska
Ubuntu
Eclipse
QEMU
Jenkins
Mariusz Naumowicz
Programowanie mikroprocesorów jednoukładowych
23 listopada 2016
2 / 18
Ubuntu I
Ubuntu Linux jest gotowym systemem biurkowym. Autorzy dystrybucji wybrali z olbrzymich
zasobów Debiana ich zdaniem najlepsze i najstabilniejsze oprogramowanie niezbędne do
pełnego wykorzystania komputera. Pozwala to na uruchomienie i efektywne wykorzystanie
systemu bezpośrednio po instalacji. Jednocześnie, poprzez pozostawienie dostępu do pakietów
debianowych, każdy może dostosować system do własnych potrzeb i upodobań.
Mariusz Naumowicz
Programowanie mikroprocesorów jednoukładowych
23 listopada 2016
3 / 18
Zalety i wady Ubuntu z perspektywy programisty I
Plusy:
I
dostęp do dużej ilości pakietów
I
w przypadku LTS długie wsparcie dla systemu
I
łatwość obsługi
I
obsługa wielu platform
Minusy:
I
domyślne środowisko graficzne działa wolno
I
problemy ze stabilnością
Mariusz Naumowicz
Programowanie mikroprocesorów jednoukładowych
23 listopada 2016
4 / 18
Narzędzia programistyczne I
Instalacja kompilatorów i debuggera:
apt-get install gcc-arm-none-eabi gdb-arm-none-eabi
Mariusz Naumowicz
Programowanie mikroprocesorów jednoukładowych
23 listopada 2016
5 / 18
Eclipse I
Eclipse to rozbudowane środowisko programistyczne stworzone przez firmę IBM i przekazane
następnie społeczności Open Source, którego główna zaletą jest obsługa wtyczek
rozszerzających jego możliwości o obsługę wielu języków tworzenia kodu. Wśród wielu pluginów
znajdziemy m.in. odpowiedzialne za wspomaganie pisania aplikacji w języku Java, C, C++,
PHP, JavaScript, Actionscript 2, AmigaDT, tworzenie GUI itp. Eclipse posiada takie funkcje jak
weryfikacja błędów, auto uzupełnianie kodu czy podświetlanie składni.
Program został napisany w Javie dzięki czemu jest bardzo elastyczny i można go uruchomić na
różnych platformach systemowych (Windows, Linux).
W skład platformy, prócz IDE, wchodzą między innymi takie narzędzia, jak Web Tools
Platform Project do budowania usług i aplikacji sieciowych, C/C++ Development Tooling do
rozwijania aplikacji w C/C++, kompletne narzędzie do raportowania Business Intelligence and
Mariusz Naumowicz
Programowanie mikroprocesorów jednoukładowych
23 listopada 2016
6 / 18
Eclipse II
Reporting Tools, generator kodu Eclipse Modeling Framework oraz Graphical Editing
Framework do tworzenia graficznych interfejsów użytkownika.
Mariusz Naumowicz
Programowanie mikroprocesorów jednoukładowych
23 listopada 2016
7 / 18
Zalety i wady Eclipse I
Zalety:
I
Eclipse CDT (C/C++ Development Tooling)
I
możliwość rozbudowy przez wtyczki
I
wbudowane środowisko do debuggowania
I
obsługa wielu języków programowania
Wady:
I
program napisany jest w języku Java, przez co działa wolno na starszych maszynach
I
wymaga środowiska Java do uruchomienia
Mariusz Naumowicz
Programowanie mikroprocesorów jednoukładowych
23 listopada 2016
8 / 18
Eclipse CDT (C/C++ Development Tooling) I
CDT jest nakładką na środowisko Eclipse wspierającą tworzenie oprogramowania w języku
C/C++. Pozwala na kolorwanie składni, śledznie błędów poprzez wskazywanie linii z błędem w
konsoli zdarzeń oraz w edytorze. Istotnym elementem jest tworzenie projektów dla różnych
toolchainów dla których środowisko posiada zdefiniowane domyślne ustawienia. Środowisko
umożliwia także debuggowanie kodu, daje możliwość śledzenia wykonywania kodu linia po linii,
podgląd wartości rejestrów itp. Dodatkowym atutem jest możliwość obsługi oprogramowania
do kontroli wersji poprzez wtyczki. Warto dodać, że system podpowiada składnię używanych
funkcji.
Instalacja Eclipse CDT w Ubuntu:
apt-get install eclipse-cdt
Mariusz Naumowicz
Programowanie mikroprocesorów jednoukładowych
23 listopada 2016
9 / 18
Obsługa ARM w Eclipse CDT I
Aby umożliwić współpracę Eclipse z architekturą ARM należy zainstlować odpowiednią
wtyczkę. W menu Help należy wybrać Install New Software i podać następujący adres:
http://gnuarmeclipse.sourceforge.net/updates
Mariusz Naumowicz
Programowanie mikroprocesorów jednoukładowych
23 listopada 2016
10 / 18
QEMU I
QEMU jest emulatorem wielu platform sprzętowych oraz programem umożliwiającym
wirtualizację.
Jako emulator umożliwia uruchamianie różnych systemów operacyjnych oraz programów dla
jednej maszyny (np. ARMa) na innej maszynie (np. PC). Dzięki użyciu dynamicznej translacji
osiąga on bardzo dobrą wydajność.
Jako program umożliwiający wirtualizację QEMU osiąga wydajność bliską wydajności natywnej
bezpośrednio na procesorze hosta. QEMU wspiera wirtualizację poprzez Xen lub przez moduł
KVM w Linuxie. Używająć KVM, QEMU może wirtualizować x86, serwer i system wbudowany
PowerPC, S390, 32-bitowy i 64-bitowy ARM oraz MIPS.
Instalcja QEMU w Ubuntu:
apt-get install qemu-system-arm
Mariusz Naumowicz
Programowanie mikroprocesorów jednoukładowych
23 listopada 2016
11 / 18
QEMU możliwości z perspektywy programisty I
I
możliwość emulacji wielu procesorów i płyt
I
możliwość emulacji podzespołów (uart, klawiatura, mysz, karta sieciowa)
I
możliwość podłączenia rzeczywistych urządzeń do emulowanego systemu
I
wbudowany debugger
I
obsługa dźwięku i obrazu
Mariusz Naumowicz
Programowanie mikroprocesorów jednoukładowych
23 listopada 2016
12 / 18
Platofrmy ARM w QEMU 2.5 I
I
akita Sharp SL-C1000 (Akita) PDA (PXA270)
I
borzoi Sharp SL-C3100 (Borzoi) PDA (PXA270)
I
canon-a1100 Canon PowerShot A1100 IS
I
cheetah Palm Tungsten|E aka. Cheetah PDA (OMAP310)
I
collie Sharp SL-5500 (Collie) PDA (SA-1110)
I
connex Gumstix Connex (PXA255)
I
cubieboard cubietech cubieboard
I
highbank Calxeda Highbank (ECX-1000)
I
imx25-pdk ARM i.MX25 PDK board (ARM926)
I
integratorcp ARM Integrator/CP (ARM926EJ-S)
I
kzm ARM KZM Emulation Baseboard (ARM1136)
I
lm3s6965evb Stellaris LM3S6965EVB
Mariusz Naumowicz
Programowanie mikroprocesorów jednoukładowych
23 listopada 2016
13 / 18
Platofrmy ARM w QEMU 2.5 II
I
lm3s811evb Stellaris LM3S811EVB
I
mainstone Mainstone II (PXA27x)
I
midway Calxeda Midway (ECX-2000)
I
musicpal Marvell 88w8618 / MusicPal (ARM926EJ-S)
I
n800 Nokia N800 tablet aka. RX-34 (OMAP2420)
I
n810 Nokia N810 tablet aka. RX-44 (OMAP2420)
I
netduino2 Netduino 2 Machine
I
none empty machine
I
nuri Samsung NURI board (Exynos4210)
I
realview-eb ARM RealView Emulation Baseboard (ARM926EJ-S)
I
realview-eb-mpcore ARM RealView Emulation Baseboard (ARM11MPCore)
I
realview-pb-a8 ARM RealView Platform Baseboard for Cortex-A8
I
realview-pbx-a9 ARM RealView Platform Baseboard Explore for Cortex-A9
Mariusz Naumowicz
Programowanie mikroprocesorów jednoukładowych
23 listopada 2016
14 / 18
Platofrmy ARM w QEMU 2.5 III
I
I
I
I
I
I
I
I
I
I
I
I
I
I
smdkc210 Samsung SMDKC210 board (Exynos4210)
spitz Sharp SL-C3000 (Spitz) PDA (PXA270)
sx1 Siemens SX1 (OMAP310) V2
sx1-v1 Siemens SX1 (OMAP310) V1
terrier Sharp SL-C3200 (Terrier) PDA (PXA270)
tosa Sharp SL-6000 (Tosa) PDA (PXA255)
verdex Gumstix Verdex (PXA270)
versatileab ARM Versatile/AB (ARM926EJ-S)
versatilepb ARM Versatile/PB (ARM926EJ-S)
vexpress-a15 ARM Versatile Express for Cortex-A15
vexpress-a9 ARM Versatile Express for Cortex-A9
virt ARM Virtual Machine
xilinx-zynq-a9 Xilinx Zynq Platform Baseboard for Cortex-A9
z2 Zipit Z2 (PXA27x)
Mariusz Naumowicz
Programowanie mikroprocesorów jednoukładowych
23 listopada 2016
15 / 18
Debuggowanie w QEMU
QEMU umożliwia debuggowanie programów napisanych dla różnych platform. Aby uruchomić
debuggowanie podczas emulacji należy dodać opcję -s w linii komend emulatora. Ustawia to
port 1234 w tryb nasłuchu i czeka na połączenie ze strony debuggera. W gdb należy wpisać
następujący kod aby połączyć się z emulatorem:
(gdb) target remote localhost:1234
Mariusz Naumowicz
Programowanie mikroprocesorów jednoukładowych
23 listopada 2016
16 / 18
USB w QEMU
Dzięki bibliotece libusb możliwe jest podłączanie fizycznych urządzeń USB do systemu
uruchamianego w QEMU. Służy do tego opcja -usb -usbdevice host:DEVICE_ID.
1
2
3
$ lsusb
Bus 001 D e v i c e 0 0 1 : ID 1 d6b : 0 0 0 1 L i n u x F o u n d a t i o n 1 . 1 r o o t hub
Bus 001 D e v i c e 0 0 2 : ID 18 d1 : 4 e11 G o o g l e I n c . Nexus One Phone
Mariusz Naumowicz
Programowanie mikroprocesorów jednoukładowych
23 listopada 2016
17 / 18
Jenkins
Mariusz Naumowicz
Programowanie mikroprocesorów jednoukładowych
23 listopada 2016
18 / 18
References
Mariusz Naumowicz
Programowanie mikroprocesorów jednoukładowych
23 listopada 2016
19 / 18