Sei sulla pagina 1di 3

KEN-PA-ELDD

Embedded Linux and Device Driver Programming – Advanced


4 days

Introduction
Specific Architectures are used in this section of Embedded Linux Course towards using the Hardware
architecture and programming embedded controller boards.

Device drivers are written by programmers with intimate knowledge of the hardware device – its
architecture and modes of operation. There is a bewildering array of devices and more are added each
month, some of them even exotic.

Writing device drivers for Linux requires both knowledge of the hardware and the kernel. This course
aims to provide participants with detailed knowledge of the structure of the major Linux devices:
character, terminal, block and network. It presents hands-on training for writing and customizing
device drivers for an embedded system. Kernel modules and kernel threads are also described. There
is also a special topics section to provide the linkage to optimization, efficiency, robustness and
economy considerations within the context of an embedded system.

Audience
• Graduates who wants to know how to use Linux for their Embedded projects
• Electronics graduate and Computer Science graduates who wish to learn basics of Embedded
Linux and Device Driver programming
• The pre-requisite of the Advanced course is the Basic Module.
• Who wants to have hands on session on Embedded Linux and upgrading their embedded
systems knowledge.

At Course Completion
After completing this training, you will be able to:

• Write Linux device drivers for an embedded system.


• Understand the interaction between device drivers and the kernel.
• Customise serial, block and network drivers.
• Compile, link and debug device driver programs – including kernel modules.
• Configure and install device drivers into the Linux kernel.
• Understand the issues involved in device driver strategies for embedded Linux
• Programming ARM7 Embedded Board and Understanding Driver
• Embedded Xscale initialization using linux and running Xserver.

Pre-requisite
• Embedded Linux Basic Knowledge
• Some understanding of Operating Systems Fundamental
• Redhat Linux Usage and knowledge
• Fresh Electronics or Computer Science graduates with interest in Embedded system concept.
Day 1

Device Driver Fundamentals


Role of device drivers
Mechanism vs policy
Characteristics of device drivers
Device control
Linux modules
Device classes

Development Environment
Development tools - Red Hat Linux
Target board setup - ARM7 Board and SARM PDA
Debugging facilities
Use Hyper Terminal or TTY in the Host Environment - Setting up Console

• Laboratory Assignment 1 – Setting up the development environment and the ARM7 target
board. Linux kernel experiments.

Day 2

Kernel Modules
What are kernel modules?
Kernel space
Concurrency in the kernel
Building a kernel module
Installing and removing modules

Device Driver Structure


Entry point functions
Data structures
Cascaded devices
Buffering and caching
Driver system call
Writing a device driver
• Laboratory Assignment 2a – Building kernel modules
• Laboratory Assignment 2b
• Build Up Programming Environment for ARM7
• How to Load the Demo Program for Execution for ARM7
• How to use GPIO
• Testing LCM and Key PAD - Character Devices

Day 3 Character Devices


Device driver basics
Character devices: console, modem
Device numbers and IDs
Driver installation and removal
Linkage with file operations
Device file system
• Laboratory Assignment 3 – Programming a Character Device

Day 4 Block Devices


Block device concepts
Buffer and cache considerations
Request routine
Registering block devices

• Laboratory Assignment 4 – Simple Echo Server, Flash Programming


• Advanced Lab: Running Linux on a XSCALE embedded board

Interrupt Handling
Interrupt handling and control
Interrupt handler
Autodetection: PCI cards, boards
Probing : find out about interrupts
Implementing a handler
Tasklets
Interrupt sharing: Shared handler
• Advanced Lab : Running XServer on an Embedded Xscale Board

Potrebbero piacerti anche