Barr Group FacebookBarr Group TwitterBarr Group LinkedInBarr Group Vimeo

Course Overview

Course Length: 
3 Days
CEUs: 
2.0
Format: 
Hands-on/Lecture

Whether you are developing Linux device drivers for unsupported peripherals or writing a board support package (BSP) to port the operating system to custom embedded hardware, there's a steep learning curve. Through a mix of lectures and hands-on programming exercises on real hardware, this course will help you quickly move on to developing your own Linux driver code. Major topics include the Linux driver model and device frameworks, debugging tools and techniques, as well as hardware initialization and interfacing, interrupt support, multithreading, and synchronization.

Syllabus

The following is a summary of the major course topics and should not be considered the section-by-subsection lecture breakdown.

  • Introduction
    • Linux Architectural Overview
    • ARM SoC Overview
    • GNU Toolchain
    • Linux Build System
    • Building and Testing
  • Linux Kernel Architecture
    • Kernel Frameworks
    • ARM Linux Boot Process
    • ARM Linux Machine-Specific Initializations
    • Introduction to Platform Bus Devices
    • Kernel Debugging
  • Loadable Kernel Modules
    • Introduction to Kernel Modules
    • Kernel Module Framework and Lifecycle
    • GNU Makefiles
    • Building an LKM Out-Of-Tree
    • Loading and Testing LKMs Using ADB
  • Linux Drivers
    • Linux Device Model
    • Sysfs Attributes
    • Bus Devices and Frameworks
    • Bus Device Drivers
    • Class Devices and Frameworks
    • File Operations
    • MMUs and Caching
    • Kernel Memory Allocation
    • Passing Data Between Kernel and User-Space
    • Accessing Peripheral Controller Registers
  • Kernel Interrupts And Synchronization
    • Interrupt Handling
    • Kernel Threads
    • Waiting / Sleeping
    • Kernel Workqueues
    • Concurrent Access
    • Atomic Variables
    • Critical Sections

Attendees will complete approximately half a dozen hands-on exercises on an ARM board that they'll be able to keep when the course is over.

Audience

  • Embedded software developers learning to write drivers for Linux (or Android)
  • Embedded software developers responsible for porting Linux to custom hardware

Prerequisites

Attendees should have prior programming experience in the C programming language.

Related Courses

Find out More

To find out more about our upcoming public trainings, go to our Training Calendar.

Contact Us to find out more about this course or to enquire about an on-site training at your company.

Recording Policy

All Barr Group Training Public and On-site courses may not be audiotaped, videotaped or photographed without consent from Barr Group's executive team.  Barr Group reserves the right to record portions or all of a training course for instructional purposes.  As a result, attendees present may also appear on the recording.