Wstęp 6
1. Informacje podstawowe 9
1.1. Systemy wbudowane 10
1.1.1. Definicja, zastosowania, rynek 10
1.2. System operacyjny 11
1.2.1. Definicja 11
1.2.2. Funkcje pełnione przez system 11
1.2.3. Zasadność wykorzystania systemu operacyjnego 12
1.2.4. Dlaczego Linux? 13
1.3. Platforma sprzętowa 13
1.3.1. Rdzeń Cortex-A 14
1.3.2. Układy serii OMAP3. Przykłady zastosowań 15
1.3.3. Zestaw DevKit8000 16
2. Linux - podstawy w pigułce 19
2.1. Krótka historia Linuksa 20
2.2. Warstwowy model systemu operacyjnego Linux 21
2.3. Drzewo katalogów 22
2.4. Operacje wejścia-wyjścia w systemie Linux 23
3. Narzędzia programowe i sprzętowe 25
3.1. Narzędzia programowe 26
3.1.1. Instalacja systemu Linux na komputerze hosta 26
3.1.2. Instalacja systemu Linux na maszynie wirtualnej 27
3.1.3. Wykorzystanie instalatora WUBI 28
3.1.4. Przygotowanie środowiska pracy w systemie Linux 29
3.2. Narzędzia i połączenia sprzętowe 34
3.2.1. Przykład realizacji konwertera USB-RS232. Nawiązanie połączenia 34
3.2.2. Projekt dwukierunkowego konwertera poziomów logicznych 35
4. Uruchomienie systemu na platformie docelowej 37
4.1. Kompilacja jądra Linuksa 38
4.2. Etapy uruchomiania systemu. Kompilacja elementów składowych 39
4.2.1. Start systemu 39
4.2.2. Bootloader pierwszego poziomu - X-loader 40
4.2.3. Bootloader drugiego poziomu - u-boot 41
4.2.4. Dystrybucja 41
4.3. Konfigurowanie wyprowadzeń 42
4.3.1. Konfiguracja poprzez u-boota 43
4.3.2. Konfiguracja poprzez jądro systemu – wersje < 2.6.32 44
4.3.3. Porównanie technik. Popełniane błędy konfiguracji 46
4.4. Przygotowanie karty SD z obrazem systemu 46
4.5. Uruchomienie systemu. Opcje u-boota 50
4.6. Pierwszy projekt – Hello World. Standardowe strumienie 52
5. Obsługa portów GPIO 55
5.1. Sterowanie diodami LED za pomocą LED Class Driver 56
5.1.1. Przygotowanie jądra systemu 56
5.1.2. Połączenia sprzętowe 61
5.1.3. Sterowanie diodami z poziomu konsoli 62
5.1.4. Aplikacja realizująca prosty efekt świetlny. Funkcje obsługi plików 63
5.2. Sterowanie portami z wykorzystaniem klasy GPIO 67
5.2.1. Przygotowanie jądra systemu 67
5.2.2. Sterowanie portami GPIO z poziomu konsoli 68
5.2.3. Połączenia sprzętowe – przekaźnik 69
5.2.4. Połączenia sprzętowe – przyciski 70
5.2.5. Aplikacja sterownika astronomicznego. Obsługa sygnałów 71
5.3. Obsługa przycisków za pomocą sterownika GPIO Buttons 77
5.3.1. Przygotowanie jądra systemu 77
5.3.2. Obsługa przycisków z poziomu konsoli 79
5.3.3. Prosty przykład w języku C 79
5.4. Podsumowanie 81
6. Szeregowe interfejsy komunikacyjne 83
6.1. Interfejs 1-wire 84
6.1.1. Podstawy teoretyczne 84
6.1.2. Przygotowanie jądra systemu 87
6.1.3. Połączenia sprzętowe 89
6.1.4. Charakterystyka czujników DS18B20 90
6.1.5. Odczyt temperatury z poziomu konsoli 91
6.1.6. Powłoka systemowa. Język AWK. Proste skrypty 92
6.1.7. Przykład praktyczny w języku C – logger temperatury 99
6.2. Interfejs I2C 103
6.2.1. Podstawy teoretyczne 103
6.2.2. Przygotowanie jądra systemu 106
6.2.3. Przetwornik PCF8591. Schematy połączeń 108
6.2.4. Obsługa magistrali I2C za pomocą pakietu i2c-tools 111
6.2.5. Przykład praktyczny w języku C 113
6.3. Interfejs RS-232 119
6.3.1. Podstawy teoretyczne 119
6.3.2. Logika pracy i poziomy napięć portu szeregowego 121
6.3.3. Porty szeregowe w systemie Linux 121
6.3.4. Połączenia sprzętowe 127
6.3.5. Przykład praktyczny w języku C - logger GPS 128
7. Przykłady wykorzystania gotowych pakietów oprogramowania 133
7.1. Menedżer pakietów opkg 134
7.2. Instalacja i konfiguracja serwera WWW 136
7.2.1. Oprogramowanie 136
7.2.2. Konfiguracja serwera lighttpd 137
7.2.3. Skrypty CGI – konfiguracja serwera 138
7.2.4. Proste skrypty CGI 138
7.2.5. Skrypty CGI - wykorzystanie powłoki systemowej 141
7.3. Łączność Bluetooth 143
7.3.1. Konfiguracja jądra systemu 143
7.3.2. Instalacja stosu Bluetooth. Nawiązanie połączenia 144
7.3.3. Odczyt wirtualnego portu szeregowego 145
7.3.4. Transmisja plików z wykorzystaniem protokołu OBEX 146
Dodatek A. Aktualizacja obrazów w pamięci NAND na przykładzie DevKit8000 149
A.1. Aktualizacja X-loadera 150
A.2. Aktualizacja u-boota 151
A.3. Aktualizacja jądra systemu 151
Dodatek B. Rejestry konfiguracji wyprowadzeń układów OMAP35xx 153
Literatura 165