MCU

IT E Learning

 你有這樣的問題嗎?

▪ 有8051、AVR單晶片等MCU開發經驗,如I2C、SPI等,但不知如何將這些Driver移植Linux到平台

▪ 不清楚Linux 驅動程式的進入點在那裡?

▪ 不懂Linux 驅動程式要如何跟上層的應用程式溝通?

▪ 不同的硬體裝置對Linux驅動程式的架構是不是也不同?

▪ 在Linux多工的環境下,驅動程式該如何處理多工並同時存取?同步I/O與非同步I/O、中斷、DMA等I/O方式,Linux 驅動程式應如何撰寫?

▪ 看過一些Linux 驅動程式的書籍,但卻看不懂?或者是......好像懂,但卻又不知如何寫Linux驅動程式?

 學習目標

快速上手: 用Raspberry Pi學Linux驅動程式,並且搭配本公司所設計的Raspberry Pi I/O擴充板作為驅動程式實戰演練,實戰GPIO, UART, I2C, SPI等Linux硬體驅動,讓您在學習的過程中能夠快速了解硬體架構及軟體架構。

ü學習Driver撰寫的各個層面,包含核心API、中斷處理、同步、記憶體管理等等。

ü導正學員Linux Device Driver與Linux基本作業系統的觀念,為將來的Driver coding打下良好的基礎。

ü可以了解user-space與kernel-space之間的關係。

ü可以開始研讀及參考kernel裡面或是別人撰寫的device driver source code。

       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

 

 

更多延伸學習

MCU韌體設計 | ARM Boot Loader 設計 | 進階-Python硬體控制 | 更多數位學習 

全新數位學習平台

 

索取更多資訊