CUSTOMISED
Expert-led training for your team
Dismiss

Embedded Linux Device Drivers training course

Develop Linux Device Drivers For Embedded Systems - Maintain Platform Independence And Cross Development Options

JBI training course London UK

"Our tailored course provided a well rounded introduction and also covered some intermediate level topics that we needed to know. Clive gave us some best practice ideas and tips to take away. Fast paced but the instructor never lost any of the delegates"

Brian Leek, Data Analyst, May 2022

Public Courses

23/09/24 - 5 days
£2500 +VAT
04/11/24 - 5 days
£2500 +VAT
16/12/24 - 5 days
£2500 +VAT

Customised Courses

* Train a team
* Tailor content
* Flex dates
From £1200 / day
EDF logo Capita logo Sky logo NHS logo RBS logo BBC logo CISCO logo
JBI training course London UK

  • Developing for embedded Linux
  • The Linux kernel
  • Kernel modules
  • Device driver basics
  • Kernel debugging
  • Sysfs and proc
  • Wait queues and completions
  • Kernel locking
  • Advanced character driver functions
  • Time and timers
  • Interrupts
  • Accessing hardware
  • Sharing memory

Developing for embedded Linux

  • Getting and configuring a cross toolchain
  • Linux bootloaders: U-Boot

The Linux kernel

  • Where to get the kernel source
  • Board support packages
  • Kernel configuration options
  • Building and loading a kernel

Kernel modules

  • Writing a module and compiling "out of tree"
  • Loading and testing on the target
  • Passing parameters
  • Modules and the GPL license

Device driver basics

  • Types of device driver
  • Different ways for applications to interact with the driver
  • Character drivers
  • Building and testing a simple “misc” character device driver

Kernel debugging

  • Review of printk and the magic sysrq key
  • Interactive debugging using kgdb
  • What to do when the board won't boot

Sysfs and proc

  • Classes of driver: /sys/class
  • Driver attributes
  • Extending the proc file system

Wait queues and completions

  • Waiting for things to happen: wait queues
  • One-shot events: completions

Kernel locking

  • Mutual exclusion using kernel mutexes
  • Spinlocks
  • Atomic operations

Advanced character driver functions

  • Notifying events: poll and fasync
  • Driver specific interfaces: ioctl

Time and timers

  • Getting the system time: high resolution timers
  • Delays and sleeps
  • Kernel timers

Interrupts

  • Installing an interrupt handler
  • Synchronising using using spin_lock_irq
  • Deferred processing using tasklets and work queues

Accessing hardware

  • Memory regions
  • Allocating and freeing memory
  • Overview of device tree and how to extract information from a device tree
  • Mapping in device memory: ioremap
  • DMA buffers: coherent and stream mappings
  • Memory barriers

Sharing memory

  • mmap: sharing device registers
  • mmap: sharing DMA buffers
  • get_user_pages: how to access user memory

 

JBI training course London UK

Software engineers and system architects

5 star

4.8 out of 5 average

"Our tailored course provided a well rounded introduction and also covered some intermediate level topics that we needed to know. Clive gave us some best practice ideas and tips to take away. Fast paced but the instructor never lost any of the delegates"

Brian Leek, Data Analyst, May 2022



“JBI  did a great job of customizing their syllabus to suit our business  needs and also bringing our team up to speed on the current best practices. Our teams varied widely in terms of experience and  the Instructor handled this particularly well - very impressive”

Brian F, Team Lead, RBS, Data Analysis Course, 20 April 2022

 

 

JBI training course London UK
 
Top 20 "Pain Points" for Data Analysts
 

Problem 11 : You have a very complex Excel spreadsheet and you want to reproduce EXACTLY the same spreadsheet in Power BI
Solution: Power BI is not Excel, it works differently and it has different strengths. In order to tackle this issue the best way is going back to the source and try to...

All 20 points are in our latest Newsletter - Delivered directly to your inbox



Embedded devices need to interact with the real world somehow. Maybe using standard interfaces such as i2c, SPI, USB or maybe using low level interfaces such as GPIO, PWM, Analog to Digital and Digital to Analog. In all cases the link between Linux and the hardware is a device driver.

This course shows how to write several different types of device drivers for Linux, with an emphasis on the techniques that are applicable to embedded systems such as platform independence, cross development and efficient use of resources. The lab exercises are cross-compiled and tested on a typical development board, the BeagleBone Black (we can accommodate other hardware at your request).

 

CONTACT
+44 (0)20 8446 7555

[email protected]

SHARE

Corporate Policies     Terms & Conditions
JB International Training Ltd  -  Company number 08458005

Registered address Wohl Enterprise Hub 2B Redbourne Avenue London N3 2BS

POPULAR

Rust training course                                                                          React training course

Threat modelling training course   Python for data analysts training course

Power BI training course                                   Machine Learning training course

Spring Boot Microservices training course              Terraform training course

Kubernetes training course                                                            C++ training course

Power Automate training course                               Clean Code training course