課程背景 |
開放的 Linux 受到廣泛的歡迎,得到越來越多公司的支持,但是阻礙 Linux 在各個領(lǐng)域廣泛應(yīng)用的主要因素就是內(nèi)核/驅(qū)動高端人才極度缺乏,Linux源代碼中85%是設(shè)備驅(qū)動,嵌入式系統(tǒng)中驅(qū)動程序更為重要,幾乎每一個嵌入式系統(tǒng)都是從驅(qū)動程序員手中調(diào)試出來的。然而面對巨大的市場需求,很難找到一家專門系統(tǒng)培訓Linux驅(qū)動工程師的培訓機構(gòu),因為培訓難度大,對老師的經(jīng)驗和知識面要求高,大部分培訓機構(gòu)的課程僅僅對Linux 淺嘗即止,難以達到培養(yǎng) Linux 高水平人才的目的。
嵌入式linux驅(qū)動培訓是華清遠見的課程,本課程融合了講師多年的項目開發(fā)經(jīng)驗,這些經(jīng)驗無疑是學員短期內(nèi)提升驅(qū)動開發(fā)水平有效的捷徑。 |
課程目標 |
驅(qū)動程序開發(fā)是嵌入式Linux項目中工作量大的一部分內(nèi)容,開發(fā)出高質(zhì)量的驅(qū)動程序是項目成功的關(guān)鍵。隨著產(chǎn)品上市周期的縮短,市場對于驅(qū)動程序開發(fā)人員的要求也在日益增加。 本課程旨在培養(yǎng)具備開發(fā)Linux下驅(qū)動程序的人才,采用理論教學與實驗相結(jié)合的方式,系統(tǒng)地介紹Linux下設(shè)備驅(qū)動程序開發(fā)的基本技術(shù)。通過本課程的學習,學員可以掌握Linux下字符設(shè)備、塊設(shè)備、網(wǎng)絡(luò)設(shè)備的驅(qū)動程序開發(fā),同時掌握嵌入式Linux的系統(tǒng)開發(fā)和分析方法。 |
培養(yǎng)對象 |
Linux系統(tǒng)驅(qū)動開發(fā)工程師、Linux中高級軟件工程師以及內(nèi)核開發(fā)人員。 |
入學要求 |
學員學習本課程應(yīng)具備下列基礎(chǔ)知識:
◆ 熟練使用Linux操作系統(tǒng),如學員具有一定的Linux內(nèi)核閱讀經(jīng)驗,效果會更好;
◆ 熟悉C語言,熟悉指針、結(jié)構(gòu)體等概念;
◆ 了解接口電路和數(shù)字電路的知識,好具有電路設(shè)計經(jīng)驗。 |
師資團隊 |
【王 輝】
● 講師,7年嵌入式開發(fā)經(jīng)驗,針對多款硬件平臺(PowerPC8xx,Xscale,s3c2410,s3c2440,Mx1,Mx21,Mips,Parisc)進行嵌入式Linux裁減及移植工作,對其它嵌入式操作系統(tǒng)(eCos,WindowsCE)也有深入的研究。同時具有深厚的硬件功底,獨自一人完成過上述多款平臺從電路圖設(shè)計,pcb布線,裸板的調(diào)試,bootloader編寫,操作系統(tǒng)(linux、WindowsCE)移植及驅(qū)動開發(fā),上層開發(fā)庫及應(yīng)用的移植一整套開發(fā)工作。
■ 點擊此處在線試聽王老師新授課視頻>>>
【宋寶華】
● 講師,多年嵌入式系統(tǒng)從業(yè)經(jīng)驗,熟悉嵌入式系統(tǒng)軟硬件設(shè)計的全過程,有豐富的嵌入式系統(tǒng)硬件設(shè)計經(jīng)驗,精通嵌入式Linux、Vxworks操作系統(tǒng),尤其擅長Linux設(shè)備驅(qū)動開發(fā),原創(chuàng)性地完成多種設(shè)備的驅(qū)動程序的開發(fā)。曾指導完成多個大型嵌入式項目的軟硬件設(shè)計,涉及通信、網(wǎng)絡(luò)、控制等領(lǐng)域。對嵌入式系統(tǒng)移植有很強的經(jīng)驗,曾在X86/ARM//PowerPC等體系結(jié)構(gòu)平臺上移植Linux內(nèi)核、VxWorks系統(tǒng)。著有《Linux設(shè)備驅(qū)動開發(fā)詳解》一書。
【周 明】
● 講師,具有10年嵌入式技術(shù)從業(yè)經(jīng)驗和6年嵌入式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的實時性和Montavista Linux的特點有深入研究。
■ 點擊此處在線試聽周老師新授課視頻>>>
更多師資力量請參見華清遠見師資團隊。 |
教材 |
◆
《華清遠見-嵌入式Linux驅(qū)動開發(fā)培訓講義》
◆
《Linux設(shè)備驅(qū)動開發(fā)詳解》(2008.01出版) 華清遠見 編著
|
班級規(guī)模及環(huán)境 |
為了保證培訓效果,增加互動環(huán)節(jié),我們堅持小班授課,每期報名人數(shù)限15人,多余人員安排到下一期進行。人手一套開發(fā)板和開發(fā)用的PC主機。 >>單擊查看實驗設(shè)備 |
時間地點 |
北京總部(滾動開班):
上課地點:北京清華大學
周末班(周六日上課):2008年7月19日,2008年8月23日,2008年9月6日
連續(xù)班(連續(xù)上課):2008年7月19日,2008年8月23日,2008年9月6日
上海分中心(滾動開班):
上課地點:上海徐匯區(qū)銀海大廈A座2層
周末班(周六日上課):2008年7月5日,2008年9月6日,2008年9月27日
連續(xù)班(連續(xù)上課):2008年7月5日,2008年9月6日,2008年9月27日
深圳分中心(滾動開班):
上課地點:深圳大學
周末班(周六日上課):2008年9月20日,2008年11月15日
連續(xù)班(連續(xù)上課):2008年9月20日,2008年11月15日
本課程每期班限額15名,報滿即停止報名,請?zhí)崆霸诰或電話預約
華清遠見保留開課時間調(diào)整的權(quán)利,歡迎來電洽詢
|
學時費用 |
◆課時: 共4天,每天6學時,總計24學時
◆培訓費用(含教材費):2800元,個人自費(2500元),學生自費(1900元,憑有效證件)
◆認證費(可選):300元(項目考核通過,頒發(fā)由軟件行業(yè)協(xié)會嵌入式分會認證的《Linux設(shè)備驅(qū)動開發(fā)初級工程師》證書) >>單擊查看證書樣本
◆外地學員:代理安排食宿(需提前預定)
單擊查看退費規(guī)定說明>>>
|
新優(yōu)惠 |
◆團體報名優(yōu)惠措施:兩人95折優(yōu)惠,三人或三人以上9折優(yōu)惠
|
質(zhì)量保障 |
1、培訓過程中,如有部分內(nèi)容理解不透或消化不好,可免費在下期培訓班中重聽;
2、培訓結(jié)束后免費提供一個月的技術(shù)支持,充分保證培訓后出效果;
3、培訓合格學員可享受免費推薦就業(yè)機會。
|
課程進度安排(新更新日期:2008.01.10) |
時間 |
課程大綱 |
第一天 |
學習目標 |
通過Linux字符設(shè)備驅(qū)動程序開發(fā)內(nèi)容的學習,學員可以從用戶設(shè)備I/O編程角度深入了解設(shè)備驅(qū)動的原理。通過內(nèi)核模塊編程,掌握Linux內(nèi)核的開發(fā)和設(shè)備驅(qū)動模型等基礎(chǔ)知識。通過了解字符設(shè)備驅(qū)動框架和具體硬件設(shè)備I/O操作,能夠進行字符設(shè)備驅(qū)動開發(fā)。
|
9:00
|
12:00 |
1. LINUX字符設(shè)備驅(qū)動程序開發(fā)
1.1 LINUX內(nèi)核結(jié)構(gòu)
1.2 LINUX內(nèi)核配置與編譯
1.3 LINUX內(nèi)核模塊編程與加載
1.4 LINUX-2.6設(shè)備驅(qū)動模型與SYSFS文件系統(tǒng)
1.5 LINUX設(shè)備驅(qū)動程序基礎(chǔ)與設(shè)備I/O
1.6 LINUX字符設(shè)備驅(qū)動基礎(chǔ)
1.7 字符設(shè)備驅(qū)動程序?qū)崿F(xiàn)框架與典型驅(qū)動分析
1.8 用戶空間與內(nèi)核空間的數(shù)據(jù)傳輸
1.9 阻塞與非阻塞I/O設(shè)計
|
13:00
|
16:00 |
【實驗】
1、驅(qū)動開發(fā)編程環(huán)境與內(nèi)核配置、編譯
2、編寫模塊化字符設(shè)備驅(qū)動程序與測試
3、如何為內(nèi)核程序傳遞參數(shù)
4、蜂鳴器驅(qū)動程序編寫與測試
5、阻塞型字符設(shè)備驅(qū)動編寫與測試
|
第二天 |
學習目標 |
通過字符設(shè)備驅(qū)動程序開發(fā)高級篇的學習,學員能夠進行復雜的字符設(shè)備驅(qū)動程序開發(fā),包括掌握設(shè)備硬件中斷服務(wù)程序編寫、操作延遲與中斷上下部的編程以及掌握內(nèi)核空間內(nèi)存的使用等。
|
9:00
|
12:00 |
2. LINUX字符設(shè)備驅(qū)動程序高級開發(fā)
2.1 LINUX內(nèi)核中斷子系統(tǒng)
2.2 中斷處理程序編寫
2.3 驅(qū)動程序上/下半部處理與延緩執(zhí)行機制
2.4 內(nèi)核定時器與延遲機制
2.5 內(nèi)核地址空間與內(nèi)存使用
2.6 內(nèi)核與驅(qū)動程序調(diào)試
|
13:00
|
16:00 |
【實驗】
1、編寫一個簡單的驅(qū)動程序,使用3種內(nèi)存分配機制
2、掃描鍵盤的驅(qū)動原理
3、內(nèi)核定時器的使用
4、編寫帶中斷支持的掃描鍵盤驅(qū)動
5、上下部支持的鍵盤驅(qū)動編寫
|
第三天 |
學習目標 |
塊設(shè)備常用于存儲,如閃存等。通過這一天塊設(shè)備驅(qū)動程序開發(fā)的學習,學員能夠明白Linux中塊設(shè)備驅(qū)動的特點及框架,獨立分析Linux中大部分塊設(shè)備的驅(qū)動方法,并熟悉MTD設(shè)備驅(qū)動的特點與框架,具備MTD Nand Flash驅(qū)動程序開發(fā)的能力。通過實驗,學員還可以掌握IDE、Ramdisk驅(qū)動移植方法。
|
9:00
|
12:00 |
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ū)動分析
|
13:00
|
16:00 |
【實驗】
1、編寫簡單的塊設(shè)備驅(qū)動程序
2、實現(xiàn)RAMDISK驅(qū)動
3、IDE硬盤的驅(qū)動移植
4、移植S3C2410 閃存控制器驅(qū)動
5、配置MTD內(nèi)核選項
6、移植嵌入式文件系統(tǒng)
|
第四天 |
學習目標 |
網(wǎng)絡(luò)設(shè)備是嵌入式產(chǎn)品開發(fā),特別是基于網(wǎng)絡(luò)的產(chǎn)品開發(fā)中必須掌握的一種設(shè)備。通過Linux網(wǎng)絡(luò)設(shè)備驅(qū)動程序開發(fā)的學習,學員將深入理解Linux網(wǎng)絡(luò)驅(qū)動程序中有關(guān)套接字(socket)、套接字緩沖區(qū)(sk_buff)等概念,了解網(wǎng)絡(luò)驅(qū)動程序的數(shù)據(jù)交換過程。通過實際的動手操作,學員將掌握如何移植或編寫具體網(wǎng)卡的驅(qū)動程序,并在此基礎(chǔ)上實現(xiàn)更為高級的網(wǎng)絡(luò)功能。
|
9:00
|
12:00 |
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) |
13:00
|
16:00 |
【實驗】
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ū)動程序行為 |