課程內容
用Raspberry Pi學Linux驅動程式,並且搭配本公司所設計的Raspberry Pi I/O擴充板作為驅動程式實戰演練,實戰GPIO, UART, I2C, SPI等Linux硬體驅動,讓您在學習的過程中能夠快速了解硬體架構及軟體架構。
1.學習Driver撰寫的各個層面,包含核心API、中斷處理、同步、記憶體管理等等。
2.導正學員Linux Device Driver與Linux基本作業系統的觀念,為將來的Driver coding打下良好的基礎。
3.可以了解user-space與kernel-space之間的關係。
4.可以開始研讀及參考kernel裡面或是別人撰寫的device driver source code。
學習目標:
1. 能掌握Linux驅動程式設計概要及學習方法
2. 能看懂drivers目錄中與你要寫的類似驅動程式,並能依此參考並能加以改寫完成你自己的驅動程式
章節架構:
► Linux 驅動程式架構
► Linux HAL
► Linux Driver開發流程
► 核心程式碼與Makefile
► Driver 模組編譯與載入
► 字元裝置Driver
● Character_Driver (1)
● Character_Driver (2)
● Character_Driver (3)
● Udev
► Linux Misc Device
► Linux GPIO Driver Framework
● Linux GPIO Lib
● BCM2835 GPIO 控制說明
● Linux GPIO Host Controller驅動程式
► Linux 中斷服務程式
► Linux中斷控制器HAL層
► Bottom Halves (Tasklet & Work Queue)
► 進階字元Driver
● Wait Queue
● Completion及非同步通知
● Kernel Timer List (Jiffies, timer ticks) for LED 閃爍
► Linux Platform Device & Platform Driver
► Linux Device Tree
► Linux SPI Driver Framework
● SPI簡介
● SPI Flash 操作
● Linux SPI Client驅動程式 for SPI Flash
● Linux MTD 驅動程式
● Linux SPI Bus master驅動程式
► Device Tree for ADC Driver (MCP3008)
► Linux I2C Driver Framework
● I2C 簡介
● Linux I2C Framework(1)
● Linux I2C Framework(2)
● Linux I2C Bus master驅動程式
► Linux UART Driver Framework
► Linux User Space Driver - BCM2835 C I/O Library