Embedded Linux Device Driver Training

Day(s): 3
Dates/City:

21-23 maj/Göteborg

Price:

17.500 SEK

Goal

You will learn how to develop Linux kernel modules and device drivers for different type of hardware interfaces.

During course many of the Kernel API will be highlighted and the usage of different debug technique will be learned.

Previous knowledge

You know programming and have basic knowledge in the C-programming language, equal to the “C-programming for embedded systems, part I” training.

You should also have some prior experience using Linux/UNIX as a user, and have some experience on how to use development environments and debuggers for Embedded Systems.

Practical exercises / Tools

Approximately half of the time will be on hands-on exercises. They have been designed to highlight the development process for Embedded Linux projects.

Students work in pairs with the exercises with guidance from the trainer.

We use a PC as host for the development environment and connect to an ARM-based target system (BeagleBone). On the target we run Embedded Linux.

Contact at Nohau

Lena Bernhardsson

phone: +46 (0) 40 59 22 09
phone: +47 (0) 92 44 22 09 (no)
lena.bernhardsson@nohau.se

Content

Introduction

  • What is Linux Loadable Kernel Modules?
  • Material and tools used during training.

Overview

  • Software licenses and ways around them
  • Patents
  • Getting the source
  • Configuration and compiling

Basic Device Drivers

  • Linux Loadable Kernel modules framework
  • Loading and managing modules
  • Building and testing drivers

Character Device Drivers

  • Initialization and de-initialization
  • Callback functions
  • User accesses

Kernel and driver debugging

  • Debugging techniques

Memory Accesses

  • Memory regions IO regions
  • Allocating memory

Kernel APIs

  • Concurrent and race conditions
  • Locking
  • Time, Delays and sleeping Interrupts
  • Timers

Hardware Accesses

  • ISA drivers
  • Memory mapped drivers
  • PCI drivers
  • USB drivers
 
Share |