|
課程目標(biāo) |
培養(yǎng)學(xué)員Linux下開(kāi)發(fā)驅(qū)動(dòng)程序的能力,授課時(shí)理論和實(shí)踐相結(jié)合,突出實(shí)驗(yàn)部分,讓學(xué)員通過(guò)實(shí)踐扎扎實(shí)實(shí)掌握相關(guān)技能。學(xué)員可以掌握Linux下字符設(shè)備、塊設(shè)備、網(wǎng)絡(luò)設(shè)備、Framebuffer設(shè)備、SD卡等設(shè)備的驅(qū)動(dòng)程序開(kāi)發(fā)的技巧,以及嵌入式Linux的系統(tǒng)開(kāi)發(fā)和分析方法。 |
入學(xué)要求 |
★熟悉Linux操作系統(tǒng)
★熟悉C語(yǔ)言,熟悉指針、結(jié)構(gòu)體等概念;
★了解接口電路和數(shù)字電路的知識(shí) |
班級(jí)規(guī)模及教學(xué)環(huán)境 |
為嚴(yán)控教學(xué)質(zhì)量,讓學(xué)員有充分的提問(wèn)機(jī)會(huì),我們堅(jiān)持超級(jí)小班教學(xué),每個(gè)班級(jí)的人數(shù)限定為5人,多余人員安排到下一期。人手一套開(kāi)發(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)(中和大道) 【沈陽(yáng)分部】:沈陽(yáng)理工大學(xué)/六宅臻品 【鄭州分部】:鄭州大學(xué)/錦華大廈 【石家莊分部】:河北科技大學(xué)/瑞景大廈 【廣州分部】:廣糧大廈 【西安分部】:協(xié)同大廈
近開(kāi)課時(shí)間(周末班/連續(xù)班/晚班):Linux驅(qū)動(dòng)開(kāi)發(fā):2024年11月18日.....(請(qǐng)抓緊報(bào)名) |
學(xué)時(shí)和費(fèi)用 |
★課時(shí):
請(qǐng)咨詢?cè)诰客服
☆注重質(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ì) |
【李冠濤】
金牌講師,具有十幾年嵌入式技術(shù)從業(yè)經(jīng)驗(yàn)和十年嵌入式linux驅(qū)動(dòng)開(kāi)發(fā)經(jīng)驗(yàn),對(duì)于嵌入式Linux的實(shí)現(xiàn)和應(yīng)用有深入研究,主持開(kāi)發(fā)過(guò)多個(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)用。具有十多年嵌入式開(kāi)發(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ī)開(kāi)發(fā)、Linux開(kāi)發(fā)方面的培訓(xùn)。在參與的項(xiàng)目中,曾使用了Coldfire、POWERPC、S3C2410、PXA255等多款處理器,完成了平臺(tái)移植、Bootloader移植等工作。
★更多師資力量請(qǐng)見(jiàn)曙海師資團(tuán)隊(duì)。 |
課程進(jìn)度安排 |
|
課程大綱 |
第一講 |
|
通過(guò)本課學(xué)習(xí),學(xué)員可以從用戶設(shè)備I/O編程角度深入了解設(shè)備驅(qū)動(dòng)的原理;通過(guò)了解字符設(shè)備驅(qū)動(dòng)框架和具體硬件設(shè)備I/O操作,能夠進(jìn)行字符設(shè)備驅(qū)動(dòng)開(kāi)發(fā);了解linux2.6內(nèi)核的設(shè)備模型及掌握udev的使用。
|
|
1. LINUX字符設(shè)備驅(qū)動(dòng)程序開(kāi)發(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)開(kāi)發(fā)編程環(huán)境與內(nèi)核配置、編譯
2、編寫(xiě)模塊化字符設(shè)備驅(qū)動(dòng)程序與測(cè)試 |
第二講 |
|
通過(guò)本課學(xué)習(xí),學(xué)員可以掌握在基本字符設(shè)備驅(qū)動(dòng)的基礎(chǔ)上增加復(fù)雜的內(nèi)核機(jī)制;了解1inux內(nèi)核中斷子系統(tǒng)的實(shí)現(xiàn)原理,掌握l(shuí)inux中斷處理程序編寫(xiě)方法.
|
|
2. 設(shè)備驅(qū)動(dòng)中常用的內(nèi)核機(jī)制
2.1 1inux內(nèi)核中斷子系統(tǒng)
2.2 中斷處理程序編寫(xiě)
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)
|
第三講 |
|
通過(guò)本課學(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)程序開(kāi)發(fā)的能力。通過(guò)實(shí)驗(yàn),學(xué)員還可以掌握IDE、Ramdisk驅(qū)動(dòng)移植方法。
|
|
3. LINUX塊設(shè)備驅(qū)動(dòng)程序開(kāi)發(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 S3C2410(S3C2440)中的NAND FLASH控制器分析
3.7 S3C2410(S3C2440) NAND FLASH
MTD驅(qū)動(dòng)分析
|
|
【實(shí)驗(yàn)】
1、編寫(xiě)簡(jiǎn)單的塊設(shè)備驅(qū)動(dòng)程序
2、實(shí)現(xiàn)RAMDISK驅(qū)動(dòng)
3、IDE硬盤(pán)的驅(qū)動(dòng)移植
|
第四講 |
|
網(wǎng)絡(luò)設(shè)備是嵌入式產(chǎn)品開(kāi)發(fā),特別是基于網(wǎng)絡(luò)的產(chǎn)品開(kāi)發(fā)中重要的內(nèi)容之一。通過(guò)本課學(xué)習(xí),學(xué)員可以深入理解Linux網(wǎng)絡(luò)驅(qū)動(dòng)程序中有關(guān)套接字(socket)、套接字緩沖區(qū)(sk_buff)等概念,了解網(wǎng)絡(luò)驅(qū)動(dòng)程序的數(shù)據(jù)交換過(guò)程。通過(guò)實(shí)際的動(dòng)手操作,學(xué)員將掌握如何移植或編寫(xiě)具體網(wǎng)卡的驅(qū)動(dòng)程序,并在此基礎(chǔ)上實(shí)現(xiàn)更為高級(jí)的網(wǎng)絡(luò)功能。
|
|
4. LINUX網(wǎng)絡(luò)設(shè)備驅(qū)動(dòng)程序開(kāi)發(fā)
4.1 OSI網(wǎng)絡(luò)參考模型
4.2 套接字(SOCKET)簡(jiǎn)介
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、編寫(xiě)簡(jiǎn)單的虛擬以太網(wǎng)卡驅(qū)動(dòng)程序
4、移植并編寫(xiě)CS8900A網(wǎng)卡驅(qū)動(dòng)程序
5、移植并編寫(xiě)DM9000網(wǎng)卡驅(qū)動(dòng)程序
6、配置網(wǎng)絡(luò)參數(shù),測(cè)試網(wǎng)卡驅(qū)動(dòng)程序行為 |
第五講 |
|
通過(guò)本課學(xué)習(xí),學(xué)員可掌握嵌入式Linux顯示驅(qū)動(dòng)程序的開(kāi)發(fā)方法,理解嵌入式Linux圖形驅(qū)動(dòng)程序?qū)崿F(xiàn)機(jī)制,能夠移植或編寫(xiě)嵌入式顯示控制器驅(qū)動(dòng)程序,并完成針對(duì)各種LCD硬件的定制。
|
|
5. LINUX幀緩沖驅(qū)動(dòng)程序開(kāi)發(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)
|
|
【實(shí)驗(yàn)】
1、熟悉FRAMEBUFFER驅(qū)動(dòng)的結(jié)構(gòu)
2、熟悉FRAMEBUFFER中的重要數(shù)據(jù)結(jié)構(gòu)
3、編寫(xiě)S3C2410彩色LCD控制器驅(qū)動(dòng)程序
4、熟悉控制屏幕顯示方法
|
第六講 |
|
通過(guò)本課學(xué)習(xí),學(xué)員可以了解MMC/SD卡的物理及電氣特性,熟悉相關(guān)的工作協(xié)議,并在此基礎(chǔ)上能夠移植或編寫(xiě)Linux下的MMC/SD控制器的驅(qū)動(dòng)程序。
|
|
6. LINUX下MMC/SD卡驅(qū)動(dòng)開(kāi)發(fā)
6.1 嵌入式系統(tǒng)中幾種常見(jiàn)存儲(chǔ)介質(zhì)的比較(NOR/NAND
FLASH、CF、MMC/SD)
6.2 MMC/SD卡物理及電氣規(guī)范簡(jiǎn)介
6.3 MMC/SD卡工作中的關(guān)鍵命令及關(guān)鍵結(jié)構(gòu)信息
6.4 S3C2410(S3C2440)中MMC/SDHOST控制器分析
6.5 LINUX中MMC/SD存儲(chǔ)卡驅(qū)動(dòng)程序結(jié)構(gòu)分析
6.6 S3C2410(S3C2440)中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ǔ)卡
|