Shopping Cart :Check Out
EMAIL : contact@embeddedact.com

Linux for Embedded Systems Development

Prerequisites:

•Good ‘C’ programming skills
• General knowledge of an RTOS or embedded operating systems
• Knowledge of Linux or Unix will be useful.,& able to use basic Linux commands

Hours:

• 25-30 Hours ( MON-FRI 15hrs SAT-SUN 12hrs)

Instruction Required:

• XP Professional ,200GB space, VMWARE, Linux Ubuntu image

Program Outline:

This course is meant for Linux Programrs and Administrator who wants to specialize their skills towards embedded programming. Basic understanding of C programming and Linux programming is required towards this program however not a must. This course offers conceptual information of Real Time operating systems and embedded Linux systems. The development will be carried out on Red Hat based machines.

Course Contents

Introduction to Linux Embedded Systems Overview Linux Operating System Details
Overview of Linux Embedded Systems Overview Process Model
Linux development tools and software Process and Application environement in embedded systmes Kernel Overview
Real Time Systems aspects of Linux Memory Management in embedded Systems Real time scheduling
Hard and Soft Real time Linux I/O in embedded environment Hard real time issues with Linux
Latency Software development environment Linux Boot process
Low latency patches to the kernel Real time, hard real time distinction Interrupt processing in Linux/td>
Real time Scheduling Policies Device Drivers
Soft & Hard Real Time requirements Kernel Modules
Embedded Linux System Details Real Time Linux Modules in the kernel
Boot sequence Real Time Overview Modules defined
System loading, Lilo, grub Linux as a real time OS Device Drivers written as modules
Root file System Linux suitablity for real time Processes and Threads
Binaries required for system operation Linux Real Time Options for vendors Processes and threads
Shared and static Libraries overview Types of Real Time Systems Process descriptor structure in the kernel
Writing applications in user space Discuss scheduler schemes for Non RealTime, and soft/Hard Real Time Process states
Linux kernel timers and timer management Differences between 2.4 and 2.6 kernels Process Scheduling
Kernel timers Linux 2.6 Scheduler Process Creation
The tick rate Model Thread basics
Jiffies Preemption Thread Creation and termination
Timers in interrupt handlers Ready Queues Thread Scheduling
Schedluing Policy Thread pitfalls and solution
Thread debugging
System Calls More about Linux file sytems Preemption
System call defined Types of file system:Disk, Preemptible Kernels
System calls and API's RAM, Flash, Network Preemptibility and latency
System call table, interrupts and handlers Building a Root File System Race Conditions
Unistd.h and entry.S files Comparing preemptible solutions
Implementing a system call Other preemptibility features and issues
Introduction to Device Drivers Character Device Drivers Block Device Drivers
Role of a device driver Registering a character device driver Handling requests
Splitting the kernel File Operations buffers and buffer head
Classes of device drivers the file structure Ram Disk Driver
Kernel architecture and Model Blocking, non-blocking and asynchronous operations
Structure of a character device driver
Network Drivers Serial Interface Device Drivers Interrupts & Timers
The net_device structure in detail Working of serial devices Hardware and Interrupt Handling
Packet transmission system calls related to serial device drivers Top halves vs bottom halves
Packet reception termios structure registering a interrupt handler
The Interrupt handler csetospeed functions freeing a interrupt handler
Simulating a network device csetispeed functions
options.cflags function
Implementation and testing of serial interface driver
Development Tools for Linux Running Linux on Target
Compiler and Linker Applying patches for the kernel source
Cross Development Compiling the kernel with the target support
Building a cross compiler Kernel command line
Setting up the environment for Embedded Development Setting up the target
Debugger Downloading the kernel and root file system on the target
GDB,DDD Booting the kernel
Kernel Debugger
Labs: Application debugging on the target