EMB530: Device Drivers with MontaVista Linux


This is a four-day hands-on programming course on writing device drivers for embedded systems using MontaVista Linux. This instructor-led course provides the skills needed to successfully develop, test and integrate kernel modules and device drivers as appropriate to embedded Linux products.


Students should be professional software developers building embedded systems using MontaVista Linux.


Students are expected to be proficient with MontaVista Linux as well as the C programming language. (The EMB510 course can provide the necessary proficiency with MontaVista Linux.)

  • Write and execute a kernel module including a /proc handler
  • Create and test a Linux device driver


This course prepares developers for creating device drivers with MontaVista Linux.

Class begins with a brief review of the development environment and MontaVista Linux. Dynamic modules, the /proc file system, and kernel-state execution are presented next. Linux services available in these areas are described. Memory mapping, allocation and user-space access are described and their associated services presented along with descriptions of when to apply the various techniques.

Device drivers and interrupt handling are presented in detail. System and device initializations, the characteristics of different bus hardware and the techniques and features of Linux that must be applied are covered. Driver loading and installation, control of processes and threads, and typical driver operations receive a careful examination.

In each section, hands-on exercises supplement the lecture materials with practical challenges modeled on actual development experience. Successful students will write and test a Linux device driver on live hardware during the course.

Course Cost: