Home

Syndicate content
more
  • About
  • Training
    • Telecom
    • Hardware
    • Computer Tech. Skills
    • Catalog
  • Consulting
  • Development
  • Worldwide
  • Contact Us
  • Join Us
  • Conferences
  • Blogs
  • Why Logtel for training
  • Lecturers
  • Our classes
  • Customers
  • Choose course category
Choose course category:
  • SOFTWARE ENGINEERING
  • LINUX/UNIX
  • SECURITY
  • DOTNET
  • JAVA
  • INTERNET
  • SMARTPHONES
.

COMPUTER TECH. SKILLS

Linux Kernel Programming for Embedded Systems

Nº
DATE: CALL
PRICE NIS: 4350 + VAT
DURATION: 5 Days
application/pdf iconLinux Kernel Programming for Embedded Systems.pdf

Course Overview:
The GNU / Linux operating system is the Operating System of choice for many embedded and real time developers: the main reasons being that the source code is free, there are no runtime royalties and it is a robust reliable operating system with excellent networking support.
This course focuses on Embedded Linux and Advanced Kernel Programming, including device drivers, and RT topics.

Who should attend?
Embedded and RT programmers developing devices using the Linux kernel and driver developers for internal or external peripherals.

Prerequisities:
- Linux Basics, Linux Introduction or equivalent. Linux Systems Programming or equivalent.
- Knowledge of  C or C++

Course Outline:
1. Kernel Introduction
  • System overview and role of the kernel
  • Supported hardware architectures

2. Kernel Architecture
  • Supervisor mode vs. User mode
  • System Calls
  • Task Scheduling
  • Scheduling priorities, Real-time
  • Kernel Preemption
  • NPTL Threads
  • I/O scheduler

3. Configuring and Building the Linux Kernel
  • Getting the source
  • Structure of source files
  • Configuring the kernel
  • Compiling the kernel

4. Cross-Compiling for Embedded
  • Embedded Tool-chains
  • Cross-compiling for the Target Platform
  • Linux boot process
  • Kernel parameters
  • Bootloaders
  • Root filesystem over NFS

5. Module Programming
  • Module Programming basics
  • Building Kernel modules
  • Lab: “Hello world” module
  • Module utilities
  • Kernel log, printk
  • Module parameters
  • Lab: “Hello world” module with parameters
  • Kernel symbols
  • Device System Calls
  • Working with User Space memory
  • Implementing a /proc reader/writer
  • Lab: Module with /proc interface

6. Kernel Space Considerations
  • Endianess
  • Floating point
  • Execution contexts

7. Synchronicity
  • Sleeping, wait queues
  • Locking (semaphores, mutex, spinlocks)
  • Atomic operations

8. Kernel Memory Management
  • Virtual memory overview
  • Physical vs. Virtual memory, on-demand paging
  • kmalloc /kfree / vmalloc / vfree
  • Allocating pages
  • SLAB/SLUB/SLOB Allocators

9. Interrupts
  • Interrupt Control
  • IRQ Flags
  • Interrupt Handling
  • Top and Bottom Halves
  • SoftIRQs, Work Queues and TaskLets

10. Device Drivers
  • Types of device drivers
  • Device files, major and minor numbers
  • Device numbers allocation
  • Creating device files
  • Character Device Drivers
  • Registering a character device
  • File operations
  • Lab: Implementing a character device
  • An introduction to block device drivers
  • Simple block driver example

11. I/O memory, ports & DMA
  • Using I/O ports
  • Using I/O memory
  • DMA memory constraints
  • Memory address translations

12. Timing
  • Jiffies
  • Timers
  • High-Resolution Timers

13. Networking
  • Linux Networking model
  • The network stack
  • Sk_buff structure & operations
  • Net_device structure
  • Network device registration / unregistration
  • Device initialization
  • Packet transmit path
  • Packet receive path
  • Simple Network device driver example

14. Debugging
  • Kernel Debugging techniques
  • Handling Oops and Panics

15. Summary
Back to the courses page
Courses
Carrier Ethernet
Designing with the Xilinx 7 Series Families
USB 3.0 System Architecture
Object Oriented Analysis and Design
Telecom
Carrier Ethernet
MPLS Basic
ATM and ATM Networking
IP Security
Hardware
Designing with the Xilinx 7 Series Families
Designing for Performance
Partial Reconfiguration Tools & Techniques
Designing with Multi-Gigabit Serial I/O
CTS
USB 3.0 System Architecture
Object Oriented Analysis and Design
Social Networks
Real Time and Embedded Linux Development
  • About
  • Training
  • Consulting
  • Development
  • Site map

Logtel (c) All rights reserved 2010-2011 | www.logtel.com | Developed by: Hagit Bagno | Designed: NotFromHere