400-888-5228

課程介紹:

驅(qū)動(dòng)程序?qū)儆贚inux內(nèi)核的一部分,開發(fā)驅(qū)動(dòng)程序是嵌入式Linux項(xiàng)目中很重要的一部分內(nèi)容。開發(fā)出高質(zhì)量、高性能的驅(qū)動(dòng)程序是項(xiàng)目成敗的關(guān)鍵。隨著 市場(chǎng)上對(duì)嵌入式產(chǎn)品的需求越來越大,從而對(duì)驅(qū)動(dòng)程序開發(fā)人員的需求也在飛速增加。本課程的最大特點(diǎn)是以項(xiàng)目為培訓(xùn)目標(biāo),培養(yǎng)出真正具有實(shí)際開發(fā)能力的專業(yè) 人才。

用戶態(tài)進(jìn)程和內(nèi)核的通信方法;Char,block設(shè)備驅(qū)動(dòng)的編寫;中斷處理和I/O調(diào)度;內(nèi)核時(shí)鐘;內(nèi)核同步;網(wǎng)絡(luò)驅(qū)動(dòng)程序的編寫;內(nèi)核的設(shè)備管理模 型;USB,PCI驅(qū)動(dòng)接口;Linux TCP/IP棧結(jié)構(gòu);LinuxIP協(xié)議棧主要數(shù)據(jù)結(jié)構(gòu);Netfilter的框架;內(nèi)核調(diào)試方法。

 

課程長度:

3天

課程對(duì)象:

針對(duì)Linux驅(qū)動(dòng)開發(fā)和Linux內(nèi)核開發(fā)及嵌入式開發(fā)系統(tǒng)開發(fā)技術(shù)人員。

具備Linux應(yīng)用和開發(fā)經(jīng)驗(yàn),欲從事Linux平臺(tái)驅(qū)動(dòng)程序開發(fā)或嵌入式開發(fā)者。

 

課程大綱

1.Linux內(nèi)核簡介

  • Linux系統(tǒng)架構(gòu)
  • 內(nèi)核的啟動(dòng)原理

2.Linux內(nèi)核編譯

  • Linux內(nèi)核編譯環(huán)境
  • 內(nèi)核裁減
  • 使用自定義內(nèi)核

3.內(nèi)核模塊簡介

  • 內(nèi)核模塊管理

4.內(nèi)核模塊編譯

  • 內(nèi)核模塊開發(fā)環(huán)境
  • hello world

5.字符設(shè)備驅(qū)動(dòng)

  • 認(rèn)識(shí)linux的字符設(shè)備
  • 字符設(shè)備驅(qū)動(dòng)框架
  • 字符設(shè)備驅(qū)動(dòng)解析
  • 定制字符設(shè)備驅(qū)動(dòng)

6.內(nèi)核代碼的調(diào)試

  • 內(nèi)核的調(diào)試開關(guān)
  • 打印調(diào)試
  • 查詢調(diào)試
  • kdump

7.并發(fā)機(jī)制和臨界區(qū)

  • 多進(jìn)程模型
  • 臨界區(qū)
  • 信號(hào)量和互斥鎖
  • 自旋鎖

8.高級(jí)字符設(shè)備操作

  • ioctl
  • I/O阻塞
  • poll和select

9.時(shí)間和延時(shí)

  • 時(shí)間的計(jì)算
  • 當(dāng)前時(shí)間
  • 延時(shí)
  • 內(nèi)核定時(shí)器
  • tasklets

10.內(nèi)存分配

  • kmalloc工作原理
  • cache管理
  • vmalloc及類似函數(shù)
  • CPU相關(guān)變量
  • 大緩沖區(qū)

11.與硬件的通信

  • I/O端口和I/O內(nèi)存
  • 訪問I/O端口

12.內(nèi)存映射和DMA

  • 內(nèi)存管理和mmap
  • Direct I/O
  • 直接內(nèi)存訪問

13.中斷處理

  • 中斷處理程序
  • 中斷的頂半部和低辦部
  • 中斷共享
  • 中斷驅(qū)動(dòng)的I/O

14.內(nèi)核的數(shù)據(jù)類型

  • 接口特定的數(shù)據(jù)類型
  • List

15.PCI設(shè)備驅(qū)動(dòng)

  • PCI總線
  • PC/104
  • 其他PC總線

16.USB設(shè)備驅(qū)動(dòng)

  • USB設(shè)備和主機(jī)
  • USB和sysfs
  • USB urbs
  • USB驅(qū)動(dòng)框架

17.Linux設(shè)備驅(qū)動(dòng)模型

  • Kobjects,Ksets和內(nèi)核子系統(tǒng)
  • 地層Sysfs操作
  • 熱插拔事件
  • 總線,設(shè)備和驅(qū)動(dòng)

18.文件系統(tǒng)驅(qū)動(dòng)

  • vfs驅(qū)動(dòng)框架
  • ext3文件系統(tǒng)

19.塊設(shè)備驅(qū)動(dòng)

  • 塊設(shè)備操作
  • 請(qǐng)求隊(duì)列

20.網(wǎng)絡(luò)設(shè)備驅(qū)動(dòng)

  • 網(wǎng)絡(luò)設(shè)備驅(qū)動(dòng)框架
  • 數(shù)據(jù)的收發(fā)和ioctl
  • 中斷處理
  • Socket緩沖區(qū)
  • 流量統(tǒng)計(jì)