techniki rozbudowy systemów wbudowanych >>> narzędzia ... · >>>zalety i wady...

24
>>> Techniki rozbudowy systemów wbudowanych >>> Narzędzia wspomagające rozbudowę Name: Mariusz Naumowicz Date: 29 maja 2019 [~]$ _ [1/24]

Upload: others

Post on 05-Apr-2020

11 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Techniki rozbudowy systemów wbudowanych >>> Narzędzia ... · >>>Zalety i wady zintegrowanych środowisk programistycznych Zalety: * zwiększona wydajność – szybsze kodowanie

>>> Techniki rozbudowy systemów wbudowanych>>> Narzędzia wspomagające rozbudowę

Name: Mariusz NaumowiczDate: 29 maja 2019

[~]$ _ [1/24]

Page 2: Techniki rozbudowy systemów wbudowanych >>> Narzędzia ... · >>>Zalety i wady zintegrowanych środowisk programistycznych Zalety: * zwiększona wydajność – szybsze kodowanie

>>> Treści wykładu

1. Dedykowane i zintegrowane narzędzia programistyczneAtmel StudioMPLAB X IDEZalety i wady zintegrowanych środowisk programistycznych

2. Integracja własnego środowiskaMicrosoft WindowsZalety i wady Microsoft Windows z perspektywy programistyUbuntuZalety i wady Ubuntu z perspektywy programistyEclipseZalety i wady EclipseEclipse CDT (C/C++ Development Tooling)Obsługa ARM w Eclipse CDTQEMUQEMU możliwości z perspektywy programistyPlatformy ARM w QEMU 2.5Debugowanie w QEMUUSB w QEMUWireshark

[~]$ _ [2/24]

Page 3: Techniki rozbudowy systemów wbudowanych >>> Narzędzia ... · >>>Zalety i wady zintegrowanych środowisk programistycznych Zalety: * zwiększona wydajność – szybsze kodowanie

>>> Atmel Studio

Studio 7 to zintegrowana platforma programistyczna (IDP) do opracowywania idebugowania wszystkich aplikacji mikrokontrolerów AVR® i SAM. Atmel Studio 7 IDPzapewnia bezproblemowe i łatwe w użyciu środowisko do pisania, budowania idebugowania aplikacji napisanych w C / C ++ lub w kodzie zespołu. Łączy się równieżbezproblemowo z debuggerami, programistami i zestawami programistycznymi, któreobsługują urządzenia AVR® i SAM.

[1. Dedykowane i zintegrowane narzędzia programistyczne]$ _ [3/24]

Page 4: Techniki rozbudowy systemów wbudowanych >>> Narzędzia ... · >>>Zalety i wady zintegrowanych środowisk programistycznych Zalety: * zwiększona wydajność – szybsze kodowanie

>>> MPLAB X IDE

MPLAB® X Integrated Development Environment (IDE) to program działający nakomputerze PC (Windows®, Mac OS®, Linux®) w celu opracowania aplikacji dlamikrokontrolerów Microchip i cyfrowych sterowników sygnału. Nazywa się tozintegrowanym środowiskiem programistycznym, ponieważ zapewnia pojedynczezintegrowane „środowisko”do opracowywania kodu dla wbudowanych mikrokontrolerów.

[1. Dedykowane i zintegrowane narzędzia programistyczne]$ _ [4/24]

Page 5: Techniki rozbudowy systemów wbudowanych >>> Narzędzia ... · >>>Zalety i wady zintegrowanych środowisk programistycznych Zalety: * zwiększona wydajność – szybsze kodowanie

>>> Zalety i wady zintegrowanych środowisk programistycznych

Zalety:* zwiększona wydajność – szybsze kodowanie przy mniejszym wysiłku* współpraca – grupa programistów może łatwo współpracować w ramach środowiska IDE* zarządzanie projektem – łatwiejsze zarządzanie zasobami projektu

Wady:* może być zbyt skomplikowany dla początkujących programistów* każde IDE będzie miało unikalną krzywą uczenia się wymagającą czasu na naukę* nie można automatycznie naprawić błędów, nadal potrzebuję wiedzy, aby skuteczniekodować

* komercyjne rozwiązania niosą za sobą ograniczenia w bezpłatnej wersji, azniesienie ograniczeń związane jest z opłatami

[1. Dedykowane i zintegrowane narzędzia programistyczne]$ _ [5/24]

Page 6: Techniki rozbudowy systemów wbudowanych >>> Narzędzia ... · >>>Zalety i wady zintegrowanych środowisk programistycznych Zalety: * zwiększona wydajność – szybsze kodowanie

>>> Microsoft Windows

Microsoft Windows – rodzina systemów operacyjnych stworzonych przez firmę Microsoft.Systemy rodziny Windows działają na serwerach, systemach wbudowanych oraz nakomputerach osobistych, z którymi są najczęściej kojarzone.

[2. Integracja własnego środowiska]$ _ [6/24]

Page 7: Techniki rozbudowy systemów wbudowanych >>> Narzędzia ... · >>>Zalety i wady zintegrowanych środowisk programistycznych Zalety: * zwiększona wydajność – szybsze kodowanie

>>> Zalety i wady Microsoft Windows z perspektywy programisty

Plusy:* prędkość działania* dostęp do większej oprogramowania komercyjnego wspierającego rozwój systemówwbudowanych

Minusy:* koszt licencji* stabilność systemu zagrożona aktualizacjami* aktualizacje obciążające system i łącze internetowe* problemy z kompatybilnością oprogramowania działającego na starszych wersjachsystemu, problem dotyczy także sterowników

[2. Integracja własnego środowiska]$ _ [7/24]

Page 8: Techniki rozbudowy systemów wbudowanych >>> Narzędzia ... · >>>Zalety i wady zintegrowanych środowisk programistycznych Zalety: * zwiększona wydajność – szybsze kodowanie

>>> Ubuntu

Ubuntu Linux jest gotowym systemem biurkowym. Autorzy dystrybucji wybrali zolbrzymich zasobów Debiana ich zdaniem najlepsze i najstabilniejsze oprogramowanieniezbędne do pełnego wykorzystania komputera. Pozwala to na uruchomienie i efektywnewykorzystanie systemu bezpośrednio po instalacji. Jednocześnie, poprzezpozostawienie dostępu do pakietów debianowych, każdy może dostosować system dowłasnych potrzeb i upodobań.

[2. Integracja własnego środowiska]$ _ [8/24]

Page 9: Techniki rozbudowy systemów wbudowanych >>> Narzędzia ... · >>>Zalety i wady zintegrowanych środowisk programistycznych Zalety: * zwiększona wydajność – szybsze kodowanie

>>> Zalety i wady Ubuntu z perspektywy programisty

Plusy:* dostęp do dużej ilości pakietów* w przypadku LTS długie wsparcie dla systemu* łatwość obsługi* obsługa wielu platform

Minusy:* domyślne środowisko graficzne działa wolno* problemy ze stabilnością

[2. Integracja własnego środowiska]$ _ [9/24]

Page 10: Techniki rozbudowy systemów wbudowanych >>> Narzędzia ... · >>>Zalety i wady zintegrowanych środowisk programistycznych Zalety: * zwiększona wydajność – szybsze kodowanie

>>> Narzędzia programistyczne

Instalacja kompilatorów i debugera:apt-get install gcc-arm-none-eabi gdb-arm-none-eabi

[2. Integracja własnego środowiska]$ _ [10/24]

Page 11: Techniki rozbudowy systemów wbudowanych >>> Narzędzia ... · >>>Zalety i wady zintegrowanych środowisk programistycznych Zalety: * zwiększona wydajność – szybsze kodowanie

>>> Eclipse

Eclipse to rozbudowane środowisko programistyczne stworzone przez firmę IBM iprzekazane następnie społeczności Open Source, którego główna zaletą jest obsługawtyczek 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 pisaniaaplikacji w języku Java, C, C++, PHP, JavaScript, Actionscript 2, AmigaDT, tworzenieGUI itp. Eclipse posiada takie funkcje jak weryfikacja błędów, auto uzupełnianiekodu czy podświetlanie składni.Program został napisany w Javie dzięki czemu jest bardzo elastyczny i można gouruchomić na różnych platformach systemowych (Windows, Linux).W skład platformy, prócz IDE, wchodzą między innymi takie narzędzia, jak Web ToolsPlatform Project do budowania usług i aplikacji sieciowych, C/C++ DevelopmentTooling do rozwijania aplikacji w C/C++, kompletne narzędzie do raportowaniaBusiness Intelligence and Reporting Tools, generator kodu Eclipse Modeling Frameworkoraz Graphical Editing Framework do tworzenia graficznych interfejsów użytkownika.

[2. Integracja własnego środowiska]$ _ [11/24]

Page 12: Techniki rozbudowy systemów wbudowanych >>> Narzędzia ... · >>>Zalety i wady zintegrowanych środowisk programistycznych Zalety: * zwiększona wydajność – szybsze kodowanie

>>> Zalety i wady Eclipse

Zalety:* Eclipse CDT (C/C++ Development Tooling)* możliwość rozbudowy przez wtyczki* wbudowane środowisko do debugowania* obsługa wielu języków programowania

Wady:* program napisany jest w języku Java, przez co działa wolno na starszychmaszynach

* wymaga środowiska Java do uruchomienia

[2. Integracja własnego środowiska]$ _ [12/24]

Page 13: Techniki rozbudowy systemów wbudowanych >>> Narzędzia ... · >>>Zalety i wady zintegrowanych środowisk programistycznych Zalety: * zwiększona wydajność – szybsze kodowanie

>>> Eclipse CDT (C/C++ Development Tooling)

CDT jest nakładką na środowisko Eclipse wspierającą tworzenie oprogramowania wjęzyku C/C++. Pozwala na kolorowanie składni, śledzenie błędów poprzez wskazywanielinii z błędem w konsoli zdarzeń oraz w edytorze. Istotnym elementem jest tworzenieprojektów dla różnych toolchainów dla których środowisko posiada zdefiniowanedomyślne ustawienia. Środowisko umożliwia także debugowanie 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 poprzezwtyczki. Warto dodać, że system podpowiada składnię używanych funkcji.Instalacja Eclipse CDT w Ubuntu:apt-get install eclipse-cdt

[2. Integracja własnego środowiska]$ _ [13/24]

Page 14: Techniki rozbudowy systemów wbudowanych >>> Narzędzia ... · >>>Zalety i wady zintegrowanych środowisk programistycznych Zalety: * zwiększona wydajność – szybsze kodowanie

>>> Obsługa ARM w Eclipse CDT

Aby umożliwić współpracę Eclipse z architekturą ARM należy zainstalować odpowiedniąwtyczkę. W menu Help należy wybrać Install New Software i podać następujący adres:http://gnuarmeclipse.sourceforge.net/updates

[2. Integracja własnego środowiska]$ _ [14/24]

Page 15: Techniki rozbudowy systemów wbudowanych >>> Narzędzia ... · >>>Zalety i wady zintegrowanych środowisk programistycznych Zalety: * zwiększona wydajność – szybsze kodowanie

>>> QEMU

QEMU jest emulatorem wielu platform sprzętowych oraz programem umożliwiającymwirtualizację.Jako emulator umożliwia uruchamianie różnych systemów operacyjnych oraz programówdla jednej maszyny (np. ARMa) na innej maszynie (np. PC). Dzięki użyciu dynamicznejtranslacji osiąga on bardzo dobrą wydajność.Jako program umożliwiający wirtualizację QEMU osiąga wydajność bliską wydajnościnatywnej bezpośrednio na procesorze hosta. QEMU wspiera wirtualizację poprzez Xenlub przez moduł KVM w Linuxie. Używając KVM, QEMU może wirtualizować x86, serwer isystem wbudowany PowerPC, S390, 32-bitowy i 64-bitowy ARM oraz MIPS.Instalacja QEMU w Ubuntu:apt-get install qemu-system-arm

[2. Integracja własnego środowiska]$ _ [15/24]

Page 16: Techniki rozbudowy systemów wbudowanych >>> Narzędzia ... · >>>Zalety i wady zintegrowanych środowisk programistycznych Zalety: * zwiększona wydajność – szybsze kodowanie

>>> QEMU możliwości z perspektywy programisty

* możliwość emulacji wielu procesorów i płyt* możliwość emulacji podzespołów (uart, klawiatura, mysz, karta sieciowa)* możliwość podłączenia rzeczywistych urządzeń do emulowanego systemu* wbudowany debugger* obsługa dźwięku i obrazu

[2. Integracja własnego środowiska]$ _ [16/24]

Page 17: Techniki rozbudowy systemów wbudowanych >>> Narzędzia ... · >>>Zalety i wady zintegrowanych środowisk programistycznych Zalety: * zwiększona wydajność – szybsze kodowanie

>>> Platformy ARM w QEMU 2.5 I

* akita Sharp SL-C1000 (Akita) PDA (PXA270)* borzoi Sharp SL-C3100 (Borzoi) PDA (PXA270)* canon-a1100 Canon PowerShot A1100 IS* cheetah Palm Tungsten|E aka. Cheetah PDA (OMAP310)* collie Sharp SL-5500 (Collie) PDA (SA-1110)* connex Gumstix Connex (PXA255)* cubieboard cubietech cubieboard* highbank Calxeda Highbank (ECX-1000)* imx25-pdk ARM i.MX25 PDK board (ARM926)* integratorcp ARM Integrator/CP (ARM926EJ-S)* kzm ARM KZM Emulation Baseboard (ARM1136)* lm3s6965evb Stellaris LM3S6965EVB* lm3s811evb Stellaris LM3S811EVB* mainstone Mainstone II (PXA27x)* midway Calxeda Midway (ECX-2000)

[2. Integracja własnego środowiska]$ _ [17/24]

Page 18: Techniki rozbudowy systemów wbudowanych >>> Narzędzia ... · >>>Zalety i wady zintegrowanych środowisk programistycznych Zalety: * zwiększona wydajność – szybsze kodowanie

>>> Platformy ARM w QEMU 2.5 II

* musicpal Marvell 88w8618 / MusicPal (ARM926EJ-S)* n800 Nokia N800 tablet aka. RX-34 (OMAP2420)* n810 Nokia N810 tablet aka. RX-44 (OMAP2420)* netduino2 Netduino 2 Machine* none empty machine* nuri Samsung NURI board (Exynos4210)* realview-eb ARM RealView Emulation Baseboard (ARM926EJ-S)* realview-eb-mpcore ARM RealView Emulation Baseboard (ARM11MPCore)* realview-pb-a8 ARM RealView Platform Baseboard for Cortex-A8* realview-pbx-a9 ARM RealView Platform Baseboard Explore for Cortex-A9* 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)

[2. Integracja własnego środowiska]$ _ [18/24]

Page 19: Techniki rozbudowy systemów wbudowanych >>> Narzędzia ... · >>>Zalety i wady zintegrowanych środowisk programistycznych Zalety: * zwiększona wydajność – szybsze kodowanie

>>> Platformy ARM w QEMU 2.5 III

* 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)

[2. Integracja własnego środowiska]$ _ [19/24]

Page 20: Techniki rozbudowy systemów wbudowanych >>> Narzędzia ... · >>>Zalety i wady zintegrowanych środowisk programistycznych Zalety: * zwiększona wydajność – szybsze kodowanie

>>> Debugowanie w QEMU

QEMU umożliwia debugowanie programów napisanych dla różnych platform. Aby uruchomićdebugowanie podczas emulacji należy dodać opcję -s w linii komend emulatora. Ustawiato port 1234 w tryb nasłuchu i czeka na połączenie ze strony debuggera. W gdb należywpisać następujący kod aby połączyć się z emulatorem:(gdb) target remote localhost:1234

[2. Integracja własnego środowiska]$ _ [20/24]

Page 21: Techniki rozbudowy systemów wbudowanych >>> Narzędzia ... · >>>Zalety i wady zintegrowanych środowisk programistycznych Zalety: * zwiększona wydajność – szybsze kodowanie

>>> USB w QEMU

Dzięki bibliotece libusb możliwe jest podłączanie fizycznych urządzeń USB do systemuuruchamianego w QEMU. Służy do tego opcja -usb -usbdevice host:DEVICE_ID.

1 $ lsusb2 Bus 001 Device 001: ID 1d6b :0001 Linux Foundation 1.1 root hub3 Bus 001 Device 002: ID 18d1:4e11 Google Inc. Nexus One Phone

[2. Integracja własnego środowiska]$ _ [21/24]

Page 22: Techniki rozbudowy systemów wbudowanych >>> Narzędzia ... · >>>Zalety i wady zintegrowanych środowisk programistycznych Zalety: * zwiększona wydajność – szybsze kodowanie

>>> Wireshark

Wireshark jest czołowym i powszechnie używanym analizatorem protokołów sieciowych naświecie. Pozwala zobaczyć, co dzieje się w sieci na poziomie mikroskopowym i jestśtandardem"w wielu przedsiębiorstwach komercyjnych i non-profit, agencjach rządowychi instytucjach edukacyjnych. Rozwój Wireshark rozwija się dzięki wolontariatowiekspertów sieciowych na całym świecie i jest kontynuacją projektu rozpoczętego przezGeralda Combs w 1998 roku.

[2. Integracja własnego środowiska]$ _ [22/24]

Page 23: Techniki rozbudowy systemów wbudowanych >>> Narzędzia ... · >>>Zalety i wady zintegrowanych środowisk programistycznych Zalety: * zwiększona wydajność – szybsze kodowanie

>>> Wireshark – zestaw funkcji I

* Przechwytywanie na żywo i analiza offline* Standardowa trójpasmowa przeglądarka pakietów* Multi-platform: Działa w systemach Windows, Linux, MacOS, Solaris, FreeBSD,NetBSD i wielu innych

* Przechwycone dane sieciowe można przeglądać za pomocą GUI lub za pomocąnarzędzia TShark w trybie TTY

* Najpotężniejsze filtry wyświetlania w branży* Bogata analiza VoIP* Odczyt / zapis wielu różnych formatów plików przechwytywania: tcpdump (libpcap),Pcap NG, Catapult DCT2000, Cisco Secure IDS iplog, Microsoft Network Monitor,Network General Sniffer® (skompresowany i nieskompresowany), Sniffer® Pro iNetXray®, Network Instruments Observer , NetScreen snoop, Novell LANalyzer,RADCOM WAN / LAN Analyzer, Shomiti / Finisar Surveyor, Tektronix K12xx, VisualNetworks Visual UpTime, WildPackets EtherPeek / TokenPeek / AiroPeek i wieleinnych

* Pliki przechwytywania skompresowane za pomocą gzip można rozpakować w locie

[2. Integracja własnego środowiska]$ _ [23/24]

Page 24: Techniki rozbudowy systemów wbudowanych >>> Narzędzia ... · >>>Zalety i wady zintegrowanych środowisk programistycznych Zalety: * zwiększona wydajność – szybsze kodowanie

>>> Wireshark – zestaw funkcji II

* Dane na żywo można odczytać z Ethernetu, IEEE 802.11, PPP / HDLC, ATM,Bluetooth, USB, Token Ring, Frame Relay, FDDI i innych (w zależności odplatformy)

* Obsługa odszyfrowywania wielu protokołów, w tym IPsec, ISAKMP, Kerberos, SNMPv3,SSL / TLS, WEP i WPA / WPA2

* Reguły kolorowania można zastosować do listy pakietów w celu szybkiej iintuicyjnej analizy

* Dane wyjściowe można eksportować do XML, PostScript®, CSV lub zwykłego tekstu

[2. Integracja własnego środowiska]$ _ [24/24]