Skip to main content
grasp.study
About
Explore
Pricing
Log in
Try it for free
Back to course
👋
Welcome to a Grasp lesson
Create a free account
to keep studying and create your own study path.
Embedded Systems Engineering Curriculum
·
Module 9
Linux Device Driver Development
1
Basic Character Device Driver Development
Implement a basic character device driver, including major/minor number allocation and `file_operations` registration.
2
Character Device File Operations
Implement `read`, `write`, and `ioctl` handlers, using `copy_from_user`/`copy_to_user` for safe data transfer.
3
Understanding the Platform Driver Model
Explain the platform driver model, including device tree probing, compatible string matching, and resource retrieval.
4
Platform Drivers with Managed Resources
Implement a platform driver that uses `devm_*` managed functions for automatic resource cleanup (e.g., memory, IRQs).
5
Interrupt Handling: Top Half & Bottom Half
Implement kernel interrupt handling using `request_irq` and partition the handler into a top half and a bottom half (workqueue).
6
Modern GPIO Control in Kernel Drivers
Use the modern GPIO framework (`gpiod_*` API) to control GPIO lines from a kernel driver.
7
Pin Control and Clock Management for Embedded Systems
Use the pinctrl and clock frameworks to configure pin multiplexing and manage peripheral clock rates.
8
Zero-Copy I/O with `mmap`
Explain zero-copy techniques like `mmap` for high-performance I/O between user space and a device.
Previous module
Linux Kernel Concurrency and Memory
Next module
Hardware Protocols and Peripherals