Programowanie Systemów Wbudowanych
|
|
- Bogdan Biernacki
- 6 lat temu
- Przeglądów:
Transkrypt
1 Programowanie Systemów Wbudowanych OS Linux - Toolchain Iwona Kochańska Katedra Systemów Elektroniki Morskiej WETI PG
2 Co to jest toolchain? Toolchain - zestaw narzędzi do kompilacji kodu źródłowego do plików wykonywalnych na platformie docelowej: kompilator linker biblioteki współdzielone Za pomoca narzędzi toolchain można zbudować podstawowe elementy OS dla systemu wbudowanego: program rozruchowy (bootloader) jadro systemu (kernel) system plików (root filesystem) GUT Intel 2015/16 2/33
3 Co to jest toolchain? Toolchain powinien kompilować kod źródłowy w języku asemblera, C i C++ (w tych językach napisane sa kody źródłowe OS linux) Toolchain Linux składa się z elementów GNU project ( Alternatywa - kompilator Clang i zwi azany z nim LLVM project ( GUT Intel 2015/16 3/33
4 Elementy toolchain Binutils narzędzia binarne: assembler, linker, ld GCC kompilatory C i innych języków: C++, Objective-C, Objective- C++, Java, Fortran, Ada, i Go Biblioteka C ustandaryzowane API zgodne ze specyfikacja POSIX (podstawowe API jadra OS)... oraz kopia plików nagłówkowych jadra Linuxa. GUT Intel 2015/16 4/33
5 Toolchain Podstawowe definicje: build: platforma lokalna, na której realizowana jest kompilacja (na przykład PC z dystrybucja Debiana) target: platforma docelowa (na przykład Raspberry Pi) host: OS dostarczajacy wirtualnego środowiska guest: OS w środowisku wirtualnym GUT Intel 2015/16 5/33
6 Rodzaje toolchain-ów Natywny (np. w komputerach typu desktop) build machine host machine target machine arch. A arch. A arch. A Kompilacja skrośna (cross-compilation) build machine host machine target machine arch. A arch. A arch. B GUT Intel 2015/16 6/33
7 Rodzaje toolchain-ów Natywny skrośny (cross-native) build machine host machine target machine arch. A arch. B arch. B Canadian build machine host machine target machine arch. A arch. B arch. C GUT Intel 2015/16 7/33
8 Kompilacja skrośna Dwa podstawowe problemy kompilacji skrośnej: Wszystkie pliki nagłówkowe i biblioteki C/C++ dla platformy docelowej musza być dostępne na platformie kompilujacej (build). Kompilator powinien wygenerować kod właściwy dla platformy docelowej (target). GUT Intel 2015/16 8/33
9 Architektury CPU Toolchain powinien być dostosowany do właściwości CPU platformy docelowej (target): Architektury CPU: arm, mips, x86_64, itd. Big- lub little-endian: niektóre CPU moga pracować w obu trybach, ale kod maszynowy jest inny dla każdego z nich Wsparcie operacji na liczbach zmiennoprzecinkowych: sprzętowe lub programowe Application Binary Interface (ABI): konwencja przekazywania parametrów między wywołaniami funkcji GUT Intel 2015/16 9/33
10 Rodzaje ABI dla procesorów ARM OABI - Old Application Binary Interface (OABI) - nie kontynuowany po roku 2011 EABI - Extended Application Binary Interface (EABI) - rejestry ogólnego przeznaczenia (całkowitoliczbowe) EABIHF - Hard Float Extended Application Binary Interface - rejestry zmiennoprzecinkowe GUT Intel 2015/16 10/33
11 GNU prefix GNU prefix - złożony z trzech lub czterech elementów oddzielonych myślnikami: CPU: arm, mips, x86_64, el = little-endian, eb = big-endian; np. armeb = big-endian ARM Dostawca OS, np. poky Jadro, np. linux OS: nazwa przestrzeni użytkownika (gnu lub uclibc gnu). Może być dołaczony rodzaj ABI (gnueabi, gnueabihf, uclibcgnueabi, lub uclibcgnueabihf). $ gcc dumpmachine x86_64 linux gnu GUT Intel 2015/16 11/33
12 Instalacja toolchain-a dla ARM (RaspberryPi) Pobranie źródeł: cd katalog g i t clone h t t p s : / / g i t h u b. com / r a s p b e r r y p i / t o o l s Dodanie ścieżki do kompilatora skrośnego do pliku ~/.bashrc: export PATH=$PATH: katalog / r a s p b e r r y p i / t o o l s / arm bcm2708 / gcc l i n a r o arm l i n u x gnueabihf raspbian / bin GUT Intel 2015/16 12/33
13 Biblioteka C Application C library Linux kernel Interfejs programistyczny do OS Unix zdefiniowany jest w języku C (standard POSIX) Bilbioteka C to implementacja tego interfejsu (do komunikacji programu z jadrem systemu) Biblioteka C używa wywołań systemowych w celu uzyskania dostępu do usługi jadra (przejście między przestrzenia użytkownika a przestrzenia jadra) GUT Intel 2015/16 13/33
14 Biblioteki C glibc - standardowa GNU C, najbardziej kompletna implementacja POSIX API eglibc - wbudowana GLIBC; łatki do glibc dodajace opcje konfiguracji i wsparcie dla architektur nie obsługiwanych przez glibc; właczona do glibc poczawszy od wersji2.20 uclibc - C dla mikrokontrolerów; zaprojektowana do współpracy z uclinux (Linux dla CPUs bez jednostki zarzadzania pamięcia), obecnie współpracuje z pełnym Linuxem musl libc - nowa biblioteka C dla systemów wbudowanych GUT Intel 2015/16 14/33
15 Crosstool-NG Crosstool-NG (2007) - buduje wersje stand-alone toolchain-a do kompilacji skrośnej ze źródeł SoC lub od dostawcy platformy Potrzebne pakiety: $ sudo apt get i n s t a l l automake bison chrpath f l e x g++ g i t gperf gawk l i b e x p a t 1 dev libncurses5 dev l i b s d l 1.2 dev l i b t o o l python2.7 dev t e x i n f o Pobranie źródeł z a następnie: $ t a r x f c r o s s t o o l ng t a r. bz2 $ cd c r o s s t o o l ng $. / c o n f i g u r e $ make $ make i n s t a l l GUT Intel 2015/16 15/33
16 Crosstool-NG Wejście do crosstool menu: $. / ct ng Lista przykładowych konfiguracji: $. / ct ng l i s t samples Wybór konfiguracji: $. / ct ng arm cortex_a8 l i n u x gnueabi Zmiany za pomoca menu konfiguracyjnego: $. / ct ng menuconfig Konfiguracja zapisywana jest w pliku.config. Budowa toolchain-a: $. / ct ng b u i l d GUT Intel 2015/16 16/33
17 Crosstool-NG Ścieżka do toolchain-a: arm cortex_a8 l i n u x gnueabi / bin / Dodanie ścieżki do zmiennej PATH: $ PATH = /... / arm cortex_a8 l i n u x gnueabihf / bin :$PATH Kompilacja helloworld.c: $ arm cortex_a8 l i n u x gnueabihf gcc h e l l o w o r l d. c o h e l l o w o r l d Sprawdzenie rodzaju pliku wykonywalnego: $ f i l e h e l l o w o r l d h e l l o w o r l d : ELF 32 b i t LSB executable, ARM, version 1 (SYSV), dynamically l i n k e d ( uses shared l i b s ), f o r GNU/ Linux , not s t r i p p e d GUT Intel 2015/16 17/33
18 Crosstool-NG Sprawdzenie wersji kompilatora: $ arm cortex_a8 l i n u x gnueabi gcc version Sprawdzenie konfiguracji kompilatora: $ arm cortex_ a8 l i n u x gnueabi gcc v Lista opcji kompilatora zależnych od architektury maszyny docelowej: $ arm cortex_a8 l i n u x gnueabihf gcc t a r g e t help GUT Intel 2015/16 18/33
19 Crosstool-NG Toolchain sysroot - katalog z podkatalogami dla bibliotek, plików nagłówkowych i innych plików konfiguracyjnych ścieżka może być ustawiona podczas konfiguracji toolchain-a za pomoca: with sysroot= lub podczas jego wywołania za pomoca: sysroot= Sprawdzenie ścieżki domyślnej sysroot: $ arm cortex_a8 l i n u x gnueabi gcc p r i n t sysroot GUT Intel 2015/16 19/33
20 Crosstool-NG Sysroot zawiera: lib: objekty współdzielone dla biblioteki C i dynamicznego linkera, ld-linux usr/lib: archiwym bibliotek statycznych usr/include: pliki nagłówkowe wszystkich bibliotek usr/bin: narzędzia uruchamiane na maszynie docelowej (np. komenda ldd) usr/share: pliki niezależne od maszyny docelowej sbin: zawiera narzędzie ldconfig do zarz adzania cache-owaniem bibliotek współdzielonych GUT Intel 2015/16 20/33
21 Narzędzia toolchain-a Polecenie addr2line ar as c++filt cpp elfedit g++ gcc gcov gdb gprof Opis tłumaczy adresy (pl. wykonywalny) na numery linii (kod źródło tworzy biblioteki statyczne GNU assembler przetwarza symbole C++ i Java C preprocessor edycja nagłówka pliku ELF front-end GNU C++ front-end GNU C narzędzie analizy pokrycia kodu (code coverage) GNU debugger narzędzie analizy wydajności programu GUT Intel 2015/16 21/33
22 Narzędzia toolchain-a Polecenie ld nm objcopy objdump ranlib readelf size strings strip Opis GNU linker wyświetla nazwy symboliczne z plików wynikowych kopiuje i tłumaczy pliki objektowe wyświetla informacje z plików obiektowych tworzy lub modyfikuje indeks bibliotek statycznych wyświetla inforamcje o plikach ELF lista rozmiarów sekcji i całkowity rozmiar wyświetla łańcuchy ( drukowalne ) z pliku usuwa symbole z plików wynikowych GUT Intel 2015/16 22/33
23 Biblioteka C Cztery główne części biblioteki implementuja składowe standardu POSIX: libc: główna biblioteka (implementacja printf, open, close, read, write) libm: funkcje matematyczne (cos, exp, log) libpthread: funkcje zwiazane z watkami (nazwy rozpoczynajace się od pthread_ ) librt: rozszerzenie czasu rzeczywistego (obsługa pamięci współdzielonej i asynchronicznego I/O) libc jest linkowana zawsze, pozostałe musza być dodane za pomoca opcji -l arm cortex_ a8 l i n u x gnueabihf gcc myprog. c o myprog lm GUT Intel 2015/16 23/33
24 Biblioteka C Jakie biblioteki zostały dołaczone? $ arm cortex_a8 l i n u x gnueabihf r e a d e l f a myprog grep " Shared l i b r a r y " 0x (NEEDED) Shared l i b r a r y : [ libm. so. 6 ] 0x (NEEDED) Shared l i b r a r y : [ l i b c. so. 6 ] Jaki linker jest wołany podczas działania programu? (run-time linker): $ arm cortex_a8 l i n u x gnueabihf r e a d e l f a myprog grep " program i n t e r p r e t e r " [ Requesting program i n t e r p r e t e r : / l i b / ld l i n u x armhf. so. 3 ] GUT Intel 2015/16 24/33
25 Linkowanie statyczne i dynamiczne Kod biblioteki może być dołaczony do programu na dwa sposoby: statycznie - kod wołanych funkcji (i ich powiazania) jest dołaczany do pliku wynikowego (wykonywalnego) dynamicznie - w pliku wynikowym sa referencje do funkcji bibliotecznych, ale faktyczne dołaczanie ich kodu ma miejsce podczas wykonywania programu GUT Intel 2015/16 25/33
26 Biblioteki statyczne Statyczne linkowanie jest przydatne: gdy budowany system jest mały i składa się tylko z elementów BusyBox gdy program jest uruchamiany bez dostępu do systemu plików z bibliotekami runtime Linkowanie tylko bibliotek statycznych: $ arm cortex_ a8 l i n u x gnueabihf gcc s t a t i c h e l l o w o r l d. c o h e l l o world s t a t i c GUT Intel 2015/16 26/33
27 Biblioteki statyczne Tworzenie biblioteki statycznej: $ arm cortex_a8 l i n u x gnueabihf gcc c t e s t 1. c $ arm cortex_a8 l i n u x gnueabihf gcc c t e s t 2. c $ arm cortex_a8 l i n u x gnueabihf ar rc l i b t e s t. a t e s t 1. o Linkowanie libtest do programu helloworld: $ arm cortex_a8 l i n u x gnueabihf gcc h e l l o w o r l d. c l t e s t L.. / l i b s I.. / l i b s o h e l l o w o r l d GUT Intel 2015/16 27/33
28 Biblioteki współdzielone Dołaczane do programu podczas jego wykonywania Istnieja dzięki wynalezieniu pamięci wirtualnej Pozwalaja efektywnie wykorzystać pamięć, ponieważ wystarcza tylko jedna kopia danej biblioteki w pamięci Łatwo je aktualizować GUT Intel 2015/16 28/33
29 Biblioteki współdzielone Stworzenie biblioteki współdzielonej: $ arm cortex_a8 l i n u x gnueabihf gcc fpic c t e s t 1. c $ arm cortex_a8 l i n u x gnueabihf gcc fpic c t e s t 2. c $ arm cortex_ a8 l i n u x gnueabihf gcc shared o l i b t e s t. so t e s t 1. o t e s t 2. o Flaga PIC informuje GCC, by generował kod bez referencji do konkretnych miejsc w pamięci Dołaczenie libtest do programu helloworld: $ arm cortex_a8 l i n u x gnueabihf gcc h e l l o w o r l d. c l t e s t L.. / l i b s I.. / l i b s o h e l l o w o r l d Linker będzie szukał libtest.so w domyślnej ścieżce /lib lub /usr/lib. Dołaczenie innych ścieżek bibliotek współdzielonych - w zmiennej LD_LIBRARY_PATH GUT Intel 2015/16 29/33
30 Nazwy bibliotek współdzielonych ldd - przeszukuje standardowa ścieżkę bibliotek i pokazuje wersje bibliotek używanych przez dany program ldd h e l l o w o r l d Nazwy bibliotek współdzielonych: libjpeg.a: biblioteka statyczna (archiwum) libjpeg.so -> libjpeg.so : link symboliczny do dynamicznego linkowania libjpeg.so.8 -> libjpeg.so.8.0.2: link symboliczny do ładowania biblioteki podczas działania programu libjpeg.so.8.0.2: biblioteka współdzielona GUT Intel 2015/16 30/33
31 Systemy do kompilacji skrośnej Proste makefiles, w których sterowanie toolchain-em odbywa się poprzez zmienna CROSS_COMPILE Narzędzie GNU Autotools CMake ( GUT Intel 2015/16 31/33
32 Makefiles Do pakietów łatwych w kompilacji ( Linux kernel, U-Boot bootloader, Busybox) Toolchain prefix umieszczany w zmiennej CROSS_COMPILE, np: $ make CROSS_COMPILE=arm cortex_ a8 l i n u x gnueabi Toolchain prefix ustawiany jako zmienna powłoki (shell variable): $ export CROSS_COMPILE=arm cortex_a8 l i n u x gnueabi $ make GUT Intel 2015/16 32/33
33 GNU Autotools Autotools to zbiór narzędzi: GNU Autoconf GNU Automake GNU Libtool Gnulib Pakiety korzystajace z Autotools zawieraja skrypt o nazwie configure, który sprawdza zależności i generuje makefiles. Konfiguracja, budowa i instalacja pakietu: $. / c o n f i g u r e $ make $ sudo make i n s t a l l GUT Intel 2015/16 33/33
Programowanie systemów wbudowanych
Programowanie systemów wbudowanych OS Linux - Toolchain Iwona Kochańska Katedra Systemów Elektroniki Morskiej WETI PG March 29, 2016 Elementy wbudowanego OS Linux Toolchain kompilator i inne narzdzia do
Programowanie Systemów Wbudowanych
Programowanie Systemów Wbudowanych OS Linux - Toolchain Iwona Kochańska Katedra Systemów Elektroniki Morskiej WETI PG Co to jest toolchain? Toolchain - zestaw narzędzi do kompilacji kodu źródłowego do
Komputery Przemysłowe i Systemy Wbudowane
1/67 Komputery Przemysłowe i Systemy Wbudowane OS Linux w wystemach wbudowanych Iwona Kochańska Katedra Systemów Elektroniki Morskiej WETI PG October 5, 2016 Systemy wbudowane - OS 2/67 Systemy wbudowane
K. Konopko; Toolchain. Toolchain. dr inż. Krzysztof Konopko
Toolchain dr inż. Krzysztof Konopko e-mail: k.konopko@pb.edu.pl 1 Środowisko kompilacji skrośnej Program wykładu: Wprowadzenie do kompilacji skrośnej. GCC Binutils. Biblioteka standardowa C. Pliki nagłówkowe
K. Konopko; Toolchain. Jądro Linuksa. dr inż. Krzysztof Konopko
Jądro Linuksa dr inż. Krzysztof Konopko e-mail: k.konopko@pb.edu.pl 1 Jądro Linuksa Program wykładu: Właściwości jądra Linuksa. Pliki źródłowe jądra. Konfiguracja jądra. Kompilacja i kompilacja skrośna
Programowanie Systemów Wbudowanych
Programowanie Systemów Wbudowanych Debugowanie z GDB Iwona Kochańska Gdansk University of Technology GNU debugger Identyfikacja i naprawianie błędów to część procesu wytwarzania oprogramowania Techniki
Środowisko Keil. Spis treści. Krzysztof Świentek. Systemy wbudowane. 1 Trochę teorii. 2 Keil
Środowisko Krzysztof Świentek Systemy wbudowane Spis treści 1 2 Źródła 1 http://infocenter.arm.com 2 http://www.keil.com/arm/mdk.asp 3 http://pl.wikipedia.org Spis treści 1 2 Co to jest toolchain? Zbiór
Laboratorium 1 Temat: Przygotowanie środowiska programistycznego. Poznanie edytora. Kompilacja i uruchomienie prostych programów przykładowych.
Laboratorium 1 Temat: Przygotowanie środowiska programistycznego. Poznanie edytora. Kompilacja i uruchomienie prostych programów przykładowych. 1. Przygotowanie środowiska programistycznego. Zajęcia będą
Tworzenie oprogramowania
Tworzenie oprogramowania dr inż. Krzysztof Konopko e-mail: k.konopko@pb.edu.pl 1 Tworzenie oprogramowania dla systemów wbudowanych Program wykładu: Tworzenie aplikacji na systemie wbudowanym. Konfiguracja
Programowanie Systemów Wbudowanych. GNU Toolchain i kompilacja skrośna. GNU Toolchain. Cross-compilation KSEM WETI PG.
i i KSEM WETI PG April 28, 2015 i to zbiór narzędzi do budowy i debugowania programów, zarówno prostych aplikacji jak i elementów jądra systemów Linux. Toolchain zawiera: kompilator (GNU compiler), GNU
Pracownia Technik Obliczeniowych
Pracownia Technik Obliczeniowych Instalowanie oprogramowania Paweł Daniluk Wydział Fizyki Wiosna 2016 P. Daniluk(Wydział Fizyki) PTO XI Wiosna 2016 1 / 16 Standardowy układ katalogów Systemy UNIXowe mają
2 Tworzenie oprogramowania dla systemu wbudowanego
2 Tworzenie oprogramowania dla systemu wbudowanego 2 Tworzenie oprogramowania dla systemu wbudowanego...1 2.1 Przenośność programów...2 2.2 Systemy skrośnego tworzenia oprogramowania - podstawowe konfiguracje...7
Uruchomienie Raspberry Pi
Imie i nazwisko Nr indeksu Liczba punktów: Ramki oznaczone kolorem żółtym należy uzupełnić odpowiednią informacją! Po zakończeniu ćwiczenia niniejszą formatkę należy wysłać na adres: iwona.kochanska@eti.pg.gda.pl
IdyllaOS. Prosty, alternatywny system operacyjny. www.idyllaos.org. Autor: Grzegorz Gliński. Kontakt: milyges@gmail.com
IdyllaOS www.idyllaos.org Prosty, alternatywny system operacyjny Autor: Grzegorz Gliński Kontakt: milyges@gmail.com Co to jest IdyllaOS? IdyllaOS jest to mały, prosty, uniksopodobny, wielozadaniowy oraz
X P.I.W.O. Portowanie Tizena na nowe architektury na przykładzie ARMv6. Maciej Wereski Samsung R&D Institute Poland. 17 Maj 2014 - Poznań, Polska
X PIWO 17 Maj 2014 - Poznań, Polska Portowanie Tizena na nowe architektury na przykładzie ARMv6 Maciej Wereski Samsung R&D Institute Poland Plan prezentacji Środowisko budowania Tizena Infrastruktura GBS
Uruchomienie Intel Galileo
Imie i nazwisko Nr indeksu Liczba punktów: Ramki oznaczone kolorem żółtym należy uzupełnić odpowiednią informacją! Po zakończeniu ćwiczenia niniejszą formatkę należy wysłać na adres: iwona.kochanska@eti.pg.gda.pl
Komputery przemysłowe i systemy wbudowane
Komputery przemysłowe i systemy wbudowane Systemy operacyjne w systemach wbudowanych 2 KSEM WETI PG October 7, 2015 System operacyjny System operacyjny (OS) - opcjonalny w systemach wbudowanych. zbiór
Konfiguracja i kompilacja jądra Linux. Based on Free Electrons
Konfiguracja i kompilacja jądra Linux Based on Free Electrons Obsługiwane platformy Rodzaje obsługiwanych architektury katalog arch/ Minimum: 32 bit, opcjonalnie MMU, gcc Architektura 32 bit: arm, avr32,
Programowanie w asemblerze Linkowanie
Programowanie w asemblerze Linkowanie January 17, 2017 Problem rozmieszczenia (relokacji) Ponieważ w pamięci równocześnie może znajdować się kilka programów, nie można w trakcie kompilacji przewidzieć
Kompilacja i scalanie programów w linii poleceń gcc i make
Kompilacja i scalanie programów w linii poleceń gcc i make Małgorzata Stankiewicz kwiecień 2012 Małgorzata Stankiewicz () gcc i make kwiecień 2012 1 / 26 GCC - GNU Compiler Collection GCC Zestaw kompilatorów
Język JAVA podstawy. wykład 1, część 2. Jacek Rumiński. Politechnika Gdańska, Inżynieria Biomedyczna
Język JAVA podstawy wykład 1, część 2 1 Język JAVA podstawy Plan wykładu: 1. Krótka historia Javy 2. Jak przygotować sobie środowisko programistyczne 3. Opis środowiska JDK 4. Tworzenie programu krok po
Automatyzacja kompilacji. Automatyzacja kompilacji 1/40
Automatyzacja kompilacji Automatyzacja kompilacji 1/40 Automatyzacja kompilacji 2/40 Wstęp Polecenia kompilacji gcc -Wall -c komunikat.c -o komunikat.o gcc -Wall -c main.c -o main.o gcc -Wall -c test.c
Dariusz Brzeziński. Politechnika Poznańska, Instytut Informatyki
Dariusz Brzeziński Politechnika Poznańska, Instytut Informatyki Język programowania prosty bezpieczny zorientowany obiektowo wielowątkowy rozproszony przenaszalny interpretowany dynamiczny wydajny Platforma
Rozdział 1. Informacje ogólne
Rozdział 1. Informacje ogólne 1.1. Wprowadzenie Dokument ten opisuje jak zainstalować OMNeT++ na platformie Windows. Poszczególne rozdziały i podrozdziały poświęcone są instalacji, konfiguracji, kompilacji
Programowanie Strukturalne i Obiektowe Słownik podstawowych pojęć 1 z 5 Opracował Jan T. Biernat
Programowanie Strukturalne i Obiektowe Słownik podstawowych pojęć 1 z 5 Program, to lista poleceń zapisana w jednym języku programowania zgodnie z obowiązującymi w nim zasadami. Celem programu jest przetwarzanie
Systemy Operacyjne. Ćwiczenia
Systemy Operacyjne Ćwiczenia Sprawy organizacyjne Kontakt: Artur.Basiura@agh.edu.pl Konsultacje po uzgodnieniu mailowym terminu Prośba o kontakt mailowy do jednej osoby z grupy (zmiany w terminach zajęć)
Typy plików. Oznaczenie f -
Typy plików Oznaczenie f - d b c l p s Typ Zwykły plik Katalog Urządzenie blokowe Urządzenie znakowe Dowiązanie symboliczne Potok (pipe) do komunikacji międzyprocesowej Gniazdo (socket) do komunikacji
Od uczestników szkolenia wymagana jest umiejętność programowania w języku C oraz podstawowa znajomość obsługi systemu Linux.
Kod szkolenia: Tytuł szkolenia: PS/LINUX Programowanie systemowe w Linux Dni: 5 Opis: Adresaci szkolenia Szkolenie adresowane jest do programistów tworzących aplikacje w systemie Linux, którzy chcą poznać
Systemy wbudowane. Rysunek 1: Ilustracja procesu kompilacji oprogramowania
Rozdział 1 PROCES KOMPILACJI I KONSOLIDACJI 1.1. WSTĘP Przed wgraniem do pamięci urządzenia wbudowanego program zapisany w formie pliku lub zbioru plików tekstowych stanowiących tzw. kod źródłowy musi
Czym jest Java? Rozumiana jako środowisko do uruchamiania programów Platforma software owa
1 Java Wprowadzenie 2 Czym jest Java? Język programowania prosty zorientowany obiektowo rozproszony interpretowany wydajny Platforma bezpieczny wielowątkowy przenaszalny dynamiczny Rozumiana jako środowisko
Architektury Usług Internetowych. Laboratorium 2. Usługi sieciowe
Architektury Usług Internetowych Laboratorium 2. Usługi sieciowe Wstęp Celem laboratorium jest zapoznanie się z modelem usług sieciowych na przykładzie prostego serwera Apache Axis2. Apache Axis2 Apache
Programowanie w C++ Wykład 1. Katarzyna Grzelak. 26 luty K.Grzelak (Wykład 1) Programowanie w C++ 1 / 28
Programowanie w C++ Wykład 1 Katarzyna Grzelak 26 luty 2018 K.Grzelak (Wykład 1) Programowanie w C++ 1 / 28 Dlaczego programowanie? K.Grzelak (Wykład 1) Programowanie w C++ 2 / 28 Umiejętność, która otwiera
1. Pierwszy program. Kompilator ignoruje komentarze; zadaniem komentarza jest bowiem wyjaśnienie programu człowiekowi.
1. Pierwszy program // mój pierwszy program w C++ #include using namespace std; cout
2 Tworzenie oprogramowania dla systemu wbudowanego
2 Tworzenie oprogramowania dla systemu wbudowanego 2 Tworzenie oprogramowania dla systemu wbudowanego...1 2.1 Przenośność programów...2 2.2 Systemy skrośnego tworzenia oprogramowania - podstawowe konfiguracje...7
Programowanie w C++ Wykład 1. Katarzyna Grzelak. 25 luty K.Grzelak (Wykład 1) Programowanie w C++ 1 / 38
Programowanie w C++ Wykład 1 Katarzyna Grzelak 25 luty 2019 K.Grzelak (Wykład 1) Programowanie w C++ 1 / 38 Dlaczego programowanie? K.Grzelak (Wykład 1) Programowanie w C++ 2 / 38 Umiejętność, która otwiera
Programowanie obiektowe zastosowanie języka Java SE
Programowanie obiektowe zastosowanie języka Java SE Wstęp do programowania obiektowego w Javie Autor: dr inŝ. 1 Java? Java język programowania obiektowo zorientowany wysokiego poziomu platforma Javy z
2 Tworzenie oprogramowania dla systemu wbudowanego
2 Tworzenie oprogramowania dla systemu wbudowanego 2 Tworzenie oprogramowania dla systemu wbudowanego...1 2.1 Przenośność programów...2 2.2 Systemy skrośnego tworzenia oprogramowania - podstawowe konfiguracje...7
Laboratorium 2: Biblioteki statyczne i dynamiczne w języku C. mgr inż. Arkadiusz Chrobot
Laboratorium 2: Biblioteki statyczne i dynamiczne w języku C mgr inż. Arkadiusz Chrobot 21 października 2010 1 Wprowadzenie Pisząc programy w języku C, szczególnie te duże, nie musimy umieszczać całości
Programowanie w C++ Wykład 10. Katarzyna Grzelak. 21 maja K.Grzelak (Wykład 10) Programowanie w C++ 1 / 21
Programowanie w C++ Wykład 10 Katarzyna Grzelak 21 maja 2018 K.Grzelak (Wykład 10) Programowanie w C++ 1 / 21 Makefiles K.Grzelak (Wykład 10) Programowanie w C++ 2 / 21 Kompilacja programu zapisanego w
Java jako język programowania
Java jako język programowania Interpretowany programy wykonują się na wirtualnej maszynie (JVM Java Virtual Machine) Składnia oparta o język C++ W pełni zorientowany obiektowo (wszystko jest obiektem)
Tworzenie oprogramowania
Tworzenie oprogramowania Język C Budowa programu napisanego w języku C podział na pliki z definicjami funkcji, korzystanie z bibliotek systemowych i własnych automatyzacja kompilacji za pomocą make dzielenie
Q E M U. http://www.qemu.com/
http://www.qemu.com/ Emulator procesora Autor: Fabrice Bellard Obsługiwane platformy: Windows, Solaris, Linux, FreeBSD, Mac OS X Aktualna wersja: 0.9.0 Większość programu oparta na licencji LGPL, a sama
Struktury systemów operacyjnych
Struktury systemów operacyjnych Jan Tuziemski Część slajdów to zmodyfiowane slajdy ze strony os-booi.com copyright Silberschatz, Galvin and Gagne, 2013 Cele wykładu 1. Opis usług dostarczanych przez OS
Materiały dodatkowe. Raspberry Pi
Katedra Inżynierii Systemów Sterowania Materiały dodatkowe Raspberry Pi Opracowali: mgr inż. Tomasz Karla Data: Listopad, 2016 r. Dodatkowe informacje Materiały dodatkowe mają charakter ogólny i służą
Podstawy informatyki
Podstawy informatyki WYKŁAD nr 02 Fizyka Techniczna, WFT PP Michał Hermanowicz Zakład Fizyki Obliczeniowej, Instytut Fizyki, Politechnika Poznańska Rok akademicki 2018/2019 M. Hermanowicz (IF PP) Podstawy
Gdy dystrybucja Linuksa staje się niepotrzebna
Gdy dystrybucja Linuksa staje się niepotrzebna Jarosław Messer Świerad Seweryn cochese Lipkowski Wszystko powinno być zrobione tak prosto, jak tylko to możliwe, ale nie prościej Albert Einstein 0x00. Wstęp
61 Topologie wirtualne
61 Topologie wirtualne pozwalają opisać dystrybucję procesów w przestrzeni z uwzględnieniem struktury komunikowania się procesów aplikacji między sobą, umożliwiają łatwą odpowiedź na pytanie: kto jest
Programowanie niskopoziomowe
W. Complak, J.Kniat, M. Antczak, K. Kwarciak, G. Palik, A. Rybarczyk, Ł. Wielebski Materiały Programowanie niskopoziomowe http://www.cs.put.poznan.pl/arybarczyk/c_w_0.pdf Spis treści 1. Instalacja środowiska
Konsolidacja (linking)
Konsolidacja (linking) 1 Ostatni etap budowania programu PRE- PROCESSING KOMPILACJA ASEMBLACJA LINKING Łączenie osobnych fragmentów kodu maszynowego w plik wykonywalny Wykonywana przez linker ld w systemie
Programowanie Systemów Wbudowanych
Programowanie Systemów Wbudowanych OS Linux - Oprogramowanie rozruchowe Iwona Kochańska Katedra Systemów Elektroniki Morskiej WETI PG March 30, 2016 Elementy wbudowanego OS Linux Toolchain kompilator i
Programowanie w C. dr inż. Stanisław Wszelak
Programowanie w C dr inż. Stanisław Wszelak Przeszłość i przyszłość składni programowania w C Ken Thompson Denis Ritchie Bjarne Stoustrup Zespoły programistów B C C++ C# 1969 rok Do SO UNIX 1972 rok C++
Kernel Kompilacja jądra
Kernel Kompilacja jądra systemu Co to jest jądro systemu operacyjnego Jądro systemu operacyjnego jest rozpowszechniane na licencji GNU General Public License (GPL) określonej przez konsorcjum Free Software
Programowanie obiektowe. Literatura: Autor: dr inŝ. Zofia Kruczkiewicz
Programowanie obiektowe Literatura: Autor: dr inŝ. Zofia Kruczkiewicz Java P. L. Lemay, Naughton R. Cadenhead Java Podręcznik 2 dla kaŝdego Języka Programowania Java Linki Krzysztof Boone oprogramowania
Początki Javy. dr Anna Łazińska, WMiI UŁ Podstawy języka Java 1 / 8
Początki Javy Java została pierwotnie zaprojektowana dla telewizji interaktywnej, ale była to zbyt zaawansowaną technologią dla branży cyfrowej telewizji kablowej. James Gosling, Mike Sheridan i Patrick
Wstęp do Informatyki i Programowania Laboratorium: Lista 0 Środowisko programowania
Wstęp do Informatyki i Programowania Laboratorium: Lista 0 Środowisko programowania Przemysław Kobylański Wprowadzenie Każdy program w C musi zawierać przynajmniej funkcję o nazwie main(): Aby możliwe
Wprowadzenie do biblioteki klas C++
Instrukcja laboratoryjna nr 7 Programowanie w języku C 2 (C++ poziom zaawansowany) Wprowadzenie do biblioteki klas C++ WxWidgets mgr inż. Lasota Maciej dr inż. Kaczmarek Tomasz dr inż. Wilk-Jakubowski
Praca w środowisku Cygwin. Przygotował Mateusz Dudek
Praca w środowisku Cygwin Przygotował Mateusz Dudek Czym jest Cygwin? Cygwin to implementacja standardu POSIX funkcji systemowych przeznaczona dla systemów z rodziny Windows oraz zestaw wolnego oprogramowania
FORMA SZKOLENIA MATERIAŁY SZKOLENIOWE CENA CZAS TRWANIA
FORMA SZKOLENIA MATERIAŁY SZKOLENIOWE CENA CZAS TRWANIA Stacjonarne Cyfrowe 4800 PLN NETTO* 4 dni Stacjonarne Tablet CTAB 5200 PLN NETTO* 4 dni Metoda dlearning Cyfrowe 4800 PLN NETTO* 4 dni Metoda dlearning
Programowanie mikrokontrolerów AVR
Programowanie mikrokontrolerów AVR Czym jest mikrokontroler? Mikrokontroler jest małym komputerem podłączanym do układów elektronicznych. Pamięć RAM/ROM CPU wykonuje program Układy I/O Komunikacje ze światem
Instalacja serwera baz danych PostgreSQL ze źródeł i pierwsze uruchomienie
Instalacja serwera baz danych PostgreSQL ze źródeł i pierwsze uruchomienie Kroki wstępne 1. Uruchamiamy wcześniej utworzoną maszynę wirtualną 2. Po uruchomieniu systemu ukaże się ekran logowania: 3. Logujemy
Piotr Dwieczkowski. Code coverage. Mierzenie pokrycia kodu, teoria oraz praktyka w C/C++
Piotr Dwieczkowski Code coverage Mierzenie pokrycia kodu, teoria oraz praktyka w C/C++ Plan Co to jest pokrycie kodu? Możliwe sposoby wykorzystania Rodzaje statystyk Wady i zalety mierzenia porycia kodu
WPROWADZENIE DO INFORMATYKI
J.NAWROCKI, M. ANTCZAK, H. ĆWIEK, W. FROHMBERG, A. HOFFA, M. KIERZYNKA, S. WĄSIK WPROWADZENIE DO INFORMATYKI PROGRAMOWANIE IMPERATYWNE ŚRODOWISKO URUCHOMIENIOWE I. INSTALACJA I KONFIGURACJA ECLIPSE CDT
Techniki programowania INP001002Wl rok akademicki 2018/19 semestr letni. Wykład 8. Karol Tarnowski A-1 p.
Techniki programowania INP001002Wl rok akademicki 2018/19 semestr letni Wykład 8 Karol Tarnowski karol.tarnowski@pwr.edu.pl A-1 p. 411B Plan prezentacji Biblioteka GSL Na podstawie: https://www.gnu.org/software/gsl/doc/html/index.html
Programowanie Systemów Wbudowanych
Programowanie Systemów Wbudowanych OS Linux - Oprogramowanie rozruchowe Iwona Kochańska Katedra Systemów Elektroniki Morskiej WETI PG March 3, 2019 Elementy wbudowanego OS Linux Toolchain kompilator i
Programowanie Systemów Wbudowanych
Programowanie Systemów Wbudowanych OS Linux - Oprogramowanie rozruchowe Iwona Kochańska Katedra Systemów Elektroniki Morskiej WETI PG March 2, 2017 Elementy wbudowanego OS Linux Toolchain kompilator i
IBM SPSS Statistics - Essentials for R: Instrukcje instalacji dla Linux
IBM SPSS Statistics - ssentials for R: Instrukcje instalacji dla Linux Przedstawione poniżej instrukcje dotyczą instalowania IBM SPSS Statistics - ssentials for R w systemach operacyjnych Linux. Przegląd
BF20 JTAG dla ARM ów z interfejsem USB Instrukcja obsługi
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
System komputerowy. System komputerowy
System komputerowy System komputerowy System komputerowy układ współdziałających ze sobą (według pewnych zasad) dwóch składowych: sprzętu komputerowego (hardware) oraz oprogramowania (software) po to,
Make jest programem komputerowym automatyzującym proces kompilacji programów, na które składa się wiele zależnych od siebie plików.
Spis treści 1 Krótkie wprowadzenie do makefile'a 1.1 Typowa reguła programu make 1.2 Zmienne w pliku Makefile 1.3 Zmienne standardowe 1.4 Zmienne automatyczne 1.5 Więcej o regułach 1.5.1 Reguły z wzorcem
Embedded GNU/Linux. Krzysztof Mazur
Embedded GNU/Linux Krzysztof Mazur 26 czerwca 2014 0.1 autoconf $./configure --build=build-type \ --host=host-type \ --target=target-type Forma kanoniczna: machine-os-release arm-linux-elf arm-softfloat-none-eabi
Programowanie Systemów Wbudowanych
Programowanie Systemów Wbudowanych Jadro systemu Linux Iwona Kochańska Katedra Systemów Elektroniki Morskiej WETI PG March 20, 2017 Elementy wbudowanego OS Linux Toolchain kompilator i inne narzdzia do
Automatyzacja kompilacji. Automatyzacja kompilacji 1/28
Automatyzacja kompilacji Automatyzacja kompilacji 1/28 Automatyzacja kompilacji 2/28 Wstęp Polecenia kompilacji gcc -Wall -c komunikat.c -o komunikat.o gcc -Wall -c main.c -o main.o gcc -Wall -c test.c
Systemy Operacyjne - Operacje na plikach
Systemy Operacyjne - Operacje na plikach Andrzej Stroiński Institute of Computer Science Poznań University of Technology 1 październik, 2012 Wprowadzenie do ANSI-C Pomoc systemowa man gcc man 2 write man
Kurs systemu Unix wykład wstępny. Kurs systemu Unix 1
Kurs systemu Unix wykład wstępny Kurs systemu Unix 1 Cele wykladu Zdobycie podstawowej wiedzy o systemie i jego narzędziach. Poznanie unixowych języków skryptowych (bash, awk,...). Nauka programowania
Podstawy programowania. Wprowadzenie
Podstawy programowania Wprowadzenie Proces tworzenia programu Sformułowanie problemu funkcje programu zakres i postać danych postać i dokładność wyników Wybór / opracowanie metody rozwiązania znaleźć matematyczne
Instalacja Systemu Linux na maszynie writualnej
Instalacja Systemu Linux na maszynie writualnej Pobierz obraz systemu CentOS ze strony https://www.centos.org/download/ Wybierz obraz minimal ISO. Tworzenie maszyny wirtualnej 1. W Oracle VM VirtualBox
System plików Linuxa. Tomasz Borzyszkowski
System plików Linuxa Tomasz Borzyszkowski Diagram blokowy jądra systemu Programy użytkowników Poziom użytkownika Poziom jądra Biblioteki Interfejs funkcji systemowych Podsystem plików Bufor Znakowe Blokowe
Programowanie Urządzeń Mobilnych. Laboratorium nr 7, 8
Programowanie Urządzeń Mobilnych Laboratorium nr 7, 8 Android Temat 1 tworzenie i uruchamianie aplikacji z użyciem Android SDK Krzysztof Bruniecki 1 Wstęp Platforma Android jest opartym na Linuxie systemem
Metryki. Narzędzia do pomiaru złożoności modułowej i międzymodułowej oprogramowania. autor: Zofia Kruczkiewicz
Metryki Narzędzia do pomiaru złożoności modułowej i międzymodułowej oprogramowania autor: Zofia Kruczkiewicz 1 Zastosowanie narzędzi ant i ckjm do pomiaru złożoności oprogramowania 2 1. Wskazanie ścieżki
U M L. System operacyjny Linux zagnieżdżony w zewnętrznym systemie operacyjnym (Linux)
http://user-mode-linux.sourceforge.net/ System operacyjny Linux zagnieżdżony w zewnętrznym systemie operacyjnym (Linux) Autor: Jeff Dike Koncepcja powstała w 1999 r. Początkowo jako patch do jądra 2.0
Programowanie I. O czym będziemy mówili. Plan wykładu nieco dokładniej. Plan wykładu z lotu ptaka. Podstawy programowania w językach. Uwaga!
Programowanie I O czym będziemy mówili Podstawy programowania w językach proceduralnym ANSI C obiektowym Java Uwaga! podobieństwa w podstawowej strukturze składniowej (zmienne, operatory, instrukcje sterujące...)
Niektóre katalogi są standardowymi katalogami zarezerwowanymi do użytku przez system. Znaczenie wybranych katalogów systemowych jest następujące:
Podstawy systemu Linux Linux jest systemem operacyjnym dla komputerów PC, opracowany na początku lat dziewięćdziesiątych przez Linusa Torvaldsa. Podobnie jak Unix jest on systemem wielozadaniowym - umożliwia
4 Literatura. c Dr inż. Ignacy Pardyka (Inf.UJK) ASK MP.01 Rok akad. 2011/2012 2 / 24
Wymagania proceduralnych języków wysokiego poziomu ARCHITEKTURA SYSTEMÓW KOMPUTEROWYCH modele programowe procesorów ASK MP.01 c Dr inż. Ignacy Pardyka UNIWERSYTET JANA KOCHANOWSKIEGO w Kielcach Rok akad.
QEMU działa na procesorach procesorach: emuluje procesory: dostępne dla s.o. hosta:
QEMU Stosunkowo szybki emulator procesora, korzystający z tzw. dynamicznej translacji i kilku innych ciekawych technik programistycznych i optymalizacyjnych. działa na procesorach procesorach: Intel x86,
Warsztaty AVR. Instalacja i konfiguracja środowiska Eclipse dla mikrokontrolerów AVR. Dariusz Wika
Warsztaty AVR Instalacja i konfiguracja środowiska Eclipse dla mikrokontrolerów AVR Dariusz Wika 1.Krótki wstęp: Eclipse to rozbudowane środowisko programistyczne, które dzięki możliwości instalowania
Systemy wbudowane. Wprowadzenie. Struktura. Mikrokontrolery AVR. Wprowadzenie do programowania w C
Systemy wbudowane Mikrokontrolery AVR Wprowadzenie do programowania w C dr inż. Maciej Piechowiak Wprowadzenie język C jest językiem strukturalnym wysokiego poziomu, jednak działającym blisko sprzętu i
Programowanie niskopoziomowe
Programowanie niskopoziomowe Programowanie niskopoziomowe w systemie operacyjnym oraz poza nim Tworzenie programu zawierającego procedury asemblerowe 1 Programowanie niskopoziomowe w systemie operacyjnym
Programowanie w języku C++ Grażyna Koba
Programowanie w języku C++ Grażyna Koba Kilka definicji: Program komputerowy to ciąg instrukcji języka programowania, realizujący dany algorytm. Język programowania to zbiór określonych instrukcji i zasad
Materiały wprowadzające. dr inż. Arkadiusz Chrobot
Materiały wprowadzające dr inż. Arkadiusz Chrobot 26 lutego 2017 Spis treści Wprowadzenie 1 1. ssh 1 2. scp 1 3. Linux Cross Reference 2 Wprowadzenie W tych materiałach wstępnych zawarte są krótkie opisy
Biorąc udział w projekcie, możesz wybrać jedną z 8 bezpłatnych ścieżek egzaminacyjnych:
Egzaminy na plus Stres na minus! Zdawaj bezpłatne egzaminy Microsoft, Linux, C++ z nami i zadbaj o swoją karierę. Oferujemy Ci pierwsze certyfikaty zawodowe w Twojej przyszłej karierze, które idealnie
MentorGraphics ModelSim
MentorGraphics ModelSim 1. Konfiguracja programu Wszelkie zmiany parametrów systemu symulacji dokonywane są w menu Tools -> Edit Preferences... Wyniki ustawień należy zapisać w skrypcie startowym systemu
1.Wstęp. 2.Generowanie systemu w EDK
1.Wstęp Celem niniejszego ćwiczenia jest zapoznanie z możliwościami debuggowania kodu na platformie MicroBlaze oraz zapoznanie ze środowiskiem wspomagającym prace programisty Xilinx Platform SDK (Eclipse).
Laboratorium 1. I. Zainstaluj program Eclipse (wersja C/C++ w odpowiednim systemie operacyjnym
Laboratorium 1 I. Zainstaluj program Eclipse (wersja C/C++ http://www.eclipse.org/downloads/) w odpowiednim systemie operacyjnym II. Zainstaluj narzędzia Windows CDT (w Eclipse jako software site dodajemy
Javadoc. Piotr Dąbrowiecki Sławomir Pawlewicz Alan Pilawa Joanna Sobczyk Alina Strachocka
Javadoc Piotr Dąbrowiecki Sławomir Pawlewicz Alan Pilawa Joanna Sobczyk Alina Strachocka Wprowadzenie do Javadoc Treść prezentacji: http://students.mimuw.edu.pl/~as219669/javadoc.pdf Zadania: http://students.mimuw.edu.pl/~as219669/zadanie.rar
INFORMATYKA, TECHNOLOGIA INFORMACYJNA ORAZ INFORMATYKA W LOGISTYCE
Studia podyplomowe dla nauczycieli INFORMATYKA, TECHNOLOGIA INFORMACYJNA ORAZ INFORMATYKA W LOGISTYCE Przedmiot JĘZYKI PROGRAMOWANIA DEFINICJE I PODSTAWOWE POJĘCIA Autor mgr Sławomir Ciernicki 1/7 Aby
Fragment wykładu z języka C ( )
Fragment wykładu z języka C (2002-2009) Piotr Szwed pszwed@agh.edu.pl Program make Typowy program w języku C/C++ składa się z wielu odrębnych modułów (jednostek translacji). Ich liczba może dochodzić do
Wykład. Materiały bazują częściowo na slajdach Marata Dukhana
Wykład Materiały bazują częściowo na slajdach Marata Dukhana Języki programowania Kompilowane np. C, C++, Pascal Interpretowane np. JavaScript, PHP, Python, VBA Pośrednie np. Java, C# Znane kompilatory
Instalacja środowiska MPI w systemie operacyjnym Linux
Instalacja środowiska MPI w systemie operacyjnym Linux Zakres ćwiczenia W tym ćwiczeniu dowiesz się, w jaki sposób dokonać instalacji środowiska MPI w systemie operacyjnym Linux. Do instalacji wybrano