embedded linux portierung auf mobiles datenerfassungsterminal ole reinhardt
TRANSCRIPT
Embedded Linux Portierungauf mobiles Datenerfassungsterminal
Ole Reinhardt <[email protected]>
Embedded Linux
Embedded = Eingebettet, Verborgen?
Embedded Linux
Embedded = Eingebettet, Verborgen? Nein!
Embedded Linux
Embedded Linux eignet sich auch für Endbenutzergeräte...
z.B. Skeye.Integral von Höft&Wessel
Embedded Linux
Vorteile von Linux als Betriebssystem:
• Unabhängige Lösung• Einfache Integration• Schnelle / Kundenspezifische Anpassung• Applikationsentwicklung: Gleiche APIs wie auf dem PC• Großer Fundus an bewährter Software und Programmbibliotheken• Plattformunabhängigkeit
Embedded Linux auf Skeye.Integral
Das Ziel:
Vollständiger Ersatz für Windows CE.NET 4.20und den Bootloader
Die Lösung:• ARM Linux Kernel 2.4.25
• Familiar Linux Distribution
• GPE Desktop Enviroment
Embedded Linux auf Skeye.Integral
Die Plattform:• StrongARM SA1110 206Mhz, SA1111 Companion
• 64MB RAM, 32 NAND Flash, 1 MB NOR Flash
• 2x CF Steckplatz, Laserscanner, Tastatur
• 240x320 16Bit TFT Display
• USB Host und Client
• IR und RS232 Schnittstelle, LiIon Akku
Die Baustelle
Arbeitsschritte bei der Portierung:• Entwicklung des Bootloaders
• Anpassen des ARM Linux Kernels
• Entwicklung eigener Treiber für spezielle Hardware
• Erstellen einer eigenen Linux Distribution
• Entwicklung / Anpassung des GUI
• Integration des Gesamtsystems
Die Baustelle: Bootloader
Wir verwenden den handhelds.org Bootloader
Nötige Anpassungen:
• Hardwareinitialisierung (SA1110, SA1111, FPGA, RAM, Flash, Display)
• Gerätespezifische Funktionen in der Bootloader Konsole
• Kundenspezifische Anpassung der Bedien- oberfläche des Bootloaders
Die Baustelle: Kernel
Grundlage: ARM Linux Kernel 2.4.25
Nötige Anpassungen:
• Eigenen Gerätetyp definieren
• Hardwareinitialisierung
• Treiber und proc Interface für den FPGA
• NAND Flash Treiber ...
Die Baustelle: Kernel
Fortsetzung...
• Displayinitialisierung
• SA1111 Treiber anpassen (USB Host, PCMCIA)
• Barcodescannertreiber
• Tastaturtreiber
• Treiber für IR Interface (eigenes Protokoll)
Die Baustelle: Kernel
Schwierigkeiten:
• Zeitkritische Hardware
• Powermanagement
• FPGA: PCMCIA, USB, NAND-Flash...
• IR-Protokoll
Die Baustelle: Distribution
Familiar Linux Distribution
Linux Distribution für embedded Geräte
• Geringer Memory Footprint:• Busybox, Tiny X (X Window System), ...
• Ausgewählte Bibliotheken
• Ausgewählte Tools
• Dennoch: • Umfangreiche Funktionalität und 100% Kompatibilität
• Netzwerk- und Systemtools, grafische Benutzerumgebung
Die Baustelle: GUI
GPE: G Palmtop EnviromentGrafische Benutzeroberfläche basierend auf offenen Standards.• 100% freie Software, GTK+ basiert
• Closed source Software möglich
• Einfache Applikationsentwicklung
• Existierende GTK Software läuft ohne / mit geringen Änderungen
• Einfaches aber sehr funktionales User Interface
• PIM Applikationen, Programm manager, SQL Datenbank, Barcode Scanner Applikation, Control Panel uvm...
• Netzwerktransparenz, Display Migration GPE V2.6
Verwendete Tools
Wofür brauchen wir die Tools?• Bootloader Entwicklung
• Kernel Portierung / Anwendungsportierung
• Distributionserstellung
Verwendete Tools: Bootloader
Compiler:
arm-linux-gcc, Booloader Source-Code
Windows Bootloader:
Programm zum Laden des Linux Kernels aus
Windows CE heraus. Z.B.: Linexec, Haret (für Xscale)
JTAG Tools:
JTAG Tool des OpenWinCE Projektes
Verwendete Tools: Kernel
Dokumentation:
Schaltpläne, Registerdokumentation, Datenblätter
Literatur:
Linux Device Drivers, 2nd Editionby Alessandro Rubini, Jonathan Corbet
Toolchain:
Sammlung von Programmen, Tools und Libraries die zur Entwicklung benötigt werden.
z.B. handhelds.org Toolchain/Skiff Toolchain, OE Toolchain
Verwendete Tools: Distribution
Open Embedded Build enviroment• Metadata repository und Build enviroment für embedded Linux Distributionen
• Enthält Compiler und Laufzeitbibliotheken
• Arbeitet mit Paketbeschreibungen (Metadaten)
• Verwaltet Abhängigkeiten
• Verwaltet beliebige unabhängige Zielplattformen und Build Tools. Nicht auf eine Plattform spezialisiert
Verwendete Tools: Distribution
Open Embedded Build Enviroment
OE Core
Shared classes
Paket Metadaten
Strategie Konfiguration
Unabhängig von Zielplattform
Abhängig von Zielplattform
Vielen Dank für die Aufmerksamkeit.
Haben Sie Fragen?