Linux Device Driver Development
Kernel Internals | BSP | Automotive | Embedded Systems
Character Drivers
Platform Drivers
PCIe / USB
I2C / SPI
Qualcomm BSP
Module 1 – Linux Kernel Fundamentals
- Linux kernel architecture
- User space vs kernel space
- Kernel build & configuration
- Loadable kernel modules
Module 2 – Character Device Drivers
- Device files & major/minor numbers
- file_operations structure
- open, read, write, ioctl
- Poll, select & async I/O
Module 3 – Platform Drivers & Device Tree
- Platform driver model
- Device Tree syntax & bindings
- Probe & remove flow
- Power & clock management
Module 4 – Interrupts & Concurrency
- Interrupt handling
- Top-half & bottom-half
- Workqueues & tasklets
- Spinlocks & mutexes
Module 5 – Memory Management
- Kernel memory allocation
- kmalloc vs vmalloc
- DMA & coherent memory
- Memory mapping to user space
Module 6 – Bus Drivers
- I2C & SPI driver framework
- USB driver architecture
- PCIe subsystem
- SerDes & high-speed buses
Module 7 – Power Management
- Runtime PM
- Suspend & resume
- Clock framework
- Thermal management
Module 8 – Debugging & Performance
- printk & dynamic debug
- ftrace & perf
- Kernel crash analysis
- Latency & throughput tuning
Module 9 – Security & Safety