fbpx

MCU 728x90 114

 

1118 e linux drive 01 2

10th el sale banner
你有這樣的問題嗎?

▪ 有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驅動程式攻略

• 課程說明:本課程之 Driver 開發範例皆直接於 Raspberry Pi 平台上進行,並將 Raspberry Pi 視為一套完整的 Linux 主機開發環境。教學內容涵蓋 Linux Driver 的核心設計觀念、各項驅動程式技術主題的系統性講解,並搭配實際開發成果與操作示範(Demo)影片,協助學員由理論延伸至實務,完整掌握驅動程式的開發流程與系統整合方法。課程實作範例基於 Linux Kernel 4.14 LTS(Long Term Support)版本進行設計。此版本具備架構成熟、API 穩定且子系統複雜度適中的特性,特別適合用於拆解與理解 Linux Driver 的核心設計原理。學員能清楚掌握中斷機制、裝置模型、資源管理、平台驅動、Device Tree 與各子系統之間的架構關係,而非僅停留於高度自動化 API 的操作層面。Linux Driver 的核心架構自 4.x 至 6.x 版本之間並未產生本質性的改變,主要差異在於 API 設計與實作形式的演進。本課程著重於培養學員對 Linux 裝置模型、子系統整合與資源生命週期管理的系統性能力,確保所學知識可無縫遷移至 5.x、6.x 及未來核心版本,並實際應用於產業級開發與產品導入場景。

• 課程總時數 : 28小時

• 課程所附教材 : Raspberry Pi 開發套件包、精編講義、範例程式碼

• 其他: 講師講解內容不限於Raspberry Pi 開發套件包 ,惟能實際硬體實驗的部份會受限於Raspberry Pi 開發套件包所提供的硬體。

       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

 

 

更多延伸學習

 

★數位課程

 

 

★實體課程
linuxros fpga
 

 

全新數位學習平台
 

索取更多資訊