Embedded Linux Architecture: Kernel Driver Development - Live Online Training
How do I develop a kernel driver? What do I have to consider in embedded and real-time systems?
The development of high-performance drivers requires a basic understanding of the kernel architecture, and this is the focus of our training.
It provides an overview of the kernel structure and then highlights the components that are relevant to embedded systems. Attendees thus get a complete view of the operating system which is a prerequisite for the professional development of drivers.
The exercise comprises the basic structure of a kernel driver which is step by step extended with the mechanisms discussed in the training. At the end of the training, you have developed an entire driver and can develop drivers in your project.
Software developers, software architects
This training requires a knowledge level as accomplished with our training "Embedded Real-Time Linux".
Linux Kernel Basics
- System interface, privilege levels
- Virtual filesystem, address spaces
- Device driver classes (character, block, net)
- Kernel modules
Character Device Driver
- Implementation of the file interface
- Device nodes
- Udev daemon
- Hardware access; register, IO memory, DMA
- /proc and /sys filesystem; use in kernel driver
- Scheduling classes
- Processes and threads, kernel threads
- Wait queue; interruptible sleep
- Interrupt service routine
- Secondary reactions (softIRQ, tasklet, kernel timer)
- High-resolution timer (hrtimer)
- Atomic variables
- Preemption lock, interrupt lock
- Ring buffer, kernel FIFO
- Semaphore, mutex, RW semaphore
- Spinlock, RW lock, sequence lock
- Diagnosis of locking problems
- Memory protection, memory management unit (MMU)
- Memory types, DMA, high memory
- Physical memory management
- SLAB allocator, kernel malloc
- Data exchange with userspace, memory mapping
- All exercises are performed on a phyBOARD with ARM Cortex-A8 (AM-335x) using freely accessible open source tools (remote access).
|Training code: LE-LIN-AR|
* Price per attendee, in Euro plus VAT
Face-To-Face - English
Live Online - German
|15.01. – 18.01.2024||4 days|
Face-To-Face - German
|19.06. – 22.06.2023||4 days|