fbpx

enginner course

 

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
 

 

全新數位學習平台
 

索取更多資訊