Erster Entwurf des Inhaltes der Wahlfachveranstaltung

Embedded Linux

Hubert Hoegl, 10. Juni 2008, <Hubert.Hoegl@hs-augsburg.de>

Voraussetzungen

  • Einfache bis gute Kenntnisse im Umgang mit Linux (auch Kommandozeile!)
  • Elementare Kenntnisse in (digitaler) Elektronik

Inhalt

  1. Uebersicht

    • Was sind Embedded Systems und wo werden diese eingesetzt?
      • Konsumgueter, Automatisierung, Autoindustrie
    • Was ist GNU/Linux? (-> siehe mein WPF "Open-Source Software")
      • Bedeutung der GPL Lizenz
      • Open-Source
      • Entwicklungsmodell
    • Was muss minimal an Hardware vorhanden sein, damit Linux laeuft?
      • Prozessor 32-Bit ab 25 MHz, mit MMU
      • RAM Speicher (SDRAM) ab 4-8 MByte
      • ROM Speicher (Flash) ab 4-8 MByte
    • Aufbau der Entwicklungsumgebung
      • Host, Cross-Compiler, Target, Konsole, Netzwerk
    • Ein paar echte Geraete
  2. Linux Uebersicht

    • Kernel
    • Bootablauf
    • Initialisierung
    • Geraetetreiber
    • Dienste (http, inet, ftp, telnet, ssh, rpc, "middleware")
  3. Hardware

    • Prozessor (ARM, AVR32, PowerPC, x86, FPGA)

    • Speicher
      • SDRAM
      • Flash (NOR, NAND)
      • Flash Speicherkarten (MMC, SD)
      • EEPROM
    • Schnittstellen
      • I/O
      • UART, RS-232
      • SPI
      • I2C
      • USB Device
      • USB Host
      • Ethernet
      • Display
      • CAN
    • Displays (LCD, TFT)
      • alphanumerisch
      • grafisch
    • Beispielhafte Schnittstellen von einigen Sensoren

  1. Bootloader - U-Boot

  2. Geraetetreiber

  3. Filesysteme - ext3 - JFFS2 - MTD

  4. Entwicklungsumgebung - GNU Werkzeuge (gcc, binutils) - Editoren - Debugger gdb

  5. Debuggen - KGDB - JTAG - OpenOCD - BDI2000

  6. On-Chip Debugger (OpenOCD) - Flashen von Boards - Debuggen eine Treibers

  7. Linux und Echtzeit - "weiche" und "harte" Echtzeit - Interrupt Latenzzeit - RTAI - Real-Time Kernel Patch

  8. Reduktion der Leistungsaufnahme - Stromversorgung (Netzteil, Batterie, Akku, Solar) - Abschaetzung der kompletten Stromaufnahme - Techniken zur Reduzierung

    • Im Prozessor
    • Auf dem Board
    • Peripherie
  9. Praktische Anwendungen

    Im RT Labor sind mehrere einsatzbereite Embedded Linux Boards, auf denen alle Aspekte von Linux demonstriert und untersucht werden koennen.

    • 2 x Portux 920T mit AT91RM9200

      www.taskit.de

    • 1 x Cogent CS337 mit AT91RM9200

      www.cogcomp.com

    • 1 x Mechatronic Brick mb9200 mit AT91RM9200

      www.mechatronicbrick.dk

    • 1 x AMCC "Taihu" Board mit PowerPC 405EP

      www.amcc.com

    • 2 x Kurz "Future Unit" mit HMS30C7202 (ARM720)

      www.kurz-elektronik.de

    • 2 x Embedded Projects "Grasshopper" AVR32 Board

      www.embedded-projects.de

    • 1 x Phytec LPC3180 Kit

      www.phytec.com

    • und andere

Literatur

  • Christopher Hallinan, Embedded Linux Primer. A Real-World Approach. Prentice Hall, 2007.
  • Karim Yaghmour, Building Embedded Linux Systems, O'Reilly 2003.
  • Juergen Quade, Eva-Maria Kunst, Linux-Treiber entwickeln. 2. Auflage, dpunkt.verlag 2006.
  • Jonathan Corbet, Alessandro Rubini, and Greg Kroah-Hartman, Linux Device Drivers, 3rd edition, freier Download unter http://lwn.net/Kernel/LDD3/.
  • Sreekrishnan Venkateswaran, Essential Linux Device Drivers, Prentice Hall, 2008.
  • Eric Raymond, The Art of Unix Programming, Addison-Wesley 2003. Freier Inhalt (Creative Commons): http://www.faqs.org/docs/artu/