Hands-on Embedded Linux


Introduction
bullet What is Open Source and why do you care?
bullet Linux features and characteristics
  • Protected memory
  • Processes
    • Foreground vs. background
  • Users and Groups
  • Root user
  • Graphical desktop environment—KDE
bullet Filesystems
  • Root filesystem
  • Privileges
  • Links
  • “Mounting” filesystems
  • Filesystem Hierarchy Standard (FHS)
    • Special places
bullet Development Environment
  • Install software
  • Configure the host
  • Configure the target
    • Flash filesystems
  • Network Filesystem (NFS)
  • Our first program
bullet Eclipse
  • Creating and building C projects
  • Debugging with Eclipse

Embedded Application Programming

bullet Accessing hardware from User Space
  • Data acquisition example
bullet A simple simulation environment
  • Thermostat example
bullet Multi-processing vs. multi-threading—Pthreads
  • Threads
  • Mutexes
  • Adding settable parameters to thermostat
bullet Network programming
  • Sockets
  • Client/server paradigm
  • Networked thermostat
  • Multiple monitor threads
  • Embedded web server
bullet Configuring and building the kernel
  • Booting via TFTP
  • Root filesystem over NFS
bullet Busybox
bullet Bootloader

 Linux and Real-time

bullet Why isn’t Linux real-time?
  • How bad is it?
bullet Possible solutions
  • Pre-emption improvement
  • Interrupt abstraction
bullet Introducing RTLinux
bullet Kernel modules
bullet Inter-task communication
  • FIFOs
  • Shared memory
bullet RTLinux in Kernel Space

 

[Updated!] Linux, the free, Open Source operating system, is rapidly emerging as the leading platform for embedded devices using high-performance, 32-bit processors.  And as the cost of computing continues to plummet, these processors are showing up just about everywhere.  The ARM architecture, featuring a relatively high performance-to-power ratio, has become popular in a wide range of consumer and industrial electronic products including cell phones, set-top boxes and robots to name just a few.

This 3-day seminar focuses on how Linux has been adapted for use in embedded environments, with specific emphasis on the ARM architecture. Through extensive hands-on lab work, you learn how to install a cross-development environment, build a compact version of Linux for an embedded device, install the build on the target system, and test its operation. You’ll create and test programs that exercise I/O as well as networking applications and also explore real-time extensions.

Each participant receives a CD with a complete Linux kernel distribution, including source code, and ARM cross-development toolkit, which provides an ideal platform for embedding Linux into a wide range of consumer and industrial devices.

Participants will have available for use during the class an ARM-based target single-board computer (SBC) kit. This is the same SBC supplied with the Embedded Linux Learning Kit and is offered at a substantial discount to class participants.

Back to Courses Page

 

Web Design by cactuslady@cactusweb.net - 2006
Copyright © 2000, 2006 Douglas Abbott