課程介紹>> Linux Device Drivers 完整訓練: Jollen 的 10 堂課

專業的Linux Device Driver 課程,專注Linux驅動程式教育訓練多年,堅持小班教學,廣受好評Linux 驅動程式課程

課程大綱

第01堂課:Linux 驅動程式架構 (含 Kernel 2.6)
第02堂課:Linux 驅動程式設計流程
第03堂課:I/O 的存取觀念
第04堂課:read/write 與 Wait Queue
第05堂課:Kernel Timer、Task Queue 與 Work Queue
第06堂課:Jollen-Kit! 開發板 GPIO 與 Interrupt Handler
第07堂課:網路卡驅動程式與網路協定層介面
第08堂課:Memory Mapped I/O
第09堂課:區塊型驅動程式
第10堂課:USB驅動程式

實作練習

共15道精心設計題目,教同學從無到有寫一個完整的驅動程式,每個練習皆提供參考解答:
‧ Exercise 01:ioctl driver function
‧ Exercise 02:multi-threaded
‧ Exercise 03:private data
‧ Exercise 04:reentrant code
‧ Exercise 05:sleeping in kernel space
‧ Exercise 06:scheduling
‧ Exercise 07:wait queue
‧ Exercise 08:event-driven
‧ Exercise 09:semaphore
‧ Exercise 10:critical section
‧ Exercise 11:將練習作業整合到 Linux kernel
‧ Exercise 12:將 Linux kernel 移植到 JK2410 (ARM9)
‧ Exercise 13:實作 JK2410 的 GPIO button 驅動程式
‧ Exercise 14:使用 JK2410 實作 software-mapped I/O
‧ Exercise 15:使用 JK2410 實作 memory-mapped I/O
先訓練同學實作架構完整與行為良好的驅動程式框架,再教授如何將自已寫的程式整合到 Linux kernel,並移植到 JK2410 開發板。最後有二天的實作指導,分組練習撰寫 JK2410 開發板的 GPIO 以及 framebuffer 驅動程式。

課程目標

‧ 學會 Linux 驅動程式架構與基本的 Linux 驅動程式觀念。
‧ Linux 驅動程式的入門關鍵點為「觀念的解析」,有了觀念後,便能快速看懂 Linux 的驅動程式,這也是許多 Linux 驅動程式初學者的障礙。
‧ 本課程為觀念導向並實作一個整體性的範例,並實際撰寫程式以了解 user-space 與 kernel-space 的關係,絕對是獨家的課程內容。
‧ 在 Jollen-Kit! Pro. 的 ARM9 開發板上進行實作練習。

詳細內容

‧ Linux Device Driver Architecture
‧ System Call Interface
‧ Virtual File System (VFS)
‧ 'Open' and 'Release' System Calls
‧ 'Open' and 'Release' Driver Function
‧ Blocking and Nonblocking I/O Concepts
‧ Wait Queues
‧ Work Queues (Kernel 2.6)
‧ Blocking and Nonblocking Read/Write
‧ kmalloc()
‧ copy_to_user(), copy_from_user()
‧ I/O Port and Memory-Mapped I/O
‧ ioctl()
‧ 'Ioctl' Driver Function
‧ Reentrant Function Concepts
‧ filp->private_Data
‧ Semaphore
‧ Kernel Timer
‧ Kernel Threads (Kernel 2.6)
‧ Pre-Defined Task Queues
‧ User-Defined Task Queues
‧ Writing an Interrupt Handler
‧ PCI Device Driver
‧ Spinlocks
‧ Bottom-half and Tasklets
‧ Layered Device Drivers
‧ Registration and Callback Mechanism
‧ Virtual Memory v.s. Physical Memory
‧ vmalloc()
‧ vmalloc() vs. Ioremap()
‧ mmap() System Calls
‧ Memory-Mapped I/O
‧ mmap() Driver Function
‧ Block Device Drivers
‧ I/O Request Queue
‧ USB Device Driver
‧ USB Request Block

 

關於Jollen's Consulting

課程供應與開發者,致力於價值創造

Jollen's Consulting 專注課程研究與開發,致力創造教育訓練的價值
與優質的課程平臺商合作,讓我們專注於課程開發