Systemy wbudowane. Rysunek 1: Ilustracja procesu kompilacji oprogramowania

Wielkość: px
Rozpocząć pokaz od strony:

Download "Systemy wbudowane. Rysunek 1: Ilustracja procesu kompilacji oprogramowania"

Transkrypt

1 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 zostać przetłumaczony na postać binarną odpowiednią dla docelowej architektury. Mimo, że proces przekształcania kodu źródłowego potocznie nazywany jest kompilacją to składa się on z dwóch odrębnych etapów kompilacji oraz konsolidacji. Kompilacja to proces podczas którego kod źródłowy programu jest automatycznie analizowany i przekształcany na postać kodu maszynowego. Należy zaznaczyć, że proces kompilacji jest zależny od docelowej architektury co oznacza, że program skompilowany dla procesora typu ARM nie będzie działał na systemie z procesorem z rodziny x86. Schemat blokowy procesu kompilacji zilustrowany jest na rysunku 1. Rysunek 1: Ilustracja procesu kompilacji oprogramowania Pliki tekstowe z kodem źródłowym programu mogą zostać utworzone za pomocą dowolnego edytora tekstowego. Każdy z plików jest oddzielnie analizowany przez kompilator i tworzone są pliki obiektowe zawierające wstępnie przetworzone fragmenty program w formie tak zwanej reprezentacji pośredniej. Następnie, na etapie konsolidacji wszystkie pliki obiektowe łączone są razem i powstaje jeden plik wykonywalny. Dodawane są również pliki bibliotek użytkownika stanowiące zbiory skompilowanych funkcji wielokrotnego użytku oraz biblioteki systemowe dostarczane wraz z kompilatorem umożliwiają miedzy innymi pobieranie danych od użytkownika czy wyświetlanie informacji na domyślnym terminalu. W przypadku kompilacji z wykorzystaniem tzw. GNU Toolchain (czyli narzędzi takich jak kompilator gcc, asembler 1 as oraz linker ld) proces ten przebiega w następujących krokach: kompilator danego 1 W języku polskim zarówno język asemblera (ang. assembly language) jak i program przeprowadzający asemblację (ang. assembler) nazywane są potocznie asemblerem. 1

2 języka programowania (np. cc1 dla języka C) przetwarza pliki źródłowe do postaci plików pośrednich zawierających instrukcji asemblera dla danej architektury. Następnie program zwany asemblerem (np. as) przetwarza pliki asemblera do postaci plików pośrednich zapisanych w formacie ELF [1] (ang. Executable and Linkable Format). Podczas kolejnego kroku konsolidator łączy wszystkie pliki pośrednie oraz biblioteki statyczne w jeden plik wykonywalny. Ostatnim, opcjonalnym etapem jest przetworzenie pliku zapisanego w postaci ELF do postaci akceptowalnej przez programator wykorzystywany przez dany system mikroprocesorowy, np. Intel HEX lub format binarny RODZAJE KOMPILACJI Biorąc pod uwagę rodzaj architektury na której będzie działał kompilator oraz rodzaj architektury dla której kompilator będzie generował programy wyróżnić możemy trzy rodzaje kompilacji: kompilacja natywna, kompilacja kanadyjska oraz cross kompilacja. W przypadku GNU Toolchain podczas kompilowania środowiska programistycznego trzy zmienne środowiskowe określają rodzaj wspieranego typu kompilacji: target (określa rodzaj architektury dla której kompilator będzie generował programy), host (określa rodzaj architektury na której kompilator będzie uruchamiany) oraz build (określa rodzaj architektury na której będziemy kompilowali kompilator). kompilacja natywna kompilator generuje kod wykonywalny dla tej samej architekturze na której pracuje. Jest to najprostszy i jednocześnie najczęściej spotykany przypadek. W przypadku GNU Toolchain zmienne target, host, build określają tą samą architekturę, np.: x86. kompilacja kanadyjska specjalny przypadek umożliwiający skompilowanie środowiska programistycznego na jednej architekturze, działającego na innej i generującego programy dla jeszcze innej np.: kompilacja kanadyjska umożliwia skompilowanie na architekturze x86 kompilatora pracującego na architekturze ARM i generującego programy dla architektury PowerPC. W przypadku GNU Toolchain zmienne target, host, build będą ustawione odpowiednio PowerPC, ARM oraz x86. cross kompilacja kompilator generuje kod wykonywalny dla innej architektury niż ten na której sam pracuje. Cross kompilacja najczęściej wykorzystywana jest w przypadku systemów wbudowanych takich jak np. kuchenki mikrofalowe, pralki automatyczne czy telefony komórkowe posiadające znacznie ograniczone zasoby co uniemożliwia lub znacznie utrudnia uruchomienie środowiska do kompilacji natywnej. Cross kompilacja wymaga aby wszystkie narzędzia wchodzące w skład środowiska programistycznego były odpowiednio skonfigurowane tzn. muszą być przystosowane do pracy uwzględniającej odpowiednią architekturę docelową kompilator musi generować odpowiedni kod asemblera, asembler, konsolidator oraz biblioteka standardowa muszą wspierać architekturę docelową. W przypadku GNU Toolchain, konfigurowania kompilatora dla architektury ARM działającego na procesorze x86 zmienna 2

3 target będzie ustawiona na ARM natomiast host oraz build będą ustawione na x ŚRODOWISKO PROGRAMISTYCZNE GNU TOOLCHAIN GNU Toolchain to zestaw narzędzi programistycznych przeznaczonych do tworzenia aplikacji. W skład GNU Toolchain wchodzą miedzy innymi: GNU make 2 narzędzie przeznaczone do automatycznego kompilowania programów i bibliotek z kodów źródłowych. Jego działanie opera się na interpretacji pliku konfiguracyjnego o nazwie makefile opisującego poszczególne kroki procesu kompilacji. GNU Compiler Collection 3 zestaw kompilatorów języków programowania takich jak C, C++, Objective C, FORTRAN. Asembler oraz konsolidator nie są częścią tego projektu. GNU Binutils 4 zestaw narzędzi do przeprowadzania operacji na plikach obiektowych 5 w skład którego wchodzą: konsolidator (ld), asembler (as), narzędzie do wyświetlania zawartości plików obiektowych (objdump), narzędzie do modyfikacji struktury plików obiektowych (objcopy), narzędzie do wyświetlania szczegółowych informacji na temat plików w formacie ELF (readelf). GNU Debugger 6 narzędzie służące do dynamicznej analizy innych programów w celu odnalezienia i identyfikacji zawartych w nich błędów. Debugger pozwala na uruchomienie programu w tak zwanym trybie krokowym co umożliwia na przeanalizowanie wartości przechowywanych w poszczególnych zmiennych wykorzystywanych w programie przed i po wykonaniu poszczególnych linii kodu. GNU Autotools zestaw narzędzi umożliwiających kompilowanie kodu źródłowego i budowanie przenośnych pakietów oprogramowania dla różnych systemów operacyjnych. W skład zestawu wchodzą miedzy innymi następujące narzędzia: autoconf 7, automake 8, autoconf 9, libtool 10 2 więcej informacji: 3 więcej informacji: gcc.gnu.org 4 więcej informacji: 5 nazwa pliki obiektowe w kontekście procesu kompilacji odnosi się do plików binarnych zawierających reprezentację pośrednią danego programu zazwyczaj zapisaną w formacie ELF (Linux) lub PE (Windows) i nie ma nic wspólnego z obiektowym paradygmatem programowania. 6 więcej informacji: 7 więcej informacji: 8 więcej informacji: 9 więcej informacji: 10 więcej informacji: 3

4 1.4. SKRYPTY KONSOLIDATORA Konsolidator (ang. linker) to program który w trakcie procesu konsolidacji łączy podane pliki obiektowe i biblioteki statyczne tworząc plik wykonywalny. Pracą konsolidatora steruje plik konfiguracyjny zwany skryptem konsolidatora. Określa on w których obszarach pamięci umieszczone mają być poszczególne fragmenty programy zwane sekcjami. W większości plików w formacie ELF znajdują się następujące sekcje:.tekst zawierająca binarny kod programu,.data zawierająca zainicjalizowane zmienne globalne oraz.bss zawierająca niezainicjalizowane zmienne lokalne. Informacje na temat sekcji występujących w danym pliku można uzyskać korzystając z narzędzia objdump pochodzącego z pakietu GNU Binutils. Znaczenie poszczególnych kolumn jest następujące: indeks, nazwa sekcji, rozmiar sekcji, Virtual Memory Address (adres w pamięci pod który sekcja musi zostać załadowana aby program działał poprawnie), Load Memory Address (adres w pamięci pod którym sekcja będzie załadowana do pamięci), położenie sekcji wyrażone jako przesunięcie od początku pliku ELF oraz wyrównanie danej sekcji w pamięci. Wyróżnienie adresów LMA oraz VMA pozwala miedzy innymi na umieszczenie sekcji.data w pamięci ROM znajdującej się pod adresem LMA i przeniesienie jej do pamięci VMA podczas startu systemu. gdb-test@dmcslab1:~/gdb-test-example$ objdump -h wynik.elf wynik.elf: file format elf32-little Sections: Idx Name Size VMA LMA File off Algn 0.text **4 CONTENTS, ALLOC, LOAD, READONLY, CODE 1.data a08 2**2 CONTENTS, ALLOC, LOAD, DATA 2.bss a f a70 2**2 ALLOC Powyższy przykład należy interpretować w następujący sposób: 1. sekcja.text o rozmiarze 2440 bajtów (988 h ) będzie załadowana do pamięci pod adres h (kolumna VMA). Jednocześnie sekcja ta będzie przechowywana w pamięci przed uruchomieniem programu pod adresem h (kolumna LMA). 2. sekcja.data o rozmiarze 104 bajtów (68 h ) podczas uruchamiania programu musi zostać załadowana do pamięci pod adres h (kolumna VMA). Jednocześnie sekcja ta będzie przechowywana w pamięci przed uruchomieniem programu pod adresem h (kolumna LMA). Kopiowaniem danych spod adresów LMA do VMA zajmują się biblioteki startowe systemu. 3. sekcja.bss o rozmiarze 168 bajtów (A8 h ) musi zostać załadowana do pamięci pod adres h (kolumna VMA). Jednocześnie sekcja ta będzie przechowywana w pamięci przed uruchomieniem programu pod adresem f0 h (kolumna LMA). 4

5 Poniższy rysunek przedstawia skrypt konsolidatora użyty do wygenerowania pliku użytego w powyższym przykładzie. Określa rodzajpliku wynikowego domyslnie elf32-littlearm ale użytkownik za pomocą odpowiedniego parametru może określić który format z poniższe listy będzie użyty OUTPUT_FORMAT("elf32-littlearm", "elf32-littlearm", "elf32-littlearm") Określa rodzaj architektury sprzętowej na którą generowany będzie kod OUTPUT_ARCH(arm) Określa nazwę pierwszej funkcji programu ENTRY(reset_handler) Definicje sekcji występujących w pliku ELF SECTIONS { Sekcja.text w pliku wyjściowym będzie składała się z połączonych sekcji.text oraz.rodata pobranych ze wszystkich plików wejściowych. Dodatkowo adresy VMA początku oraz końca sekcji zostaną umieszczone w zmiennych _stext oraz _etest..text : { _stext =.; *(.text) *(.rodata) /* read-only data (constants) */ *(.rodata*). = ALIGN(4); _etext =. ; Sekcja.data w pliku wyjściowym będzie składała się z połączonych sekcji.vectors oraz.data pobranych ze wszystkich plików wejściowych. Dodatkowo adresy VMA początku oraz końca sekcji zostaną umieszczone w zmiennych _sdata oraz _edata. Adres LMA sekcji został ustawiony na adres bezpośrednio po sekcji.text..data : AT ( ADDR (.text) + SIZEOF (.text) ) { _sdata =.; *(.vectors) *(.data) _edata =.; Sekcja.bss w pliku wyjściowym będzie składała się z połączonych sekcji.bss pobranych ze wszystkich plików wejściowych. Dodatkowo adresy VMA początku oraz końca sekcji zostaną umieszczone w zmiennych _sbss oraz _ebss..bss (NOLOAD) : {. = ALIGN(4); _sbss =.; *(.bss) _ebss =.; end =.; Początkowy adres VMA sekcji.text oraz.data nie zostały bezpośrednio umieszczone w skrypcie konsolidatora. Ich wartości ustawiane są za pomocą parametrów przekazanych do wywołania konsolidatora (-Ttext 0x Tdata 0x300000) znajdującym się w pliku makefile. 5

6 Rozdział 2 DEBUGGER GDB 2.1. WSTĘP GNU Debugger jest narzędziem umożliwiającym śledzenie wykonania programu w trybie krokowym co pozwala na łatwe i szybkie wykrywanie oraz usuwanie błędów znajdujących się w kodzie programu. Jest to narzędzie pracujące w trybie tekstowym co umożliwia pracę na zdalnych komputerach nie wspierających graficznego interfejsu użytkownika. Program wchodzi w skład środowiska programistycznego GNU Toolchain i wspiera wszystkie architektury docelowe obsługiwane przez to środowisko PODSTAWY OBSŁUGI APLIKACJI GDB PRZYGOTOWANIE PLIKU BINARNEGO Każdy program może zostać uruchomiony w trybie krokowym z wykorzystaniem debuggera gdb jednakże odpowiednie przygotowanie pliku wynikowego na etapie kompilacji znacznie ułatwia proces analizy. Aplikacja powinna być skompilowana z dodatkowym parametrem (w przypadku kompilatora z pakietu GNU Toolchain jest to parametr g) dołączającym dodatkowe informacje wykorzystywane przez debugger takie jak nazwy zmiennych czy funkcji. Brak tych informacji powoduje, że aplikacja nie jest w stanie poprawnie interpretować danych zawartych w pliku obiektowym i analiza programu jest możliwa tylko na poziomie kodu asemblera. Dodatkowo, należy pamiętać, że użycie optymalizacji na etapie kompilacji może spowodować usunięcie niektórych zmiennych, rozwinięcie funkcji w miejscu wywołania oraz zmianę kolejności wykonywanych instrukcji. Tego typu operacje powodują rozsynchronizowanie kodu źródłowego aplikacji i zawartości pliku obiektowego co prowadzi do dziwnych zachowań debuggera takich jak próby wizualizacji wykonania nieistniejących linii kodu czy wywołań nieistniejących funkcji. ANALIZOWANIE APLIKACJI Z WYKORZYSTANIEM PROGRAMU GDB W celu rozpoczęcia sesji debuggera należy uruchomić program gdb podając jako parametr nazwę pliku wykonywalnego. Jeżeli aplikacja oczekuje parametrów wejściowych z linii poleceń podaje się je po uruchomieniu środowiska za pomocą polecenia set args. Sesję debuggera kończy się za pomocą polecenia quit [q]. Dodatkowo, za pomocą polecenia help możliwe jest uzyskanie szczegółowych informacji na temat poszczególnych komend np.: help break. Możliwe jest uruchomienie aplikacji w trybie ciągłym lub krokowym. Tryb ciągły powoduje wykonanie programu do momentu poprawnego zakończenia aplikacji, wystąpienia błędu krytycznego lub natrafienia na punkt przerwania (ang. breakpoint). Punkt przerwania to 6

7 miejsce w którym ciągłe wykonanie programu zostaje zakończone a debugger przechodzi do trybu krokowego. W trybie krokowym debugger wykonuje pojedyncze instrukcje na żądanie użytkownika. Tryb ciągły może zostać uruchomiony za pomocą polecenia run [r] lub start przy czym start powoduje automatyczne wstawienie punktu przerwania w pierwszej funkcji programu. Przejście z powrotem z trybu krokowego do ciągłego możliwe jest za pomocą komendy continua [c]. Punkty przerwań można umieszczać w programie za pomocą polecenia break po którym podaje się numer linii w aktualnym pliku, nazwę pliku i numer linii lub nazwę funkcji w programie. Możliwe jest również wstawienie warunkowego punktu przerwań który zostanie aktywowany tylko jeżeli podany warunek jest spełniony np.: break example.cpp:77 if a == 1. Informacje na temat aktualnie ustawionych punktów przerwań można uzyskać za pomocą polecenia info break [i b]. Punkty przerwań można usunąć z programu za pomocą polecenia delete [d] nr_punktu_przerwania. W trybie krokowym dostępne są następujące komendy: next powoduje wykonanie kolejnej instrukcji w programie. Napotkanie instrukcji wywołania funkcji powoduje wykonanie całej funkcji bez zatrzymywania się w jej wnętrzu. step powoduje wykonanie kolejnej instrukcji w programie. Napotkanie instrukcji wywołania funkcji powoduje wejście do jej wnętrza i zatrzymanie programu na pierwszej instrukcji. finish powoduje ciągłe wykonanie programu do momentu natrafienia na instrukcję powrotu z funkcji. nexti powoduje wykonanie jednej instrukcji maszynowej programu. Napotkanie instrukcji wywołania funkcji powoduje wykonanie całej funkcji bez zatrzymywania się w jej wnętrzu. stepi powoduje wykonanie jednej instrukcji maszynowej programu. Napotkanie instrukcji wywołania funkcji powoduje wejście do jej wnętrza i zatrzymanie programu na pierwszej instrukcji. Jeżeli debugger pracuje w trybie krokowym możliwe jest odczytanie wartości poszczególnych zmiennych. Służy do tego polecenie print [p] wyświetlające jednorazowo wartość zmiennej lub display [disp] wyświetlające wartość zmiennej po każdym kroku wykonywanego programu. Uzyskanie informacji na temat listy wyświetlanych zmiennych możliwe jest za pomocą polecenia info display [i disp]. Usunięcie elementu z listy zmiennych wyświetlanych przy każdym kroku programu możliwe jest za pomocą polecenia undisplay nr_zmiennej. Odczytanie zawartości określonej komórki pamięci możliwe jest za pomocą polecenia examine [x]. PODSUMOWANIE KOMEND PROGRAMU GDB Komenda run [r] Opis uruchamia analizowany program w trybie ciągłym 7

8 start [sta] continue [c] break lokacja [b] delete nr [d nr] next [n] nexti [ni] step [s] stepi [si] finish [fin] print zmienna [p] display zmienna [disp] examine adres [x] list [l] info break [i b] info display [i disp] info register [i r] set args argumenty uruchamia analizowany program w trybie ciągłym automatycznie wstawiając punkt przerwania na początku pierwszej funkcji programu przechodzi z trybu krokowego do ciągłego (wznawia wykonanie programu) wstawia punkt przerwania w określone miejsce programu usuwa punkt przerwania o numerze nr wykonuje kolejną linię kodu programu nie wchodzi do wnętrza funkcji wykonuje kolejną instrukcję maszynową programu nie wchodzi do wnętrza funkcji wykonuje kolejną linię kodu programu wchodzi do wnętrza funkcji wykonuje kolejną instrukcję maszynową programu wchodzi do wnętrza funkcji wykonuje program w trybie ciągłym do momentu osiągnięcia instrukcji powrotu z funkcji wyświetla wartość podanej zmiennej dodaje zmienną do listy elementów których wartości są wyświetlane przy każdym kroku wykonywanego programu wyświetla zawartość komórki pamięci o podanym adresie wyświetl kod źródłowy programu począwszy od aktualnego miejsca zatrzymania wyświetla listę punktów przerwania umieszczonych w programie wyświetla listę zmiennych wyświetlanych przy każdy kroku wykonywanego programu wyświetla informacje o rejestrach mikroprocesora ustaw argumenty linii poleceń PRZEKŁAD WYSZUKIWANIA BŁĘDÓW W PROGRAMIE Poniższy program po skompilowaniu i uruchomieniu wyświetla komunikat Floating point exception i kończy działanie. Program został skompilowany za pomocą poniższego polecenia: g++ -Wall g gdb-example-1.cpp o test #include <iostream> int div(int a1) { int w,c, tab[10] = {0; for (c = sizeof(tab)/sizeof(tab[0]); c >= 0; c--){ tab[c] = a1/c; w += tab[c]; return w; int main() { int ival1; ival1 = div(100); return ival1; 8

9 PRZEKŁAD SESJI DEBUGGERA gdb./test GNU gdb 6.8-debian Copyright (C) 2008 Free Software Foundation, Inc. License GPLv3+: GNU GPL version 3 or later < This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law. Type "show copying" and "show warranty" for details. This GDB was configured as "x86_64-linux-gnu"... Debugger oczekuje na polecenia od użytkownika. Program zostaje uruchomiony w trybie ciągłym za pomocą polecenia run [r]. r Starting program: /home/gdb-test/gdb-test-example/test Program received signal SIGFPE, Arithmetic exception. 0x e5 in div (a1=100) at main.cpp:7 7 tab[c] = a1/c; Uruchomienie program w trybie ciagłym skutkuje zakończeniem działania z powodu natrafienia na błąd krytyczny. Wyświetlona została dodatkowa informacja o lokalizacji instrukcji powodującej błąd plik main.cpp linia 7. Polecenie list [l] umożliwia wyświetlenie kodu źródłowego programu. l 2 3 int div(int a1) 4 { 5 int w,c, tab[10] = {0; 6 for (c = sizeof(tab)/sizeof(tab[0]); c >= 0; c--){ 7 tab[c] = a1/c; 8 w += tab[c]; 9 10 return w; 11 Za pomocą polecenia break [b] main.cpp:7 if c == 0 umieszczany jest punkt przerwania w linii generującej błąd. Następnie program jest uruchamiany od początku za pomocą polecenia run [r] b main.cpp:7 if c ==0 Breakpoint 1 at 0x4006d4: file main.cpp, line 7. r The program being debugged has been started already. Start it from the beginning? (y or n) y Starting program: home/gdb-test/gdb-test-example/test Breakpoint 1, div (a1=100) at main.cpp:7 7 tab[c] = a1/c; Teraz możliwe jest przeanalizowanie stanu poszczególnych zmiennych za pomocą polecenia print [p] i zlokalizowanie źródła błędu. p c $3 = 0 p a1 $4 = 100 p w $5 = 301 9

10 PRZYKŁAD SESJI DEBUGGERA Z ODCZYTEM ZMIENNYCH LOKALNYCH gdb-test@dmcslab1:~/gdb-test-example$ gdb./test b div Breakpoint 1 at 0x4006a3: file main.cpp, line 5. r Starting program: /home/apiotro/tmp/test Breakpoint 1, div (a1=100) at main.cpp:5 5 int w,c, tab[10] = {0; n 6 for (c = sizeof(tab)/sizeof(tab[0]); c >= 0; c--){ 7 tab[c] = a1/c; p c $1 = 10 disp c 1: c = 10 disp a1 2: a1 = 100 n 8 w += tab[c]; 2: a1 = 100 1: c = 10 6 for (c = sizeof(tab)/sizeof(tab[0]); c >= 0; c--){ 2: a1 = 100 1: c = 10 n 7 tab[c] = a1/c; 2: a1 = 100 1: c = 9 p c $2 = 9 p &c $3 = (int *) 0x7fffa9f195fc x &c 0x7fffa9f195fc: 0x x 0x7fffa9f195fc 0x7fffa9f195fc: 0x p *0x7fffa9f195fc $4 = 9 OGRANICZENIA ANALIZY APLIKACJI Z UŻYCIEM DEBUGGERA Należy pamiętać, że debugger jest narzędziem ingerującym w przebieg wykonania programu dlatego następujące elementy muszą być wzięte pod uwagę podczas analizy zachowania aplikacji: debugger przejmuje kontrolę nad wykonywaną aplikacją co znacząco wpływa na szybkość działającego programu dlatego wykonanie analizy efektywności aplikacji jest praktycznie niemożliwe, testowanie poprawności działania programu skompilowanego z użyciem optymalizacji oferowanych przez kompilator jest możliwa tylko na poziomie języka asemblera, 10

11 Rozdział 3 LITERATURA [1] Levine, John R., Linkers and Loaders, 1999, ISBN , Morgan Kaufmann Publishers Inc., San Francisco, CA, USA 11

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. Laboratorium 1 Temat: Przygotowanie środowiska programistycznego. Poznanie edytora. Kompilacja i uruchomienie prostych programów przykładowych. 1. Przygotowanie środowiska programistycznego. Zajęcia będą

Bardziej szczegółowo

Procesy pojęcia podstawowe. 1.1 Jak kod źródłowy przekształca się w proces

Procesy pojęcia podstawowe. 1.1 Jak kod źródłowy przekształca się w proces Procesy pojęcia podstawowe 1 1.1 Jak kod źródłowy przekształca się w proces W języku wysokiego poziomu tworzy się tak zwany kod źródłowy który po zapisaniu będzie plikiem z programem źródłowym. Plik źródłowy

Bardziej szczegółowo

Programowanie Systemów Wbudowanych

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

Bardziej szczegółowo

Tworzenie oprogramowania

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

Bardziej szczegółowo

1.Wstęp. 2.Generowanie systemu w EDK

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

Bardziej szczegółowo

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

Bardziej szczegółowo

Technika mikroprocesorowa. Struktura programu użytkownika w systemie mikroprocesorowym

Technika mikroprocesorowa. Struktura programu użytkownika w systemie mikroprocesorowym Struktura programu użytkownika w systemie mikroprocesorowym start inicjalizacja niekończaca się pętla zadania niekrytyczne czasowo przerwania zadania krytyczne czasowo 1 Znaczenie problematyki programowania

Bardziej szczegółowo

Laboratorium Informatyka (I) AiR Ćwiczenia z debugowania

Laboratorium Informatyka (I) AiR Ćwiczenia z debugowania Laboratorium Informatyka (I) AiR Ćwiczenia z debugowania Krzysztof Kluza, Janusz Miller 1 Debugowanie Debugowanie, czy też po polsku odpluskiwanie, to proces polegający na kontrolowanym wykonaniu programu

Bardziej szczegółowo

Zadania: 1. Funkcja przeliczająca F na C: float FtoC(float f){ return (f 32.0) * 5.0 / 9.0; }

Zadania: 1. Funkcja przeliczająca F na C: float FtoC(float f){ return (f 32.0) * 5.0 / 9.0; } Zadania: 1. Funkcja przeliczająca F na C: float FtoC(float f){ return (f 32.0) * 5.0 / 9.0; 2. Utworzyć dodatkową funkcję, która przelicza F na K, na bazie poprzedniej F to C (z poprzednich zajęć), wg

Bardziej szczegółowo

Wstęp do programowania

Wstęp do programowania Wstęp do programowania Przemysław Gawroński D-10, p. 234 Wykład 1 8 października 2018 (Wykład 1) Wstęp do programowania 8 października 2018 1 / 12 Outline 1 Literatura 2 Programowanie? 3 Hello World (Wykład

Bardziej szczegółowo

Grzegorz Cygan. Wstęp do programowania mikrosterowników w języku C

Grzegorz Cygan. Wstęp do programowania mikrosterowników w języku C Grzegorz Cygan Wstęp do programowania mikrosterowników w języku C Mikrosterownik Inne nazwy: Microcontroler (z języka angielskiego) Ta nazwa jest powszechnie używana w Polsce. Mikrokomputer jednoukładowy

Bardziej szczegółowo

Wstęp do programowania. Wykład 1

Wstęp do programowania. Wykład 1 Wstęp do programowania Wykład 1 1 / 49 Literatura Larry Ullman, Andreas Signer. Programowanie w języku C++. Walter Savitch, Kenrick Mock. Absolute C++. Jerzy Grębosz. Symfonia C++. Standard. Stephen Prata.

Bardziej szczegółowo

Sposoby wykrywania i usuwania błędów. Tomasz Borzyszkowski

Sposoby wykrywania i usuwania błędów. Tomasz Borzyszkowski Sposoby wykrywania i usuwania błędów Tomasz Borzyszkowski Mylić się jest rzeczą ludzką Typy błędów: błędy specyfikacji: źle określone wymagania błędy projektowe: nieodpowiednie struktury danych i algorytmy

Bardziej szczegółowo

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

Bardziej szczegółowo

PLAN WYNIKOWY PROGRAMOWANIE APLIKACJI INTERNETOWYCH. KL IV TI 6 godziny tygodniowo (6x15 tygodni =90 godzin ),

PLAN WYNIKOWY PROGRAMOWANIE APLIKACJI INTERNETOWYCH. KL IV TI 6 godziny tygodniowo (6x15 tygodni =90 godzin ), PLAN WYNIKOWY PROGRAMOWANIE APLIKACJI INTERNETOWYCH KL IV TI 6 godziny tygodniowo (6x15 tygodni =90 godzin ), Program 351203 Opracowanie: Grzegorz Majda Tematyka zajęć 2. Przygotowanie środowiska pracy

Bardziej szczegółowo

Programowanie w języku Python. Grażyna Koba

Programowanie w języku Python. Grażyna Koba Programowanie w języku Python 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

Bardziej szczegółowo

Podstawy programowania

Podstawy programowania Podstawy programowania Część pierwsza Od języka symbolicznego do języka wysokiego poziomu Autor Roman Simiński Kontakt roman.siminski@us.edu.pl www.us.edu.pl/~siminski Niniejsze opracowanie zawiera skrót

Bardziej szczegółowo

Programowanie w języku C++ Grażyna Koba

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

Bardziej szczegółowo

Kompilacja i scalanie programów w linii poleceń gcc i make

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

Bardziej szczegółowo

Wykład 4. Środowisko programistyczne

Wykład 4. Środowisko programistyczne Wykład 4 Dostępne kompilatory KEIL komercyjny GNU licencja GPL ARM komercyjny IAR komercyjny 2 Porównanie kompilatorów 3 Porównanie kompilatorów 4 Keil uvision Graficzny edytor Kompilator i linker Symulator

Bardziej szczegółowo

Programowanie obiektowe zastosowanie języka Java SE

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

Bardziej szczegółowo

Smarty PHP. Leksykon kieszonkowy

Smarty PHP. Leksykon kieszonkowy IDZ DO PRZYK ADOWY ROZDZIA SPIS TREœCI KATALOG KSI EK KATALOG ONLINE ZAMÓW DRUKOWANY KATALOG Smarty PHP. Leksykon kieszonkowy Autor: Daniel Bargie³ ISBN: 83-246-0676-9 Format: B6, stron: 112 TWÓJ KOSZYK

Bardziej szczegółowo

Fragment wykładu z języka C ( )

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

Bardziej szczegółowo

Zasady programowania Dokumentacja

Zasady programowania Dokumentacja Marcin Kędzierski gr. 14 Zasady programowania Dokumentacja Wstęp 1) Temat: Przeszukiwanie pliku za pomocą drzewa. 2) Założenia projektu: a) Program ma pobierać dane z pliku wskazanego przez użytkownika

Bardziej szczegółowo

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

Bardziej szczegółowo

Środowisko Keil. Spis treści. Krzysztof Świentek. Systemy wbudowane. 1 Trochę teorii. 2 Keil

Ś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

Bardziej szczegółowo

Podstawy programowania skrót z wykładów:

Podstawy programowania skrót z wykładów: Podstawy programowania skrót z wykładów: // komentarz jednowierszowy. /* */ komentarz wielowierszowy. # include dyrektywa preprocesora, załączająca biblioteki (pliki nagłówkowe). using namespace

Bardziej szczegółowo

Laboratorium 1. I. Zainstaluj program Eclipse (wersja C/C++ w odpowiednim systemie operacyjnym

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

Bardziej szczegółowo

4 Literatura. c Dr inż. Ignacy Pardyka (Inf.UJK) ASK MP.01 Rok akad. 2011/2012 2 / 24

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.

Bardziej szczegółowo

Utworzenie pliku. Dowiesz się:

Utworzenie pliku. Dowiesz się: Dowiesz się: 1. Jak rozpocząć pisanie programu 2. Jak wygląda szkielet programu, co to są biblioteki i funkcja main() 3. Jak wyświetlić ciąg znaków w programie 4. Jak uruchamiać (kompilować) napisany program

Bardziej szczegółowo

C++ - [1-3] Debugowanie w Qt Creator

C++ - [1-3] Debugowanie w Qt Creator Slajd 1 z 10 C++ - [1-3] Debugowanie w Qt Creator Nysa 2004-2013. Autor: Wojciech Galiński. wersja dnia 15 maja 2013 r. Slajd 2 z 10 Pojęcia związane z debugowaniem DEBUGOWANIE (z ang. debugging odrobaczanie)

Bardziej szczegółowo

MentorGraphics ModelSim

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

Bardziej szczegółowo

Java jako język programowania

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)

Bardziej szczegółowo

Podstawy Informatyki Wprowadzenie do języka C dr inż. Jarosław Bułat

Podstawy Informatyki Wprowadzenie do języka C dr inż. Jarosław Bułat 02 Podstawy Informatyki Wprowadzenie do języka C dr inż. Jarosław Bułat 2012.10.07 Program w języku C Program w języku C jest pisany w pliku tekstowym, następnie przetwarzany przez kompilator do pliku

Bardziej szczegółowo

Wprowadzenie do środowiska Qt Creator

Wprowadzenie do środowiska Qt Creator 1.Instalacja środowiska Qt Creator Qt Creator jest wygodnym środowiskiem programistycznym przeznaczonym do tworzenia projektów, czyli aplikacji zarówno konsolowych, jak i okienkowych z wykorzystaniem biblioteki

Bardziej szczegółowo

Szkolenia specjalistyczne

Szkolenia specjalistyczne Szkolenia specjalistyczne AGENDA Programowanie mikrokontrolerów w języku C na przykładzie STM32F103ZE z rdzeniem Cortex-M3 GRYFTEC Embedded Systems ul. Niedziałkowskiego 24 71-410 Szczecin info@gryftec.com

Bardziej szczegółowo

Język ludzki kod maszynowy

Język ludzki kod maszynowy Język ludzki kod maszynowy poziom wysoki Język ludzki (mowa) Język programowania wysokiego poziomu Jeśli liczba punktów jest większa niż 50, test zostaje zaliczony; w przeciwnym razie testu nie zalicza

Bardziej szczegółowo

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

Bardziej szczegółowo

Programowanie obiektowe. Literatura: Autor: dr inŝ. Zofia Kruczkiewicz

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

Bardziej szczegółowo

Programowanie w C. dr inż. Stanisław Wszelak

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++

Bardziej szczegółowo

Programowanie komputerów

Programowanie komputerów Programowanie komputerów Wykład 1-2. Podstawowe pojęcia Plan wykładu Omówienie programu wykładów, laboratoriów oraz egzaminu Etapy rozwiązywania problemów dr Helena Dudycz Katedra Technologii Informacyjnych

Bardziej szczegółowo

Systemy wbudowane. Wprowadzenie. Struktura. Mikrokontrolery AVR. Wprowadzenie do programowania w C

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

Bardziej szczegółowo

Algorytm. a programowanie -

Algorytm. a programowanie - Algorytm a programowanie - Program komputerowy: Program komputerowy można rozumieć jako: kod źródłowy - program komputerowy zapisany w pewnym języku programowania, zestaw poszczególnych instrukcji, plik

Bardziej szczegółowo

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

Bardziej szczegółowo

Metody i algorytmy pomiarów przedmiotów metodami optycznymi.

Metody i algorytmy pomiarów przedmiotów metodami optycznymi. Rozdział 4. Oprogramowanie. Niewątpliwie podstawą poprawnego działania całego układu jest poprawnie napisany program sterujący pracą urządzeń i analizujący wyniki. Oprogramowanie sterujące projektowanym

Bardziej szczegółowo

Niech wynik od 0 do 200F wyświetla w trzech kolumnach: F = (wartość) C = (wyliczona wartość) K = (wyliczona wartość)

Niech wynik od 0 do 200F wyświetla w trzech kolumnach: F = (wartość) C = (wyliczona wartość) K = (wyliczona wartość) Lab 3 - Podstawy Programowania (Kaja.Gutowska@cs.put.poznan.pl) Zadanie 1 - Wykorzystaj program z poprzednich zajęć (program z funkcją przeliczającą Fahrenheity na Celsjusze). Niech program operuje na

Bardziej szczegółowo

Programowanie mikrokontrolerów AVR

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

Bardziej szczegółowo

Programowanie niskopoziomowe

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

Bardziej szczegółowo

Przedmiot : Programowanie w języku wewnętrznym. Ćwiczenie nr 4

Przedmiot : Programowanie w języku wewnętrznym. Ćwiczenie nr 4 Przedmiot : Programowanie w języku wewnętrznym Ćwiczenie nr 4 str. 1. 1. Użycie Asemblera. Polecenie JMP. Polecenie nakazuje procesorowi wykonywanie kodu programu od nowego innego miejsca. Miejsce to jest

Bardziej szczegółowo

Wykład VII. Programowanie. dr inż. Janusz Słupik. Gliwice, 2014. Wydział Matematyki Stosowanej Politechniki Śląskiej. c Copyright 2014 Janusz Słupik

Wykład VII. Programowanie. dr inż. Janusz Słupik. Gliwice, 2014. Wydział Matematyki Stosowanej Politechniki Śląskiej. c Copyright 2014 Janusz Słupik Wykład VII Wydział Matematyki Stosowanej Politechniki Śląskiej Gliwice, 2014 c Copyright 2014 Janusz Słupik Kompilacja Kompilator C program do tłumaczenia kodu źródłowego na język maszynowy. Preprocesor

Bardziej szczegółowo

Systemy Operacyjne - Operacje na plikach

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

Bardziej szczegółowo

Programowanie niskopoziomowe. dr inż. Paweł Pełczyński ppelczynski@swspiz.pl

Programowanie niskopoziomowe. dr inż. Paweł Pełczyński ppelczynski@swspiz.pl Programowanie niskopoziomowe dr inż. Paweł Pełczyński ppelczynski@swspiz.pl 1 Literatura Randall Hyde: Asembler. Sztuka programowania, Helion, 2004. Eugeniusz Wróbel: Praktyczny kurs asemblera, Helion,

Bardziej szczegółowo

Programowanie niskopoziomowe

Programowanie niskopoziomowe Programowanie niskopoziomowe Programowanie niskopoziomowe w systemie operacyjnym oraz poza nim Tworzenie programu zawierającego procedury asemblerowe 1 Programowanie niskopoziomowe w systemie operacyjnym

Bardziej szczegółowo

Sprzęt komputera - zespół układów wykonujących programy wprowadzone do pamięci komputera (ang. hardware) Oprogramowanie komputera - zespół programów

Sprzęt komputera - zespół układów wykonujących programy wprowadzone do pamięci komputera (ang. hardware) Oprogramowanie komputera - zespół programów Sprzęt komputera - zespół układów wykonujących programy wprowadzone do pamięci komputera (ang. hardware) Oprogramowanie komputera - zespół programów przeznaczonych do wykonania w komputerze (ang. software).

Bardziej szczegółowo

https://portal.clusterix.pl:8443 trainxx tramxx

https://portal.clusterix.pl:8443 trainxx tramxx Logowanie 1. Otworzyć w oknie przeglądarki adres: https://portal.clusterix.pl:8443 2. Zalogować się używając konta, użytkownik: trainxx, hasło: tramxx Delegacja certyfikatu proxy 1. Zalogować poprzez ssh

Bardziej szczegółowo

Wskaźnik może wskazywać na jakąś zmienną, strukturę, tablicę a nawet funkcję. Oto podstawowe operatory niezbędne do operowania wskaźnikami:

Wskaźnik może wskazywać na jakąś zmienną, strukturę, tablicę a nawet funkcję. Oto podstawowe operatory niezbędne do operowania wskaźnikami: Wskaźniki są nieodłącznym elementem języka C. W języku C++ także są przydatne i korzystanie z nich ułatwia pracę, jednak w odróżnieniu do C wiele rzeczy da się osiągnąć bez ich użycia. Poprawne operowanie

Bardziej szczegółowo

Instrukcje instalacji pakietu IBM SPSS Data Access Pack dla systemu Linux

Instrukcje instalacji pakietu IBM SPSS Data Access Pack dla systemu Linux Instrukcje instalacji pakietu IBM SPSS Data Access Pack dla systemu Linux Spis treści Rozdział 1. Przegląd......... 1 Wstęp................. 1 Wdrażanie technologii Data Access........ 1 Źródła danych

Bardziej szczegółowo

Podstawy Informatyki Języki programowania c.d.

Podstawy Informatyki Języki programowania c.d. Podstawy Informatyki alina.momot@polsl.pl http://zti.polsl.pl/amomot/pi Plan wykładu 1 Przykład programu samomodyfikującego się Przykład - sumowanie elementów tablicy 2 Makroasembler - założenia Przykład

Bardziej szczegółowo

Architektury Usług Internetowych. Laboratorium 2. Usługi sieciowe

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

Bardziej szczegółowo

IBM SPSS Statistics Wersja 22. Linux - Instrukcja instalacji (licencja wielokrotna)

IBM SPSS Statistics Wersja 22. Linux - Instrukcja instalacji (licencja wielokrotna) IBM SPSS Statistics Wersja 22 Linux - Instrukcja instalacji (licencja wielokrotna) Spis treści Instrukcja instalacji.......... 1 Wymagania systemowe........... 1 Instalowanie produktu............ 1 Praca

Bardziej szczegółowo

Programowanie Niskopoziomowe

Programowanie Niskopoziomowe Programowanie Niskopoziomowe Wykład 8: Procedury Dr inż. Marek Mika Państwowa Wyższa Szkoła Zawodowa im. Jana Amosa Komeńskiego W Lesznie Plan Wstęp Linkowanie z bibliotekami zewnętrznymi Operacje na stosie

Bardziej szczegółowo

WYKONANIE APLIKACJI OKIENKOWEJ OBLICZAJĄCEJ SUMĘ DWÓCH LICZB W ŚRODOWISKU PROGRAMISTYCZNYM. NetBeans. Wykonał: Jacek Ventzke informatyka sem.

WYKONANIE APLIKACJI OKIENKOWEJ OBLICZAJĄCEJ SUMĘ DWÓCH LICZB W ŚRODOWISKU PROGRAMISTYCZNYM. NetBeans. Wykonał: Jacek Ventzke informatyka sem. WYKONANIE APLIKACJI OKIENKOWEJ OBLICZAJĄCEJ SUMĘ DWÓCH LICZB W ŚRODOWISKU PROGRAMISTYCZNYM NetBeans Wykonał: Jacek Ventzke informatyka sem. VI 1. Uruchamiamy program NetBeans (tu wersja 6.8 ) 2. Tworzymy

Bardziej szczegółowo

Programowanie C++ Wykład 1 - Aplikacje konsowlowe w środowisku QT. dr inż. Jakub Możaryn. Warszawa, 2014. Instytut Automatyki i Robotyki

Programowanie C++ Wykład 1 - Aplikacje konsowlowe w środowisku QT. dr inż. Jakub Możaryn. Warszawa, 2014. Instytut Automatyki i Robotyki Wykład 1 - Aplikacje konsowlowe w środowisku QT Instytut Automatyki i Robotyki Warszawa, 2014 Wstęp Plan wykładu Podstawowe pojęcia i proste programy. Pojęcia algorytmu, programu, kodu wykonywalnego. Kompilacja

Bardziej szczegółowo

Wstęp do Informatyki i Programowania Laboratorium: Lista 0 Środowisko programowania

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

Bardziej szczegółowo

Instrukcje instalacji pakietu IBM SPSS Data Access Pack dla systemu Windows

Instrukcje instalacji pakietu IBM SPSS Data Access Pack dla systemu Windows Instrukcje instalacji pakietu IBM SPSS Data Access Pack dla systemu Windows Spis treści Rozdział 1. Przegląd......... 1 Wstęp................. 1 Wdrażanie technologii Data Access........ 1 Źródła danych

Bardziej szczegółowo

Historia modeli programowania

Historia modeli programowania Języki Programowania na Platformie.NET http://kaims.eti.pg.edu.pl/ goluch/ goluch@eti.pg.edu.pl Maszyny z wbudowanym oprogramowaniem Maszyny z wbudowanym oprogramowaniem automatyczne rozwiązywanie problemu

Bardziej szczegółowo

Informator techniczny

Informator techniczny Zapis i odczyt pamięci Flash na ruchu w kontrolerach PACSystems Programowa obsługa zapisu i odczytu pamięci Flash Ogólne informacje na temat obsługi pamięci Flash Poza standardowym programowaniem pamięci

Bardziej szczegółowo

1 Zapoznanie się ze środowiskiem Xenomai.

1 Zapoznanie się ze środowiskiem Xenomai. 1 Zapoznanie się ze środowiskiem Xenomai. Wszystkie ćwiczenia oraz programy opracowane zostały w Xenomai w wersji 2.5.6. Dlatego też odwołania do dokumentacji dotyczą dokumentu pod adresem: http://www.xenomai.org/documentation/xenomai-2.5/html/api/

Bardziej szczegółowo

WYKŁAD 1 - KONSPEKT. Program wykładu:

WYKŁAD 1 - KONSPEKT. Program wykładu: mgr inż. Jarosław Forenc e-mail: jarekf@pb.bialystok.pl tel. (0-85) 746-93-97 WWW: http://we.pb.bialystok.pl/~jforenc konsultacje: zaliczenie: Program wykładu: WYKŁAD 1 - KONSPEKT 1. Ogólna struktura programu

Bardziej szczegółowo

Wykład. Materiały bazują częściowo na slajdach Marata Dukhana

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

Bardziej szczegółowo

Tom 6 Opis oprogramowania Część 8 Narzędzie do kontroli danych elementarnych, danych wynikowych oraz kontroli obmiaru do celów fakturowania

Tom 6 Opis oprogramowania Część 8 Narzędzie do kontroli danych elementarnych, danych wynikowych oraz kontroli obmiaru do celów fakturowania Część 8 Narzędzie do kontroli danych elementarnych, danych wynikowych oraz kontroli Diagnostyka stanu nawierzchni - DSN Generalna Dyrekcja Dróg Krajowych i Autostrad Warszawa, 21 maja 2012 Historia dokumentu

Bardziej szczegółowo

Podstawy programowania. Wykład Funkcje. Krzysztof Banaś Podstawy programowania 1

Podstawy programowania. Wykład Funkcje. Krzysztof Banaś Podstawy programowania 1 Podstawy programowania. Wykład Funkcje Krzysztof Banaś Podstawy programowania 1 Programowanie proceduralne Pojęcie procedury (funkcji) programowanie proceduralne realizacja określonego zadania specyfikacja

Bardziej szczegółowo

Implementacja aplikacji sieciowych z wykorzystaniem środowiska Qt

Implementacja aplikacji sieciowych z wykorzystaniem środowiska Qt Implementacja aplikacji sieciowych z wykorzystaniem środowiska Qt 1. Wprowadzenie Wymagania wstępne: wykonanie ćwiczeń Adresacja IP oraz Implementacja aplikacji sieciowych z wykorzystaniem interfejsu gniazd

Bardziej szczegółowo

PLAN WYNIKOWY PROGRAMOWANIE APLIKACJI INTERNETOWYCH. KL III TI 4 godziny tygodniowo (4x30 tygodni =120 godzin ),

PLAN WYNIKOWY PROGRAMOWANIE APLIKACJI INTERNETOWYCH. KL III TI 4 godziny tygodniowo (4x30 tygodni =120 godzin ), PLAN WYNIKOWY PROGRAMOWANIE APLIKACJI INTERNETOWYCH KL III TI 4 godziny tygodniowo (4x30 tygodni =120 godzin ), Program 351203 Opracowanie: Grzegorz Majda Tematyka zajęć 1. Wprowadzenie do aplikacji internetowych

Bardziej szczegółowo

Wyrażenie include(sciezka_do_pliku) pozwala na załadowanie (wnętrza) pliku do skryptu php. Plik ten może zawierać wszystko, co może się znaleźć w

Wyrażenie include(sciezka_do_pliku) pozwala na załadowanie (wnętrza) pliku do skryptu php. Plik ten może zawierać wszystko, co może się znaleźć w Wyrażenie include(sciezka_do_pliku) pozwala na załadowanie (wnętrza) pliku do skryptu php. Plik ten może zawierać wszystko, co może się znaleźć w obrębie skryptu. Wyrażenia include() i require() są niemal

Bardziej szczegółowo

Praca w środowisku Visual Studio 2008, Visual C

Praca w środowisku Visual Studio 2008, Visual C Praca w środowisku Visual Studio 2008, Visual C++ 2008 mgr inż. Tomasz Jaworski tjaworski@kis.p.lodz.pl http://tjaworski.kis.p.lodz.pl/ Tworzenie aplikacji konsolowych 2 3 Tworzenie nowego projektu aplikacji

Bardziej szczegółowo

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

Bardziej szczegółowo

1. Opis. 2. Wymagania sprzętowe:

1. Opis. 2. Wymagania sprzętowe: 1. Opis Aplikacja ARSOFT-WZ2 umożliwia konfigurację, wizualizację i rejestrację danych pomiarowych urządzeń produkcji APAR wyposażonych w interfejs komunikacyjny RS232/485 oraz protokół MODBUS-RTU. Aktualny

Bardziej szczegółowo

Dariusz Brzeziński. Politechnika Poznańska, Instytut Informatyki

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

Bardziej szczegółowo

Podstawy programowania. Wykład 1 Wstęp. Krzysztof Banaś Podstawy programowania 1

Podstawy programowania. Wykład 1 Wstęp. Krzysztof Banaś Podstawy programowania 1 Podstawy programowania. Wykład 1 Wstęp Krzysztof Banaś Podstawy programowania 1 Elementy historii informatyki I think there is a world market for maybe five computers. - Thomas Watson, chairman of IBM,

Bardziej szczegółowo

Tworzenie nowego projektu w asemblerze dla mikroprocesora z rodziny 8051

Tworzenie nowego projektu w asemblerze dla mikroprocesora z rodziny 8051 Tworzenie nowego projektu w asemblerze dla mikroprocesora z rodziny 8051 Katedra Automatyki, Wydział EAIiE Akademia Górniczo-Hutnicza w Krakowie Marcin Piątek Kraków 2008 1. Ważne uwagi i definicje Poniższy

Bardziej szczegółowo

Politechnika Białostocka Wydział Elektryczny Katedra Automatyki i Elektroniki

Politechnika Białostocka Wydział Elektryczny Katedra Automatyki i Elektroniki Politechnika Białostocka Wydział Elektryczny Katedra Automatyki i Elektroniki ĆWICZENIE Nr 1 (3h) Wprowadzenie do obsługi platformy projektowej Quartus II Instrukcja pomocnicza do laboratorium z przedmiotu

Bardziej szczegółowo

Java EE produkcja oprogramowania

Java EE produkcja oprogramowania Java EE produkcja oprogramowania PPJ PODSTAWY PROGRAMOWANIA W JAVIE PODSTAWY JĘZYKA JAVA 1 Warszawa, 2016Z 2 Ogólna charakterystyka języka Java 3 Java 1/2 Język programowania Java został opracowany przez

Bardziej szczegółowo

GNU GProf i GCov. przygotował: Krzysztof Jurczuk Politechnika Białostocka Wydział Informatyki Katedra Oprogramowania ul. Wiejska 45A Białystok

GNU GProf i GCov. przygotował: Krzysztof Jurczuk Politechnika Białostocka Wydział Informatyki Katedra Oprogramowania ul. Wiejska 45A Białystok GNU GProf i GCov przygotował: Krzysztof Jurczuk Politechnika Białostocka Wydział Informatyki Katedra Oprogramowania ul. Wiejska 45A 15-351 Białystok Streszczenie: Dokument zawiera podstawowe informacje

Bardziej szczegółowo

Zajęcia nr 1 Podstawy programowania. dr inż. Łukasz Graczykowski mgr inż. Leszek Kosarzewski Wydział Fizyki Politechniki Warszawskiej

Zajęcia nr 1 Podstawy programowania. dr inż. Łukasz Graczykowski mgr inż. Leszek Kosarzewski Wydział Fizyki Politechniki Warszawskiej Zajęcia nr 1 Podstawy programowania dr inż. Łukasz Graczykowski mgr inż. Leszek Kosarzewski Wydział Fizyki Politechniki Warszawskiej Ramowy program warsztatów 1. Pierwsze: Podstawy programowania 2. Drugie:

Bardziej szczegółowo

Programowanie w asemblerze Linkowanie

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ć

Bardziej szczegółowo

Metody Kompilacji Wykład 1 Wstęp

Metody Kompilacji Wykład 1 Wstęp Metody Kompilacji Wykład 1 Wstęp Literatura: Alfred V. Aho, Ravi Sethi, Jeffrey D. Ullman: Compilers: Princiles, Techniques, and Tools. Addison-Wesley 1986, ISBN 0-201-10088-6 Literatura: Alfred V. Aho,

Bardziej szczegółowo

Mikroprocesor Operacje wejścia / wyjścia

Mikroprocesor Operacje wejścia / wyjścia Definicja Mikroprocesor Operacje wejścia / wyjścia Opracował: Andrzej Nowak Bibliografia: Urządzenia techniki komputerowej, K. Wojtuszkiewicz Operacjami wejścia/wyjścia nazywamy całokształt działań potrzebnych

Bardziej szczegółowo

Temat 1: Podstawowe pojęcia: program, kompilacja, kod

Temat 1: Podstawowe pojęcia: program, kompilacja, kod Temat 1: Podstawowe pojęcia: program, kompilacja, kod wynikowy. Przykłady najprostszych programów. Definiowanie zmiennych. Typy proste. Operatory: arytmetyczne, przypisania, inkrementacji, dekrementacji,

Bardziej szczegółowo

Programowanie proceduralne w języku C++ Podstawy

Programowanie proceduralne w języku C++ Podstawy Programowanie proceduralne w języku C++ Podstawy Mirosław Głowacki 1 1 Akademia Górniczo-Hutnicza im. Stanisława Staszica w Ktrakowie Wydział Inżynierii Metali i Informatyki Stosowanej Katedra Informatyki

Bardziej szczegółowo

Rys. 1. Główne okno programu QT Creator. Na rysunku 2 oznaczone zostały cztery przyciski, odpowiadają kolejno następującym funkcjom:

Rys. 1. Główne okno programu QT Creator. Na rysunku 2 oznaczone zostały cztery przyciski, odpowiadają kolejno następującym funkcjom: 1. QT creator, pierwsze kroki. Qt Creator wieloplatformowe środowisko programistyczne dla języków C++, JavaScript oraz QML, będące częścią SDK dla biblioteki Qt. Zawiera w sobie graficzny interfejs dla

Bardziej szczegółowo

Spis treści JĘZYK C - ŚLEDZENIE WYKONANIA PROGRAMU, DEBUGGER. Informatyka 1. Instrukcja do pracowni specjalistycznej z przedmiotu

Spis treści JĘZYK C - ŚLEDZENIE WYKONANIA PROGRAMU, DEBUGGER. Informatyka 1. Instrukcja do pracowni specjalistycznej z przedmiotu Politechnika Białostocka Wydział Elektryczny Katedra Elektrotechniki Teoretycznej i Metrologii Instrukcja do pracowni specjalistycznej z przedmiotu Informatyka 1 Kod przedmiotu: ES1D200 009 (studia stacjonarne)

Bardziej szczegółowo

HELIOS pomoc społeczna

HELIOS pomoc społeczna Instrukcja przygotowania pliku wsadowego do zasilenia SEPI przy pomocy dodatkowej aplikacji HELSepi 1. Instalacja aplikacji Pobieramy plik instalacyjny HelSEPIsetup.exe ze strony internetowej www.ops.strefa.pl

Bardziej szczegółowo

Tango-RedPitaya. Tango device server for RedPitaya multi-instrument board. Grzegorz Kowalski daneos@daneos.com 31 sierpnia 2015

Tango-RedPitaya. Tango device server for RedPitaya multi-instrument board. Grzegorz Kowalski daneos@daneos.com 31 sierpnia 2015 Tango-RedPitaya Tango device server for RedPitaya multi-instrument board Grzegorz Kowalski daneos@daneos.com 31 sierpnia 2015 Streszczenie Tango-RedPitaya jest serwerem urządzeń Tango sterującym płytką

Bardziej szczegółowo

KONSTRUKCJA KOMPILATORÓW

KONSTRUKCJA KOMPILATORÓW KONSTRUKCJA KOMPILATORÓW WYKŁAD Robert Plebaniak PLATFORMA PROGRAMOWA LINUX (może nie zawierać LLgen, wówczas instalacja ze strony http://tack.sourceforge.net); WINDOWS (używa się wtedy programu Cygwin,

Bardziej szczegółowo

ICD Wprowadzenie. Wprowadzenie. Czym jest In-Circuit Debugger? 2. O poradniku 3. Gdzie szukać dodatkowych informacji? 4

ICD Wprowadzenie. Wprowadzenie. Czym jest In-Circuit Debugger? 2. O poradniku 3. Gdzie szukać dodatkowych informacji? 4 ICD 2 Czym jest In-Circuit Debugger? 2 O poradniku 3 Gdzie szukać dodatkowych informacji? 4 ICD 1 ICD 25.08.2009 Czym jest In-Circuit Debugger? Większość procesorów dostarcza systemów debugowania (ang.

Bardziej szczegółowo

Programowanie procesora Microblaze w środowisku SDK

Programowanie procesora Microblaze w środowisku SDK Programowanie procesora Microblaze w środowisku SDK 9 kwietnia 2010 Zespół Rekonfigurowalnych Systemów Obliczeniowych AGH Kraków http://www.fpga.agh.edu.pl/ 1.Wstęp Celem niniejszego ćwiczenia jest: zapoznanie

Bardziej szczegółowo