Log in / Sign Up
  • Home
  • About
  • Training
    • Course Catalog
    • Exams
    • Learning Journeys
  • Calendar
  • Contact

Call us

+(27) 11 568 8065

16th Rd, 400 Randjies Office Park, Block L South, Midrand, 1685
mehacademy.africa
MEH ACADEMY
MEH Academy-01
  • Home
  • About
  • Training
    • Course Catalog
    • Exams
    • Learning Journeys
  • Calendar
  • Contact

Developing Embedded Linux Device Drivers (LFD435)

Curriculum

  • 1 Section
  • 39 Lessons
  • 4 Days
Expand all sectionsCollapse all sections
  • Topics
    39
    • 1.1
      Introduction Objectives Who You Are The Linux Foundation Linux Foundation Training Certification Programs and Digital Badging Linux Distributions Preparing Your System Things change in Linux Documentation and Links
    • 1.2
      Preliminaries Procedures Kernel Versions Kernel Sources and Use of git Hardware
    • 1.3
      How to Work in OSS Projects ** Overview on How to Contribute Properly Stay Close to Mainline for Security and Quality Study and Understand the Project DNA Figure Out What Itch You Want to Scratch Identify Maintainers and Their Work Flows and Methods Get Early Input and Work in the Open Contribute Incremental Bits, Not Large Code Dumps Leave Your Ego at the Door: Don’t Be Thin-Skinned Be Patient, Develop Long Term Relationships, Be Helpful
    • 1.4
      Cross-Development Toolchain The Compiler Triplet Built-in Linux Distribution Cross Compiler Linaro CodeSourcery crosstool-ng Buildroot OpenEmbedded Yocto Project Labs
    • 1.5
      QEMU What is QEMU? Emulated Architectures Image Formats Why use QEMU? Labs
    • 1.6
      Booting a Target Development Board from uSD Why do we use uSD cards? Getting SW onto a uSD card Why is using uSD cards a bad idea? Labs
    • 1.7
      Booting a Target Development Board over Ethernet Using virtual Hardware An easier way to develop Objectives of the Lab Labs
    • 1.8
      Kernel Configuration, Compilation, Booting Configuring the Kernel for the Development Board Labs
    • 1.9
      Device Drivers Types of Devices Mechanism vs. Policy Avoiding Binary Blobs Power Management How Applications Use Device Drivers Walking Through a System Call Accessing a Device Error Numbers printk() devres: Managed Device Resources Labs
    • 1.10
      Modules and Device Drivers The module_driver() Macros Modules and Hot Plug Labs
    • 1.11
      Memory Management and Allocation Virtual and Physical Memory Memory Zones Page Tables kmalloc() __get_free_pages() vmalloc() Slabs and Cache Allocations Labs
    • 1.12
      Character Devices Device Nodes Major and Minor Numbers Reserving Major/Minor Numbers Accessing the Device Node Registering the Device udev dev_printk() and Associates file_operations Structure Driver Entry Points The file and inode Structures Miscellaneous Character Drivers Labs
    • 1.13
      Kernel Features Components of the Kernel User-Space vs. Kernel-Space What are System Calls? Available System Calls Scheduling Algorithms and Task Structures Process Context Labs
    • 1.14
      Transferring Between User and Kernel Space Transferring Between Spaces put(get)_user() and copy_to(from)_user() Direct Transfer: Kernel I/O and Memory Mapping Kernel I/O Mapping User Pages Memory Mapping User-Space Functions for mmap() Driver Entry Point for mmap() Accessing Files from the Kernel Labs
    • 1.15
      Platform Drivers What are Platform Drivers? Main Data Structures Registering Platform Devices An Example Hardcoded Platform Data The New Way: Device Trees Labs
    • 1.16
      Device Trees What are Device Trees? What Device Trees Do and What They Do Not Do Device Tree Syntax Device Tree Walk Through Device Tree Bindings Device Tree support in Boot Loaders Using Device Tree Data in Drivers Coexistence and Conversion of Old Drivers Labs
    • 1.17
      Interrupts and Exceptions What are Interrupts and Exceptions? Exceptions Asynchronous Interrupts MSI Enabling/Disabling Interrupts What You Cannot Do at Interrupt Time IRQ Data Structures Installing an Interrupt Handler Labs
    • 1.18
      Timing Measurements Kinds of Timing Measurements Jiffies Getting the Current Time Clock Sources Real Time Clock Programmable Interval Timer Time Stamp Counter HPET Going Tickless
    • 1.19
      Kernel Timers Inserting Delays What are Kernel Timers? Low Resolution Timer Functions Low Resolution Timer Implementation High Resolution Timers Using High Resolution Timers Labs
    • 1.20
      ioctls What are ioctls? Driver Entry point for ioctls Defining ioctls Labs
    • 1.21
      Unified Device Model and sysfs Unified Device Model Basic Structures Real Devices sysfs kset and kobject examples Labs
    • 1.22
      Firmware What is Firmware? Loading Firmware Labs
    • 1.23
      Sleeping and Wait Queues What are Wait Queues? Going to Sleep and Waking Up Going to Sleep Details Exclusive Sleeping Waking Up Details Polling Labs
    • 1.24
      Interrupt Handling: Deferrable Functions and User Drivers Top and Bottom Halves Softirqs Tasklets Work Queues New Work Queue API Creating Kernel Threads Threaded Interrupt Handlers Interrupt Handling in User-Space Labs
    • 1.25
      Hardware I/O Memory Barriers Allocating and Mapping I/O Memory Accessing I/O Memory
    • 1.26
      Direct Memory Access (DMA)** What is DMA? DMA Directly to User DMA and Interrupts DMA Memory Constraints DMA Masks DMA API DMA Pools Scatter/Gather Mappings Labs
    • 1.27
      Memory Technology Devices (Flash Memory Filesystems) What are MTD Devices? NAND vs. NOR vs. eMMC Driver and User Modules Flash Filesystems
    • 1.28
      USB Drivers What is USB? USB Topology Terminology Endpoints Descriptors USB Device Classes USB Support in Linux Registering USB Device Drivers Moving Data Example of a USB Driver Labs
    • 1.29
      Closing and Evaluation Survey Evaluation Survey
    • 1.30
      Appendices — Booting the Target Development Board from uSD Objectives of the Lab Labs
    • 1.31
      Kernel Architecture I UNIX and Linux ** Monolithic and Micro Kernels Object-Oriented Methods Main Kernel Tasks User-Space and Kernel-Space
    • 1.32
      Kernel Programming Preview Task Structure Memory Allocation Transferring Data between User and Kernel Spaces Linked Lists Jiffies Labs
    • 1.33
      Modules What are Modules? A Trivial Example Compiling Modules Modules vs Built-in Module Utilities Automatic Loading/Unloading of Modules Module Usage Count Module Licensing Exporting Symbols Resolving Symbols ** Labs
    • 1.34
      Kernel Architecture II Processes, Threads, and Tasks Kernel Preemption Real Time Preemption Patch Labs
    • 1.35
      Kernel Configuration and Compilation Installation and Layout of the Kernel Source Kernel Browsers Kernel Configuration Files Kernel Building and Makefiles initrd and initramfs Labs
    • 1.36
      Kernel Style and General Considerations Coding Style Using Generic Kernel Routines and Methods Making a Kernel Patch sparse Using likely() and unlikely() Writing Portable Code, CPU, 32/64-bit, Endianness Writing for SMP Writing for High Memory Systems Power Management Keeping Security in Mind Labs
    • 1.37
      Race Conditions and Synchronization Methods Concurrency and Synchronization Methods Atomic Operations Bit Operations Spinlocks Seqlocks Disabling Preemption Mutexes Semaphores Completion Functions Read-Copy-Update (RCU) Reference Counts Labs
    • 1.38
      Memory Addressing Virtual Memory Management Systems With and Without MMU and the TLB Memory Addresses High and Low Memory Memory Zones Special Device Nodes NUMA Paging Page Tables page structure Labs
    • 1.39
      Memory Allocation Requesting and Releasing Pages Buddy System Slabs and Cache Allocations Memory Pools kmalloc() vmalloc() Early Allocations and bootmem() Memory Defragmentation Labs
This content is protected, please login and enroll in the course to view this content!
Unified Device Model and sysfs Unified Device Model Basic Structures Real Devices sysfs kset and kobject examples Labs
Prev
Sleeping and Wait Queues What are Wait Queues? Going to Sleep and Waking Up Going to Sleep Details Exclusive Sleeping Waking Up Details Polling Labs
Next
MEH Academy-01

Follow us on social media

Training

  • Training Catalog
  • Exams
  • Learning Journeys

CATEGORIES

  • Design
  • Development
  • Marketing
  • Finance & Accounting
  • IT & Software
  • Sales Marketing
  • Photohraphy
  • UX Design
  • Art & Humanities
  • Social Sciences
  • Personal
  • Lifiestyle
  • Seo

SUPPORT

  • Profile
  • Contact
  • Help Center
  • Privacy Policy

GET IN TOUCH

We don’t send spam so don’t worry.

© 2025 MEH Academy. All Rights Reserved.

  • Help
  • Term Conditions
  • Security
  • Privacy Policy
  • Returns Policy