Embedded Linux Jumpstart
Newly revised for 2009 !
|
|
|
|
|
|
| |

Course Highlights:
Embedded Linux is all
the rage these days, and for good reasons: it’s powerful, portable, and Free.
That makes Linux the right choice for many kinds of embedded systems, but it
doesn’t make Linux easy to adapt for use in your next embedded design.
Embedded Linux Jumpstarttm to the rescue! This
multi-day workshop goes over the nuts and volts of getting Linux running in an
embedded system. Soak up useful and relevant information on how to port and use
embedded Linux on embedded hardware, then try it yourself on hardware to make the training even more practical.
New! The lab exercises for this class now incorporate hardware for controlling a custom-designed N-scale model train layout. You apply what you are learning as you learn it, on a training platform that looks more like your own hardware than anything else currently available anywhere in an instructional setting.
You won’t find an embedded Linux course of this depth and breadth anywhere
else. Bill Gatliff is a seasoned embedded developer, instructor and author on a
variety of important embedded Linux subjects. As a result, each course
presentation and lab exercise is concise, enlightening, and filled with
immediately useful information that you will put to work on your own embedded
projects as soon as you get home.
New! The lab exercises for this class now incorporate hardware for controlling a custom-designed N-scale model train layout. You apply what you are learning as you learn it, on a training platform that looks more like your own hardware than anything else currently available anywhere in an instructional setting.
You won’t find an embedded Linux course of this depth and breadth anywhere
else. Bill Gatliff is a seasoned embedded developer, instructor and author on a
variety of important embedded Linux subjects. As a result, each course
presentation and lab exercise is concise, enlightening, and filled with
immediately useful information that you will put to work on your own embedded
projects as soon as you get home.Hardware
Embedded Linux Jumpstart uses Cogent CSB6xx
single-board computers. The Cogent CSB637 is an AT91RM9200-powered system,
the CSB625 uses a PXA255. Both boards offer 64 MB SDRAM, Ethernet, USB, Compact
Flash, SD/MMC, GPIO and VGA out.
Other single board computers are available by special request. Students are also encouraged to bring their own
hardware, to use with lab exercises as time permits.
Who Should Attend:
This advanced workshop is ideal for embedded developers who are evaluating or
using Linux in an embedded application. The course materials presume familiarity
with the C programming language, and an understanding of the basics of operating
system and embedded system operation.
Pre-requisite:
Prior experience with the GNU toolchain,
or training via Embedded GNU Jumpstart is helpful but not required. Prior Linux
experience in non-embedded environments is encouraged, but not required.
Each student must provide their own laptop computer. The computer must have
either a recent Linux distribution (RHEL/Fedora, Debian, Mandrake, etc.), Mac OS
X, or a Win32 operating system (WinNT or Win2000 only; required for stable
operation with Cygwin) installed before class begins. Course activities will
require one available DB9 serial port, one 10/100T ethernet port, approximately
600MB of free disk space, and a Pentium-III/400MHz/128MB performance level or
better. Students are strongly encouraged to bring their OS installation CDs to
class.
Why do I have to bring my own computer?
Put simply, how else are you going to take your new GNU toolchain, embedded
Linux kernel, and other course materials home with you at the end of class?
This course offers a unique combination of intensive, embedded Linux training
and take-home hardware that you won’t find anywhere else. The goal is to for the
student to be a proficient embedded Linux developer and user in one week, and to
carry that knowledge back home after class is over. Bringing and using your own
computer is the best way to meet that objective.
Course Outline:
Here is a recent table of contents from the course materials.
Free and Open Source Licenses
- Free vs. Open Source, and what the differences mean
- Overviews of the GPL, LGPL, BSD and other popular licenses
- How license terms affect application design
Userspace I/O
- Controlling hardware from user applications
- Performance and architecture considerations
The PWM API
- The user interface
- Implementing a PWM device driver
POSIX.1b Real-Time API
- Prioritizing applications
- Getting and measuring real-time performance
The GPIO API
- The user interface
- Implementing and using a GPIO device
Kernel Modules
- A basic model
- Kernel parameters and information
- Demand loading, locking
Interrupts
- Handling interrupts in kernel space
- Interacting with user applications
Device Interfaces
- Miscdev
- Blocking and non-blocking I/O techniques
Kernel Concurrency Facilities
- Spinlocks, mutexes
- Completions, kernel threads
Pthreads Programming
- Introduction to multithreaded programming
- Real-time considerations
Networking
- Adding a browser interface to your embedded application
- Coordinating between CGI scripts and applications
- Security considerations
Additional topics include:
Building an Embedded Linux System
- ... from scratch
- Kernel configuration and compilation
- Setting up a runtime environment
Adapting a Linux Kernel to Your Platform
- The bootloader startup process
- The kernel startup process
- Enabling and disabling kernel features
Linux Kernel Debugging Techniques
- Debugging using JTAG adapters
- Debugging via kdb
- Deciphering OOPS messages
|