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