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)
bullet The Shell
  • Redirection and Pipes

  • Keyboard shortcuts

  • Scripting

bullet Eclipse
  • Creating and building C projects
  • Our first program
  • 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 Device drivers -- moving hardware access to kernel space
  • User space view of I/O
  • Miscellaneous devices
bullet Network programming
  • Sockets
  • Client/server paradigm
  • Networked thermostat
  • Multiple monitor threads
  • Embedded web server
bullet Using the LCD display
  • Console and framebuffer drivers

Components and tools

bullet The Linux kernel kernel
  • The kernel source tree
  • Configuring and building the kernel
  • Kernel modules
  • Booting via TFTP
bullet Busybox
  • Configuring and building Busybox
bullet Bootloader -- u-boot
  • Role of the bootloader
  • The boot process
  • U-boot features
  • Configuring and building u-boot
bullet Open Embedded (OE)
  • What is it and why OE?
  • Elements of OE
  • Setting up OE
bullet System initialization -- getting ready to ship
  • The initialization process -- inittab
  • Minimizing boot time
  • Loading images to flash -- MTD partitions

Wrap-up

bullet Review
bullet Where to go from here

 

 

[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.

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, 2011 Douglas Abbott