簡介:Linux驅動程序開發作為嵌入式軟件開發中技術含金量最高的內容,是大部分嵌入式軟件工程師所希望從事的技術方向。本課程將硬件知識、內核態編程知識和驅動編程框架的知識融為一體,詳細介紹了字符設備、塊設備、網絡設備的驅動開發過程。理論與實踐相結合實現了常見硬件的驅動程序,以及驅動實現過程中常用的調試和故障排查技巧,力圖使學員達到中高級驅動開發水平。
課程章節
第01課 Linux驅動編程初步
-
課時1驅動程序開發的行業特點
-
課時2Linux驅動程序開發技能需求
-
課時3Linux驅動程序開發學習方法
-
課時4安裝交叉編譯工具
-
課時5編譯內核源碼
-
課時6tftp加載內核、設備樹
-
課時7nfs方式掛載根文件系統
-
課時8source insight創建內核源碼工程
第02課 內核編程基礎
第03課 字符設備驅動編程框架
-
課時1字符設備核心數據結構
-
課時2靜態分配設備號
-
課時3動態分配設備號
-
課時4關于cdev的API
-
課時5編程實例
-
課時6用戶空間調用驅動函數
-
課時7實現原理
-
課時8一個cdev管理多個字符設備
第04課 gpio子系統
第05課 內核空間和用戶空間的數據交換
第06課 ioctl
第07課 設備文件的自動創建
第08課 platform總線
-
課時1總線驅動模型三要素
-
課時2platform總線
-
課時3platform總線編程實例一
-
課時4platform總線編程實例二
-
課時5platform總線編程實例三
-
課時6設備和驅動的匹配方式
-
課時7platform總線的優勢
第09課 設備樹
-
課時1什么是設備樹
-
課時2設備樹節點
-
課時3設備樹屬性
-
課時4編寫設備樹節點
-
課時5內核對設備樹的解析
-
課時6找節點
-
課時7找屬性
-
課時8找value
第10課 設備樹版本的LED驅動程序
第11課 Linux中斷處理
-
課時1裸板中按鍵中斷處理
-
課時2內核中提供的中斷相關的API
-
課時3編寫按鍵對應的設備樹節點
-
課時4按鍵驅動編程一
-
課時5按鍵驅動編程二
-
課時6Linux中斷子系統
-
課時7中斷處理函數的特點
第12課 中斷底半部機制
-
課時1軟中斷
-
課時2tasklet的使用
-
課時3tasklet使用的注意事項
-
課時4工作隊列的使用
-
課時5與tasklet的對比分析
-
課時6delayed_work
第13課 Linux內核中的定時與延時
第14課 內核的競態與并發
-
課時1按鍵設備的用戶空間訪問
-
課時2按鍵設備獨占訪問的簡單實現
-
課時3簡單實現中存在的BUG
-
課時4競態與并發的基本概念
-
課時5中斷屏蔽
-
課時6原子操作
-
課時7自旋鎖
-
課時8自旋鎖使用的注意事項
-
課時9信號量
第15課 IO模型
-
課時1阻塞IO基礎
-
課時2阻塞IO編程
-
課時3阻塞IO原理
-
課時4非阻塞IO
-
課時5支持多路復用
-
課時6select實現原理分析
-
課時7poll實現原理分析
-
課時8epoll實現原理分析
-
課時9信號驅動IO
-
課時10異步IO
第16課 內存管理
-
課時1高端內存&低端內存
-
課時2動態分配內存API
-
課時3內核中的出錯處理
-
課時4IO內存基本概念
-
課時5LED驅動硬件分析
-
課時6ioremap控制LED編程實例
-
課時7mmap控制硬件
第17課 input子系統
-
課時1什么是input子系統
-
課時2input子系統的使用方式
-
課時3input版按鍵設備樹節點
-
課時4實現和platform_driver的匹配
-
課時5獲取設備樹節點中的硬件信息
-
課時6注冊input_dev
-
課時7硬件相對代碼實現
-
課時8通過hexdump訪問設備
-
課時9編程訪問輸入設備
-
課時10input子系統的框架分析
第18課 I2C設備驅動
-
課時1裸板SI7006驅動實現回顧
-
課時2IIC總線驅動的啟用
-
課時3IIC設備驅動框架
-
課時4IIC設備的添加
-
課時5設備和驅動的匹配
-
課時6讀取電子串號
-
課時7讀取溫濕度值
-
課時8編寫測試程序驗證
-
課時9GPIO模擬I2C通信
第19課 SPI設備驅動
-
課時1裸板數碼管驅動實現回顧
-
課時2SPI總線驅動的啟用
-
課時3SPI設備驅動框架
-
課時4SPI設備的添加
-
課時5設備和驅動的匹配
-
課時6spi_write函數的使用
-
課時7按照混雜子系統框架完善驅動程序
-
課時8編寫測試程序驗證
-
課時9GPIO模擬SPI通信
第20課 塊設備驅動
-
課時1塊設備驅動編程基礎
-
課時2塊設備驅動的框架
-
課時3塊設備驅動編程一
-
課時4塊設備驅動編程二
-
課時5塊設備驅動編程三
-
課時6塊設備驅動的測試
第21課 網絡設備驅動
授課講師
-
孟健老師
高級講師
關于講師
10多年嵌入式開發經驗。項目開發涉及工業控制、車載設備、智能穿戴及智能卡等多個領域,精通ARM匯編、C/C++、QT、Python程序設計,熟悉8051、STM32、ARM Cortex-A系列等多款嵌入式芯片,擅長裸板、Linux環境下驅動程序開發。有多年嵌入式物聯網研發及教學經驗。
課程推薦
- 系統移植 試聽 1614
- C語言項目小游戲-中國象棋小游戲 試聽 1295
- C++開發基礎 試聽 6418
- FreeRTOS操作系統 試聽 28326
學習服務
- 技術大牛直播授課
- 實時學情管理
- 課后作業批改,BUG診斷
- 輔導老師當堂答疑
- 學習規劃,專屬學習方案