|
課程目標 |
培養(yǎng)學員Linux下開發(fā)驅動程序的能力,授課時理論和實踐相結合,突出實驗部分,讓學員通過實踐扎扎實實掌握相關技能。學員可以掌握Linux下字符設備、塊設備、網絡設備、Framebuffer設備、SD卡等設備的驅動程序開發(fā)的技巧,以及嵌入式Linux的系統(tǒng)開發(fā)和分析方法。 |
入學要求 |
★熟悉Linux操作系統(tǒng)
★熟悉C語言,熟悉指針、結構體等概念;
★了解接口電路和數(shù)字電路的知識 |
班級規(guī)模及教學環(huán)境 |
為嚴控教學質量,讓學員有充分的提問機會,我們堅持超級小班教學,每個班級的人數(shù)限定為5人,多余人員安排到下一期。人手一套開發(fā)板和實驗用的PC主機。 |
上課時間和上課地點 |
上課地點:【上!浚和瑵髮W(滬西)/新城金郡商務樓(11號線白銀路站) 【深圳分部】:電影大廈(地鐵一號線大劇院站)/深圳大學成教院 【北京分部】:北京中山/福鑫大樓 【南京分部】:金港大廈(和燕路) 【武漢分部】:佳源大廈(高新二路) 【成都分部】:領館區(qū)1號(中和大道) 【沈陽分部】:沈陽理工大學/六宅臻品 【鄭州分部】:鄭州大學/錦華大廈 【石家莊分部】:河北科技大學/瑞景大廈 【廣州分部】:廣糧大廈 【西安分部】:協(xié)同大廈
近開課時間(周末班/連續(xù)班/晚班):Linux驅動開發(fā):2024年11月18日......(歡迎您垂詢,視教育質量為生命!) |
學時和費用 |
★課時:
請咨詢在線客服
☆注重質量
☆邊講邊練
☆合格學員免費推薦工作
專注高端培訓17年,曙海提供的課程得到本行業(yè)的廣泛認可,學員的能力
得到大家的認同,受到用人單位的廣泛贊譽。
★實驗設備請點擊這兒查看★ |
師資團隊 |
【李冠濤】
金牌講師,具有10年嵌入式技術從業(yè)經驗和9年嵌入式linux驅動開發(fā)經驗,對于嵌入式Linux的實現(xiàn)和應用有深入研究,主持開發(fā)過多個大型嵌入式項目,涉及網絡,通訊,控制,信息終端等各行各業(yè),例如航天在軌數(shù)據采集系統(tǒng)、地震數(shù)據采集分析系統(tǒng)、車載MP4設備等。對系統(tǒng)移植有很強的經驗,在X86/ARM/XSCALE/PowerPC/MIPS等各種體系結構平臺上移植Linux內核;對于嵌入式Linux的實時性和uCLinux的特點有深入研究。
【陳亮宇】
著名IT企業(yè)硬件工程師,對于硬件產業(yè)的發(fā)展有詳細的了解,在嵌入式系統(tǒng)的講解和傳授中偏重于嵌入式軟件對硬件的技術支持方面的知識,在行業(yè)中能得到廣泛的應用。具有十多年嵌入式開發(fā)實戰(zhàn)經驗,6年嵌入式培訓經驗,熟悉ARM/PPC/MIP平臺,對嵌入式Linux、uc/OS、uClinux有深入的研究。目前專攻手機設計和培訓。曾為數(shù)個大型企業(yè)進行手機開發(fā)、Linux開發(fā)方面的培訓。在參與的項目中,曾使用了Coldfire、POWERPC、S3C2410、PXA255等多款處理器,完成了平臺移植、Bootloader移植等工作。
★更多師資力量請見曙海師資團隊。 |
課程進度安排 |
|
課程大綱 |
第一講 |
|
通過本課學習,學員可以從用戶設備I/O編程角度深入了解設備驅動的原理;通過了解字符設備驅動框架和具體硬件設備I/O操作,能夠進行字符設備驅動開發(fā);了解linux2.6內核的設備模型及掌握udev的使用。
|
|
1. LINUX字符設備驅動程序開發(fā)
1.1 LINUX字符設備驅動基礎
1.2 字符設備驅動程序實現(xiàn)框架與典型驅動分析
1.3 用戶空間與內核空間的數(shù)據傳輸
1.4 同步、互斥、阻塞、睡眠機制
1.5 Linux-2.6設備模型與sysfs文件系統(tǒng)
1.6 udev與devfs文件系統(tǒng)
|
|
【實驗】
1、驅動開發(fā)編程環(huán)境與內核配置、編譯
2、編寫模塊化字符設備驅動程序與測試 |
第二講 |
|
通過本課學習,學員可以掌握在基本字符設備驅動的基礎上增加復雜的內核機制;了解1inux內核中斷子系統(tǒng)的實現(xiàn)原理,掌握linux中斷處理程序編寫方法.
|
|
2. 設備驅動中常用的內核機制
2.1 1inux內核中斷子系統(tǒng)
2.2 中斷處理程序編寫
2.3 驅動程序上/下半部處理與延緩執(zhí)行機制
2.4 內核定時器與延遲機制 |
|
【實驗】
1、按鍵中斷實驗
2、A/D轉換實驗
|
第三講 |
|
通過本課學習,學員可以明白Linux中塊設備驅動的特點及框架,獨立分析Linux中大部分塊設備的驅動方法,并熟悉MTD設備驅動的特點與框架,具備MTD
Nand Flash驅動程序開發(fā)的能力。通過實驗,學員還可以掌握IDE、Ramdisk驅動移植方法。
|
|
3. LINUX塊設備驅動程序開發(fā)
3.1 塊設備及其驅動的特點
3.2 塊設備驅動程序中兩個關鍵結構體GEN_DISK與REQUEST
3.3 塊設備驅動程序的注冊與請求處理
3.4 MTD設備的特點以及與塊設備的關系
3.5 MTD設備驅動的框架及關鍵結構體分析
3.6 Cortex A8中的NAND FLASH控制器分析
3.7 Cortex A8 NAND FLASH
MTD驅動分析
|
|
【實驗】
1、編寫簡單的塊設備驅動程序
2、實現(xiàn)RAMDISK驅動
3、IDE硬盤的驅動移植
|
第四講 |
|
網絡設備是嵌入式產品開發(fā),特別是基于網絡的產品開發(fā)中重要的內容之一。通過本課學習,學員可以深入理解Linux網絡驅動程序中有關套接字(socket)、套接字緩沖區(qū)(sk_buff)等概念,了解網絡驅動程序的數(shù)據交換過程。通過實際的動手操作,學員將掌握如何移植或編寫具體網卡的驅動程序,并在此基礎上實現(xiàn)更為高級的網絡功能。
|
|
4. LINUX網絡設備驅動程序開發(fā)
4.1 OSI網絡參考模型
4.2 套接字(SOCKET)簡介
4.3 套接字緩沖區(qū)(SK_BUFF)
4.4 NET_DEVICE結構分析
4.5 數(shù)據包傳送與接收
4.6 網絡驅動的中斷處理
4.7 網絡設備驅動程序的基本實現(xiàn) |
|
【實驗】
1、了解網絡設備驅動中常用的數(shù)據結構
2、分析網絡驅動程序結構
3、編寫簡單的虛擬以太網卡驅動程序
4、移植并編寫CS8900A網卡驅動程序
5、移植并編寫DM9000網卡驅動程序
6、配置網絡參數(shù),測試網卡驅動程序行為 |
第五講 |
|
通過本課學習,學員可掌握嵌入式Linux顯示驅動程序的開發(fā)方法,理解嵌入式Linux圖形驅動程序實現(xiàn)機制,能夠移植或編寫嵌入式顯示控制器驅動程序,并完成針對各種LCD硬件的定制。
|
|
5. LINUX幀緩沖驅動程序開發(fā)
5.1 幀緩沖顯示技術
5.2 幀緩沖驅動程序顯示原理
5.3 幀緩沖驅動程序的數(shù)據結構
5.4 幀緩沖驅動程序的API
5.5 幀緩沖驅動程序的基本實現(xiàn)
6.觸摸屏驅動開發(fā)
??
6.1?觸摸屏工作原理
??
6.2?S5PC100觸摸屏控制器工作原理
??
6.3?觸摸屏驅動程序編寫
|
|
【實驗】
1、熟悉FRAMEBUFFER驅動的結構
2、熟悉FRAMEBUFFER中的重要數(shù)據結構
3、編寫ARM彩色LCD控制器驅動程序
4、熟悉控制屏幕顯示方法
|
第六講 |
|
通過本課學習,學員可以了解MMC/SD卡的物理及電氣特性,熟悉相關的工作協(xié)議,并在此基礎上能夠移植或編寫Linux下的MMC/SD控制器的驅動程序。
|
|
7. LINUX下MMC/SD卡驅動開發(fā)
7.1 嵌入式系統(tǒng)中幾種常見存儲介質的比較(NOR/NAND
FLASH、CF、MMC/SD)
7.2 MMC/SD卡物理及電氣規(guī)范簡介
7.3 MMC/SD卡工作中的關鍵命令及關鍵結構信息
7.4 ARM中MMC/SDHOST控制器分析
7.5 LINUX中MMC/SD存儲卡驅動程序結構分析
7.6 ARM中MMC/SD HOST控制器的驅動實現(xiàn) |
|
【實驗】
1、MMC/SD協(xié)議分析與布線原則
2、在LINUX源碼中加入針對ARM平臺的MMC/SD主控制器驅動的支持
3、以所給的驅動模板為基礎,補充初始化及命令和數(shù)據傳輸?shù)年P鍵代碼,終可以使用此代碼成功驅動SD存儲卡
|
第七講 |
|
掌握USB通訊規(guī)范及拓撲結構中的主機控制器、HUB、USB設備的工作流程;掌握S5PC100 USB device控制器的工作原理;后在FS_S5PC100開發(fā)板上編寫usbtransfer固件程序,結合PC機上windows環(huán)境下的DNW軟件,實現(xiàn)基于usb的文件下載功能。
通過Linux下USB驅動開發(fā)內容的學習,學員將深入理解Linux內核USB子系統(tǒng),掌握USB驅動程序編寫技術。經過學習后的學員能夠移植或編寫USB主機OHCI和設備驅動程序,后通過對usbtransfer設備的驅動編程,實現(xiàn)在linux環(huán)境下的文件下載功能(替換DNW的下載功能)。
|
|
8.LINUX下USB驅動開發(fā)基礎
??
8.1?USB規(guī)范介紹
??
8.2?USB主機控制器
??
8.3?USB HUB
??
8.4?USB設備狀態(tài)
??
8.5?USB描述符
??
8.6?USB請求
??
8.7?USB通訊數(shù)據格式
??
8.8?S5CPC100 USB device控制器
??
8.9?編寫usbtransfer固件程序
9.LINUX下USB驅動高級開發(fā)
??
9.1?Linux USB驅動層次
??
9.2?Linux USB主機控制器驅動介紹
??
9.3?Linux USB HUB驅動介紹
??
9.4?Linux USB 設備驅動程序
??
9.5?編寫usbtransfer設備驅動程序
??
9.6?編寫usbtransfer設備應用程序 |
|
【實驗】
1、MMC/SD協(xié)議分析與布線原則
2、在LINUX源碼中加入針對ARM平臺的MMC/SD主控制器驅動的支持
3、以所給的驅動模板為基礎,補充初始化及命令和數(shù)據傳輸?shù)年P鍵代碼,終可以使用此代碼成功驅動SD存儲卡
|