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 Device Driver Development
·
Module 1
Concurrency and Memory Ordering Across Firmware and Drivers
1
Correcting Shared State with C11 Atomics: Why Volatile Isn’t Synchronization
Correct a volatile-only C shared-state example with C11 atomic operations and explain why volatile does not provide inter-thread synchronization.
2
Analyzing Acquire-Release Memory Ordering on Weakly Ordered Processors
Analyze an acquire-release memory-ordering trace and determine which outcomes are permitted on a weakly ordered processor.
3
Choosing Synchronization Primitives for Thread and Interrupt Contexts
Select an appropriate synchronization primitive—mutex, spinlock, semaphore, completion/event, or atomic operation—for a given thread and interrupt-context scenario.
4
Barriers and Cache Coherency in MMIO/DMA Ownership Transfers
Place and justify compiler, CPU-memory, and device-I/O barriers in an MMIO or DMA ownership-transfer sequence, distinguishing memory ordering from cache coherency.
Next module isn't ready yet,
Back to course
Previous module
Next module