Important information

This site uses cookies to store information on your computer. By continuing to use our site, you consent to our cookies.

ARM websites use two types of cookie: (1) those that enable the site to function and perform as required; and (2) analytical cookies which anonymously track visitors only while using the site. If you are not happy with this use of these cookies please review our Privacy Policy to learn how they can be disabled. By disabling cookies some features of the site will not work.

Developing Linux Device Drivers by Feabhas Ltd

Training

Product Description

 

Implementing Linux on custom hardware will, in most cases, require you to write device drivers. This course demonstrates how to write code that runs within the Linux kernel to handle hardware events and present a standard interface to applications.

This course presents a detailed view of Linux device drivers with an emphasis on topics specific to embedded environments: cross compilation; remote debugging and real-time. It uses a combination of theory and practice, using a development board with an ARM core. No prior knowledge of Linux device drivers is assumed, making it ideal for engineers porting from code from an RTOS to Linux.

Course Objectives:

  • Demonstrate how to write drivers for custom hardware
  • Provide insight into porting drivers from an RTOS to Linux, e.g. the separation between application and kernel code
  • Describe the development tools needed, including debug strategies
  • Examine the way drivers can affect real-time behaviour and best practice to avoid scheduling latencies


Delegates Will Learn:

  • How to write kernel modules
  • How to create robust drivers using mutexes and spinlocks to serialise access to shared data
  • How to debug kernel code running on a remote embedded target
  • How to handle interrupts, including deferred processing using tasklets and work queues
  • How to access hardware resources, including devices connected via PCI
  • The details of memory management and memory mapping techniques


Pre-requisites:

  • Good ‘C’ programming skills
  • General knowledge of an RTOS or embedded operating systems
  • Knowledge of Linux or Unix is useful, but not essential


Who Should Attend:

Software engineers who are developing applications for embedded or real-time Linux. Engineers wishing to assess the suitability of Linux for their next application.

Duration: Five days

Related Courses:

Laboratory Exercises:

During the lab sessions, students will write several fully-function device drivers, including a fifo, a RAM disk and a loop-back network interface. All exercises are developed and cross-compiled on a PC running Linux and downloaded to an ARM9 development board as the target (the Digi ConnectCore Wi-9C), emphasising the issues encountered when writing for embedded platforms.

Developing Linux Device Drivers

Market Segment(s)

  • General Purpose Products/Services

Target Platform(s)

  • Linux
  • OpenGL ES

ARM Processor(s)

  • ARM926EJ-S
  • Cortex-A9
 
ARM Connected