Serving Eastern Massachusetts
| Course Name: | C11 - Embedded Linux Board Support Packages and Device Drivers |
| Time & Date: | 6:00 - 9:00 PM, Tuesdays, May 1, 8, 15, 22 |
| Location: | Holiday Inn Select Hotel, 15 Middlesex Canal Park Road, Woburn, MA |
| Speaker: | Mike McCullough, CEO, RTETC |
This 4-day technical training course provides advanced training in the development of Embedded Linux Board Support Packages (BSPs), Device Drivers and Distributions. The first part of the course focuses on BSP and Software Development Kit (SDK) development in an Embedded Linux context with a focus on application performance measurement and improvement. The latter part of the course covers Embedded Linux Device Driver development including key device driver decisions and deployment considerations for Embedded Linux BSPs.
The course is designed for real-time engineers who are developing Embedded Linux BSPs and Device Drivers for Embedded Linux distributions. It is also targeted at experienced developers requiring a refresher course on Linux BSP and Device Driver development.
Linux and the GPL
Building the Kernel Source Code
Embedded Linux Kernels
BSPs and SDKs
Linux References (Books and Online)
BSP Requirements
U-Boot and Bootloader Development
Basic BSP Development
Files and Filesystem Support
The I/O Subsystem: Talking to Hardware
Memory Management and Paging
Error Handling in Embedded Linux BSPs
Timing and Timers
Interrupt Handling in BSPs
BSP Deployment Issues and Practices
The 3 Pieces of an SDK
Embedded Linux Distributions
The GNU Compiler Collection (GCC)
Other Embedded Linux Development Tools
Library Support
Glibc and Alternatives
SDK Deployment and Support
GDB, GDB Server and the GDB Server Debugger
Other Debug Tools
An Abatron Board Bring-Up Example
An Eclipse Remote Debug Example
Advanced Debug with printk, syslogd and LTTng
System-Level Debug Tools
The /proc Filesystem
Advanced Logging Methods
KGDB and KDB
Crash Dumps
Config Methods
Config Syntax
Adding Code to the Linux Kernel
The Linux Boot Process
NFS and RAMdisk Booting
Root and Flash File System Development
Building the RAMdisk
Busybox Development
Kernel Debug and Kernel Probes
Kexec and Kdump
The Linux Test Project (LTP)
Performance Tuning Embedded Linux BSPs
User Mode Linux and Virtualization
Common Considerations
Uncommon Considerations
BootLoader Optimizations
Boot Time Measurements
Effective Memory and Flash Usage
Filesystem Performance Issues
Some Ideas on Performance Measurement
The fops struct and Char Drivers
The inode and dentry structs
Major and Minor Numbers
Embedding Channel Information
Deferring Work
The /proc Filesystem
Configuring the Device Driver
Modularization Revisited
An Object-Oriented Approach
Platform Devices and Drivers
Subsystem Registration
The Probe and Init Functions
The Show and Store Functions
The /sys Filesystem
Configuring the New Device Driver
The Flattened Device Tree (FDT)
openBoot and its Effect on Embedded Linux
The Device Tree Script (dts) File
The Device Tree Compiler (dtc)
The Device Tree Blob (dtb) File
Building a dtb File
Other fops Functions
The Need for Ioctl
The SIM Device Driver
Initialization
Open and Close
Read and Write
The /proc Driver Interface
MMAP Support
Serial Drivers
The RTC Subsystem
Watchdogs
I2C & SPI
Block Devices
PCI
USB
VME
Video
Sound
What’s Missing?
What is an MTD?
NAND vs NOR Flash Interfaces
The Common Flash Interface (CFI)
Driver and User Modules
Flash Filesystems
Accessing I/O Regions
Accessing Memory Regions
User Mode SCSI, USB and I2C
UIO
PCIe
GigE
iSCSI
Infiniband
FibreChannel
Serial RapidIO
kdb, kgdb and JTAG
Kernel Probes
Kexec and Kdump
Kernel Profiling
User Mode Linux and Kernel Hacking
Mike McCullough is President and CEO of RTETC, LLC. Mike has a BS in Computer Engineering and an MS in Systems Engineering from Boston University. A 20-year electronics veteran, he has held various positions at Tilera, Embedded Planet, Wind River Systems, Lockheed Sanders, Stratus Computer and Apollo Computer. RTETC, LLC is a provider of Eclipse-based software development tools, training and consulting services for the embedded systems market.
Payment received by April 17: IEEE Members $390
Payment received by April 17: Non-members $410
Payment received after April 17: IEEE Members $410
Payment received after April 17: Non-members $435