IEEE Boston Section Tech Site IEEE Logo

Serving Eastern Massachusetts

Course Description

Course Name: Advanced Embedded Linux
Course Short Name: Advanced Linux
Time & Date: 6 - 9 PM; Thursdays, April 8, 15, 22, 29
Location: Holiday Inn Select Hotel, 15 Middlesex Canal Park Rd, Woburn, MA
Speaker: Mike McCullough, President and CEO of RTETC, LLC.

Course Summary:

This 4-day technical training course provides advanced training in the Linux Operating System and the development of Embedded Linux Board Support Packages (BSPs), Device Drivers and Distributions. The first part of the course focuses on advanced applications development in an Embedded Linux context with a focus on application performance measurement and improvement. The latter part of the course covers Linux BSP and Device Driver development including detailed Memory Management approaches for embedded systems and deployment considerations for embedded Linux applications software.

Who Should Attend

The course is designed for real-time engineers who are developing advanced networked Linux applications, 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.

Course Objectives

Outline

Course Schedule Day 1

Course Schedule Day 2

Deploying Embedded Linux Applications

The Root Filesystem

The Linux Command Line

Advanced U-Boot Operations

Modularization

Inter-Module Communication

Shared Object Libraries

Embedding on a Target Board

Improving CPU Performance

Run Queue Statistics

Context Switches and Interrupts

CPU Utilization

Linux Performance Tools for CPU

Improving System Memory Performance

Memory Performance Statistics

Linux Performance Tools for Memory

Process-Specific CPU Performance Tools

Process-Specific Memory Performance

Tools

Improving I/O Performance

Performance Tool Assistance

Recording Commands and Performance

Tools That Help

Finding Performance Problems

Application and System Optimization

CPU Usage Optimization

Memory Usage Optimization

Disk I/O Usage Optimization

Types of Performance Problems

Measuring Embedded Linux Performance

Common Considerations

Uncommon Considerations

BootLoader Optimizations

Boot Time Measurements

Effective Memory and Flash Usage

Some Ideas on Performance Measurement

The Future of Linux Performance Tools

LTTng

Current Holes and Current Trends

Course Schedule Day 3

Configuring Embedded Linux

Config Methods

Config Syntax

Adding Code to the Linux Kernel

Booting Embedded Linux

The Linux Boot Process

NFS and RAMdisk Booting

Root and Flash File System Development

Building the RAMdisk

Embedded Linux BSP Development Basics

BSP Development

U-Boot Development

BSP Deployment

Testing and Debug of Embedded Linux BSPs

Kernel Debug and Kernel Probes

Kexec and Kdump

The Linux Test Project (LTP)

Performance Tuning Embedded Linux BSPs

User Mode Linux and Virtualization

Course Schedule Day 4

The Original Device Driver Model

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

The New Device Driver Model

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

Comparing the Two Driver Models

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

Hybrid Device Drivers

Other fops Functions

The Need for Ioctl

Linux Device Driver Subsystems

Serial Drivers

The RTC Subsystem

Watchdogs

I2C & SPI

Block Devices

PCI

USB

VME

Video

Sound

Wireless

CAN

Drivers in User Space

Accessing I/O Regions

Accessing Memory Regions

User Mode SCSI, USB and I2C

UIO

High-Speed Interconnects

PCIe

GigE

iSCSI

Infiniband

FibreChannel

Serial RapidIO

Debugging Device Drivers

kdb, kgdb and JTAG

Kernel Probes

Kexec and Kdump

Kernel Profiling

User Mode Linux and Kernel Hacking

Performance Tuning Device Drivers

Some Final Recommendations

Lecturer

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

Decision (Run/Cancel) Date for this Courses is Monday, March 29, 2010

FEES

Payment received by March 25: IEEE Members $390

Payment received by March 25: Non-members $410

Payment received after March 25: IEEE Members $410

Payment received after March 25: Non-members $435

On-line registration to this course is closed. You may register from 5:30PM - 6:00PM, Thursday, April 8, 2010 at the Holiday Inn Select, 15 Middlesex Canal Park Road, Woburn, MA or by calling the IEEE Boston Section office at 781-245-5405.