Device Drivers For ARM9

Linux is a 32-bit multitasking and multimedia operating system that enables applications to access the devices on a system to perform specific functions. It supports a wide range of software from TEX to the C/C++ compiler and TCP/IP. The Linux system provides a complete Unix programming environment which includes standard libraries, programming tools, compilers and debuggers. You can understand the terms like cross platform, target hardware and know how to rebuild Linux to target hardware. We offer training course for students as well as professionals who want to learn about Linux, porting of Linux on ARM9, device driver development, system programming and ARM9 and kernel configuration.

Course Code : ddARM9prog

Course Duration : 4 weeks

Course objectives:

The primary objectives of this course include:

  • Learn about different types of operating systems
  • Understanding of kernel level programming of Linux operating system
  • Know about the development of device drivers
  • Study of ARM9 & Kernel configuration and compilation for ARM9
  • Describe the porting of Linux kernel and Root file system to ARM9 board

Delegates will learn:

At the end of this training course, you will be able to:

  • Gain extensive knowledge on types of operating systems
  • Get familiar with the functions of Linux operating system
  • Learn writing of device driver programming in Linux
  • Understand ARM architecture
  • Understand how to configure, build, install and boot from a kernel

Course Contents

LINUX Basics

Introduction to linux operating system

  • operating system services
  • why linux

Different types operating systems

  • Monolithic
  • Micro etc

Basic linux user commands.
Linux root file system structure.
Introduction to GNU Tool chain

  • GCC compiler
  • Make file
  • GDB

Introduction to Device Drivers – Module Programming

  • The role of the device driver
  • Classification of Devices and Modules
  • Building and running Modules
  • Hello world Module
  • Process context, interrupt context, Kernel timers
  • The Linux device model (devices, udev,sysfs,procfs)
  • Character Driver basics

Writing Device Driver Programming in Linux

  • Open, Read, Write and Close System Calls
  • Major and Minor Numbers
  • Charater Device Data structures
  • Charater Device Registration
  • Writing Simple Charater Device Driver
  • Debugging by Printing, Concurrency and Race Conditions (Semaphores, Mutexes, Completions, Spinlocks)
  • Advance char device operations (ioctl), Kernel Timer
  • I/O Ports and I/O Memory – Writing Parallel port driver Interfacing With LED, Seven Segment Display.
  • Interrupt Handling With Parallel Port
  • UART Driver

Study of ARM9 & Kernel Configuration and Compilation for ARM9

  • Difference between microcontroller and processor, Difference between native compiler and cross compiler,
  • RISC vs CISC,Harvard and vonueman arch
  • ARM archetecture
  • Requirements for Building and using the kernel, Retrieving the Kernel Source
  • Configuring and Building, Installing and Booting from a Kernel
  • Upgrading a kernel, Customizing a Kernel, Boot loader – Grub Loader, U-Boot .

Porting Linux kernel and Root file system to the ARM9 board

  • Embedded Storage – Sample MTD Driver
  • Operating Systems Porting Layer (Boot Loader, Kernel Image, Root File System)
  • Angstrom Operating system porting on ARM 9 .

Implementing Device driver application program related to the Driver

  • Interaction between the User and Kernel Level With System calls
  • Explain Device driver application flowchart
  • Exaplain kernel Device driver and user device driver program

The Linux training offered by our expert trainers will help you on your journey from a beginner to a Linux professional in no time.