Vorwort | 6 |
Inhaltsverzeichnis | 8 |
Grundlagen und Plattformen | 16 |
1 Grundlagen | 17 |
1.1 Einführung | 17 |
1.2 Architekturen, Plattformen und Geschichtliches | 18 |
1.3 Eigenschaften eingebetteter Systeme | 21 |
1.4 Betriebssysteme | 27 |
1.5 Software-Entwicklung | 33 |
1.6 Aufbau und Gebrauch des Buches | 38 |
2 Hardware-Plattformen | 40 |
2.1 Einführung | 40 |
2.2 Network-Attached-Storage NSLU2 | 41 |
2.3 WLAN-Router WL-500gP | 43 |
2.4 MicroClient Jr. und Sr. | 46 |
2.5 OpenRISC Alekto | 50 |
2.6 Mini-ITX-Mainboard D945GCLF2 mit Dual-Core Atom CPU | 51 |
2.7 Pegelanpassung für die RS- 232- Schnittstelle | 54 |
3 OpenWrt auf dem WLAN-Router WL-500g Premium | 56 |
3.1 Einführung | 56 |
3.2 Einrichtung des OpenWrt-Build-Systems | 57 |
3.3 Schnelleres Einloggen mit SSH-Keys | 63 |
3.4 Software-Entwicklung für OpenWrt | 64 |
3.5 Erstellung eigener OpenWrt-Module | 66 |
3.6 IO-Warrior-Erweiterung und Kernelmodule unter OpenWrt | 70 |
4 Debian auf dem NAS-Gerät NSLU2 | 74 |
4.1 Einführung | 74 |
4.2 Debian-Installation | 75 |
4.3 Erste Schritte | 78 |
4.4 Software-Entwicklung für die NSLU2 | 79 |
4.5 NSLU2 als Druckerserver | 80 |
4.6 Weiterführende Hinweise | 83 |
5 Debian auf dem Embedded-PC OpenRISC- Alekto | 85 |
5.1 Einführung | 85 |
5.2 Angepasste Debian-Installation | 86 |
5.3 Erste Schritte | 87 |
5.4 Software-Entwicklung | 89 |
5.5 Zugriff auf die Alekto-Hardware | 91 |
5.6 Watchdog-Timer | 94 |
5.7 Erstellung eines eigenen Alekto-Kernels | 95 |
5.8 Vollständige Debian- Installation | 96 |
6 Puppy Linux auf dem Embedded-PC MicroClient Jr./ Sr. | 99 |
6.1 Einführung | 99 |
6.2 Puppy-Installation | 99 |
6.3 Paket-Management unter Puppy | 101 |
6.4 Software-Entwicklung unter Puppy | 103 |
Anwendungen | 106 |
7 Legacy-Schnittstellen und digitale IOs | 107 |
7.1 Einführung | 107 |
7.2 RS-232 | 108 |
7.3 Centronics und IEEE 1284 | 120 |
7.4 General Purpose Input/Output (GPIO) | 123 |
7.5 Schnittstellenerweiterung über IO- Warrior | 125 |
8 Der Inter-IC-Bus | 129 |
8.1 Einführung | 129 |
8.2 I2C-Datenübertragung | 132 |
8.3 I2C-Anbindung | 140 |
8.4 Alternative serielle Bussysteme | 148 |
9 Inter-IC-Bus-Komponenten | 156 |
9.1 Einführung | 156 |
9.2 Die I2C-Bibliothek | 158 |
9.3 Tastatur- und LC-Display-Ansteuerung mit PCF8574 | 162 |
9.4 Temperaturmessung mit DS1631 | 172 |
9.5 A/D- und D/A-Wandler | 174 |
9.6 TMC222-Schrittmotorsteuerung | 179 |
9.7 Chipkarten-Ansteuerung | 185 |
9.8 I2C-Bus-Erweiterung über Multiplexer | 194 |
10 USB-Komponenten | 197 |
10.1 Einführung | 197 |
10.2 USB-Audioanbindung: MP3-Player und Sprachausgabe | 198 |
10.3 USB-WLAN-Adapter | 200 |
10.4 USB-Bluetooth-Erweiterung | 204 |
10.5 USB-GPS-Module | 216 |
10.6 USB-Speichererweiterung | 220 |
11 Gerätetreiber und Kernelmodule | 224 |
11.1 Einführung | 224 |
11.2 Grundlagen | 225 |
11.3 Programmierung von Kernelmodulen | 230 |
11.4 Zeichenorientierte Gerätetreiber | 236 |
11.5 Implementierung von Dateioperationen | 242 |
11.6 Hardware-Zugri | 250 |
12 Multithreading | 256 |
12.1 Einführung | 256 |
12.2 Grundlagen | 257 |
12.3 Posix-Schnittstelle | 262 |
12.4 C++-Schnittstelle | 268 |
12.5 Anwendungsbeispiel: Servo-Ansteuerung | 277 |
13 Netzwerkkommunikation | 287 |
13.1 Einführung | 287 |
13.2 Datenübertragung via UDP | 289 |
13.3 Kommunikation mit einer Qt-Anwendung | 312 |
13.4 Interaktion mit einem Webserver via CGI | 325 |
14 Video for Linux | 333 |
14.1 Einführung | 333 |
14.2 Treiberinstallation und Inbetriebnahme | 333 |
14.3 Bildeinzug unter Linux per V4L | 337 |
14.4 Treiberkapselung für die IVT- Bibliothek | 344 |
15 Intelligente Kamera | 347 |
15.1 Einführung | 347 |
15.2 Sicherheitssystem mit Bewegungserkennung | 347 |
15.3 Weiterführende Informationen | 350 |
16 Ausblick | 356 |
16.1 Communities, Projekte, Trends | 356 |
16.2 Schlusswort und Kontaktdaten | 360 |
Anhang | 361 |
A Kurzreferenzen | 362 |
A.1 Einführung | 362 |
A.2 Die Linux-Konsole | 362 |
A.3 Netzwerkeinstellungen und SSH | 369 |
A.4 Weitere Werkzeuge und Dienste | 373 |
A.5 Diagnose- und Failsafe-Modi | 382 |
B Alternative Hardware-Plattformen | 384 |
B.1 Einführung | 384 |
B.2 Router | 384 |
B.3 Network Attached Storage | 384 |
B.4 Industrielle Kompaktsysteme | 385 |
B.5 Einplatinencomputer | 385 |
B.6 Sonderlösungen | 385 |
C Die IVT-Bibliothek | 387 |
C.1 Einführung | 387 |
C.2 Architektur | 388 |
C.3 Beispielapplikationen | 393 |
C.4 Übersicht zu weiterer Funktionalität der IVT | 395 |
C.5 Installation | 396 |
D Die Qt-Bibliothek | 405 |
D.1 Einführung | 405 |
D.2 Oberflächenerstellung mit Qt Designer | 413 |
E Bezugsquellen | 422 |
F Verzeichnisbaum | 425 |
Literaturverzeichnis | 427 |
Sachverzeichnis | 431 |