課程背景
(資料圖)
驅動是連接軟件和硬件的紐帶,在一個成熟的操作系統中,驅動代碼的比例最高,工作量也很大。不論是UART,I2C,SPI,SD,顯示,聲音,視頻編解碼等嵌入式場景的驅動,還是服務器場景的pcie驅動,塊設備驅動和網絡驅動,驅動程序在整個系統中都發揮著重要的作用。
課程介紹
課程中軟件研發最基本能力(環境和文檔)開始帶大家上手,從最簡單的GPIO驅動帶大家步入驅動的殿堂。從GPIO驅動引出Linux內核對硬件的抽象,內存管理和設備模型等話題。然后從大驅動(網絡驅動),電源管理和調試三方面,帶領大家提升解決復雜問題的能力。
具體目錄如下
第一課 (2.5小時) | 工欲善其事,必先利器—一開發環境搭建 | 獲得代碼的兩種方法 |
獲得文檔的兩個思路 | ||
利用前面兩步搭建自己的開發環境 | ||
從GPIO看硬件抽象 | MCU如何訪問GPIO | |
Linux如何訪問GPIO | ||
基于GPIO的驅動 | ||
Linux下訪問GPIO實際發生了什么 | ||
使用shell腳本測試gpio | ||
第二課 (2.5小時) | 驅動程序的寄存器訪問和內存分配 | MCU和Linux的寄存器API對比和實操 |
MCU和Linux的dma API對比和實操 | ||
用戶空間內存分配,malloc的背后的原理 | ||
內核內存分配,在驅動中分配內存 | ||
使用工具獲得內存分配狀態 | ||
第三課 (2.5小時) | Linux設備模型與電源管理 | 如何學習Linux設備之“道” |
這么多種設備如何管理? Linux對硬件的抽象 | ||
電源管理在操作系統的中的位置 | ||
電源管理的硬件架構 | ||
Linux的電源管理框架 | ||
設備拓撲結構與休眠喚醒 | ||
第四課 (2.5小時) | 網絡驅動 | TCP/IP協議棧 |
MCU使用網絡協議的兩個方法 | ||
Linux的網絡協議棧 | ||
RGMII協議 | ||
phy芯片的驅動和調試工具 | ||
使用python測試網絡狀態 | ||
第五課 (2.5小時) | 驅動調試手段 | 打印 |
斷點 | ||
如何判斷是否是驅動的性能瓶頸? | ||
5.0內核之后的重要內核更新 | 設備驅動框架的更新 | |
內存管理的更新 | ||
調測的更新 |
課程收益
?掌握Linux下設備驅動開發方法;
?熟悉設備驅動和操作系統的關系,不再盲人摸象;
?通過工具和方法支持自己高效工作,從自己每次重復性驅動移植和調試硬件的工作中解脫出來;
?學習如何每次移植和調試變成加深對操作系統理解的過程。
講師介紹
張健/Bamvor
十年IT基礎設施研發經驗,其中6年Linux kernel一線研發經驗,在suse,華為(17級),星際比特(技術合伙人)等公司工作。
作為團隊核心成員參與了大陸第一個Cortex-A8 SOC芯片研發,負責CPU軟件驗證,操作系統移植等工作。
作為華為派駐到Linaro的技術專家,主導/參與多個Linux與arm架構相關特性研發(ILP32,continuous bit hint,kernel selftest等)
課程受眾
?希望從MCU(單片機)轉行到Linux開發的工程師;
?已經有Linux開發經驗,希望深入了解操作系統的工程師;
?日常有大量重復驅動調試工作,希望更多時間拓展自己的人。
課程定價:6000元/人(閱碼場會員減1024,訓練營老用戶優惠券已發放。)
開課時間:2023年7月
課前準備:課程咨詢請聯系客服小月(WX:linuxer2016)