The IEEE Boston Section Techsite

The On-line Boston Section IEEE Information Source

Course:  

EL-805: Linux Board Support Package and Device Drivers

Lecturer:

Mike McCullough, Director of Professional Services, Embedded Planet

Date:

Wednesdays, 6 -9PM, May 7, 14, 21 & 28

Location:

Holiday Inn Select, 15 Middlesex Canal Park Road, Woburn, MA

Course Description: An advanced course focused on the design and development of Board Support Packages (BSPs) and Device Drivers for the Linux Operating System (OS). The first part of the course focuses on gaining an understanding of the Linux BSP, highlighting areas of concern for real-time embedded application development using Linux including device driver issues and the BSP certification process. The second part of the course focuses on gaining an understanding of the Linux I/O sub-system, the APIs necessary for each type of device driver as well as advanced device driver issues such as how to deliver device drivers for Linux.

Overview: This course introduces the Embedded Linux BSP and Linux Device Drivers. The course focuses on the development and creation of Linux BSPs and Device Drivers for use in Linux applications.

Course Objectives:

  • To provide an initial understanding of the Linux BSP and practical experience of developing Linux BSPs.

  • To provide an understanding and practical experience of developing Linux device drivers for real-time and embedded systems.

  • To give you the confidence to apply these new concepts to your next Linux project.

Students will learn:

  • Terminology and use of Linux BSPs and Device Drivers

  • Understanding the BSP Layout

  • Development Tools and Debugging

  • Board Initialization

  • File Systems that are available in Linux

  • Understanding the basic Linux I/O APIs

  • Testing, Compliance and Device Driver Issues

Pre-requisites:

  • A working knowledge of C

Who Should Attend:

The course is designed for real-time engineers who are building or modifying their own BSP using customized or new Device Drivers. It is also targeted at experienced developers requiring a refresher course on BSPs and Device Drivers.

Course Materials: Student Handbook

Course Workshop:

The course makes use of Linux target hardware or the Red Hat Linux desktop during the real-time practical exercises. For   on-site courses it may be possible for us to target other hardware on request, or offer the course without target hardware if you are building a custom board.

Course Outline:

Introduction:

Terms

Getting Help

Linux Models

Platforms and Toolsets:

Board Support Packages

Software Development Kits

Linux File Systems:

The Root File System

The Virtual File System

The /proc File System

Native Linux File Systems

Flash File Systems

The Basic Linux I/O System:

init_module()

cleanup_module()

struct file_operations

open() and release

read() and write()

ioctl()

Development Tools and Debugging:

When an Emulator is Necessary

Bootup Debugging

Key BSP Files

Understanding the SDK Layout:

Key SDK Directories

Key SDK Files

GCC Cross_Compile Executables

GCC Standard Executables

Testing and Compliance:

BSP Validation Testing

BSP and SDK Certification Issues

Kernel Modules vs Applications:

The Kernel Symbol Table

Initialization and Shutdown

Automatic and Manual Configuration

Data Transfer from Kernel to User Space:

Kmod and Modularization:

Loading Modules on Demand

Intermodule Communication

Version Control in Modules

Key Device Driver Types:

Char and Block Devices

Network Devices

Virtual Devices

The Full Char API

Advanced Char Driver Functions

The Block Device Driver API

Time Management and Device Drivers

Memory Management for Device Drivers

kmalloc

get_free_page

vmalloc

I/O Ports and I/O Memory

Advanced Char Driver Functions

MMAP and DMA

Advanced Char Driver Functions

The Network Device Driver API

Interrupt Handling

Installing and Controlling Interrupt

Handlers

Implementing a Handler

Bottom-Half Processing and

Tasklets

More Driver APIs

Real-Time Clock (RTC)

Watchdog (WDT)

NVRAM

Error Handling in the Kernel

Access to Peripherals

PCI, PC104 and cPCI

VME

ISA

Lecturer – Mike McCullough is Director of Professional Services for Embedded Planet. 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 Wind River Systems, Lockheed Sanders, Stratus Computer and Apollo Computer. Embedded Planet is a provider of embedded systems hardware, Eclipse-based software development tools, training and consulting services for the embedded systems market.

Decision/Cancel Date for this course is Tuesday, April 30, 2008

Course Fee Schedule:

REGISTRATION RECEIVED BY
April 25, 2008

REGISTRATION RECEIVED AFTER
April 25, 2008

IEEE MEMBERS $390

IEEE MEMBERS $410

NON-MEMBERS $410

NON-MEMBERS $430

On-line Registration and Payment

This course has been cancelled.  If you have any questions or concerns, please contact the IEEE office at 781-245-5405.

Copyright © 2008 IEEE Boston Section. All rights reserved.
Maintained by R M Stelting

Updated Monday April 28, 2008