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