Kernel Module Programming and Character Drivers in Linux & Setting-Up FriendlyARM mini2440-td35 Board with Character Drivers for LED,Buttons,PWM,Keys.
This Training Module covers Kernel Module Programming aspect of Linux Kernel Space which is baseline for any Device Driver Implementation. It further covers Linux Character Driver Interface and how to write Character Drivers with Examples on mini2440-td35 board.
Duration : 24 Hours
- Introduction to Embedded Linux and it’s components
- Introduction to Linux Kernel Space Programming
- What is Kernel Module ? Understanding Kernel module interface
- How to write kernel module , implement “Hello World” module with Example
- Logging messages in kernel space using printk with Example
- How module is linked to kernel , kernel symbol table ? with Example
- Linux Device Driver Architecture
- Overview of VFS and it’s role in Character Driver
- Device Files with Examples
- Device Number Scheme with Example
- Character Driver Registration
- Various methods need to be implemented in Character Driver
- Passing Data to/from Character Driver to User Space application
- Using Wait Queues for Blocking
- Using Data Structures Facilities provided by Kernel e.g. Linked List.
- Interrupt Handling in Linux
- Interrupt Architecture of ARM and How Linux Handles Interrupts
- Setting-up mini2440 Board
- ARM Cross Compile Toolchain Installation
- Building U-Boot bootloader for min2440.
- Understanding boot methods on mini2440.
- Burning U-Boot Bootloader on NAND Flash
- Compiling Linux-22.214.171.124 Kernel for mini2440
- Setting-up Network Environment, TFTP and NFS Server Installation
- Setting U-Boot Environment on mini2440 for downloading Linux Kernel zImage file
- Setting U-Boot bootargs cmdline to mount root file system via Network on a directory of the Linux Host Machine.
- Extracting root file system and setting proper permission for mounting via NFS.
- Building LED,Buttons,PWM Kernel Modules/Drivers for ARM for mini2440 board
- Installing them dynamically on Linux running on mini2440 Target using insmod
- Testing the Device Driver by using provided “test-apps”
- Modifying Driver to support Additional Functionality