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

Real Time and Embedded Linux Development

Nº 3309
DATE: CALL
PRICE NIS: 3480 + VAT
DURATION: 4 Days
application/pdf icon3309 Real Time and Embedded Linux Development.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 real time and embedded Linux and Kernel programming, including device drivers.


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. Introduction

  • Linux overview
  • Linux and embedded
  • Linux general architecture
  • Linux requirements

2. Linux Kernel Key Features

  • Supervisor mode v User mode
  • Processes & threads model, NPTL
  • Task Scheduler
  • Scheduling priorities, Real Time
  • Kernel Preemption
  • Virtual Memory basics
  • System Calls
  • /proc file-system

3. User-mode Programming

  • Shell basics
  • Shell scripts
  • Working with processes: fork, exec, etc.
  • Working with threads (pthreads)
  • Exercises

4. Linux and Real Time

  • RTOS v Linux Memory Model
  • Linux Hardware Interaction
  • Latency (Kernel, Interrupt, Scheduler)
  • Kernel preemption
  • Linux hard real -time extensions

5. Configuring and Building the Linux Kernel

  • Getting the sources
  • Structure of source files
  • Configuring and building the kernel
  • Compiling the kernel
  • Kernel modules

6. Cross-Compiling for Embedded

  • Embedded Tool-chains
  • Cross-compiling for the Target Platform
  • Lab: Compiling & running the kernel (in emulator)

7. Linux Boot Sequence

  • Embedded Linux boot process
  • Kernel boot parameters
  • Bootloaders, U-Boot
  • Lab: Configuring and compiling U-Boot
  • root-fs: initrd & initramfs
  • Busybox
  • Lab: Building a minimal Linux system (in emulator)
  • root-fs over NFS

8. Programming in the Kernel Environment

  • 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 

9. Kernel Space Considerations

  • Endianess
  • Floating point
  • Execution contexts 
10. Working with User Space memory
  • copy_to_user / copy_from_user
  • Implementing a /proc reader/writer
  • Lab: Module with /proc interface

11. Kernel Memory Management

  • Physical and Virtual memory, on-demand paging
  • kmalloc / kfree / vmalloc / vfree
  • Allocators (SLAB/SLUB/SLOB)
  • Allocating by pages

12. Resource Management

  • I/O Ports
  • I/O Memory

13. Interrupt Handling

  • Interrupt Control
  • IRQ Flags
  • Top and Bottom Halves
  • SoftIRQs, Work Queues and Tasklets

14. Synchronicity

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

15.Timing

  • Jiffies
  • Timers
  • High-Resolution Timers

16. Device Drivers

  • Types of drivers
  • Device files, major and minor numbers
  • Character Device Drivers
  • Registering a character device
  • Creating device files
  • Device numbers allocation
  • File operations
  • Lab: Implementing a character device

17. Networking

  • Linux Networking model
  • The network stack
  • sk_buff structure and operations
  • net_device structure
  • Network device registration / unregistration
  • Device initialization
  • Packet transmit path
  • Packet receive path

18. Debugging

  • Kernel Debugging techniques
  • Handling Oops and Panics

19. 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