《嵌入式linux驅(qū)動(dòng)開(kāi)發(fā)》教學(xué)大綱
課程名稱:
| 嵌入式linux驅(qū)動(dòng)開(kāi)發(fā)
|
|
|
課程編號(hào):
| 408310
| 436315
|
|
適用專業(yè):
| 計(jì)算機(jī)科學(xué)與技術(shù)
| 軟件工程
|
|
課程類別:
| 嵌入式方向限選課
| 嵌入式方向限選課
|
|
課程學(xué)分:
| 3
| 3
|
|
總學(xué)時(shí):
| 54
| 54
|
|
其中:理論學(xué)時(shí)
| 28
| 28
|
|
式實(shí)驗(yàn)學(xué)時(shí)
| 26
| 26
|
|
先修課程:
| 嵌入式linux操作系統(tǒng)、ARM嵌入式體系結(jié)構(gòu)與接口技術(shù)、嵌入linux式應(yīng)用程序開(kāi)發(fā)、嵌入式linux系統(tǒng)開(kāi)發(fā)
|
一、課程的性質(zhì)、目的與任務(wù)
《嵌入式Linux驅(qū)動(dòng)程序開(kāi)發(fā)》是嵌入式系統(tǒng)開(kāi)發(fā)中講解Linux設(shè)備驅(qū)動(dòng)程序開(kāi)發(fā)方法和技術(shù)的課程, Linux驅(qū)動(dòng)程序開(kāi)發(fā)是嵌入式Linux項(xiàng)目中工作量最大的一部分內(nèi)容。本課程內(nèi)容包括Linux驅(qū)動(dòng)程序基礎(chǔ)、內(nèi)核移植、總線驅(qū)動(dòng)程序、LCD驅(qū)動(dòng)程序、網(wǎng)絡(luò)驅(qū)動(dòng)程序、輸入子系統(tǒng)驅(qū)動(dòng)程序、塊設(shè)備驅(qū)動(dòng)程序等。
通過(guò)本實(shí)驗(yàn)課程,掌握嵌入式Linux字符設(shè)備驅(qū)動(dòng)開(kāi)發(fā)和分析的方法,具體應(yīng)達(dá)到以下幾個(gè)教學(xué)目的:
(1)嵌入式Linux字符設(shè)備驅(qū)動(dòng)開(kāi)發(fā);
(2)嵌入式Linux下塊設(shè)備驅(qū)動(dòng)開(kāi)發(fā);
(3)掌握嵌入式Linux下網(wǎng)絡(luò)設(shè)備驅(qū)動(dòng)開(kāi)發(fā);
(4)掌握嵌入式Linux下PCI、LCD顯示屏設(shè)備驅(qū)動(dòng)開(kāi)發(fā);
(5)掌握嵌入式Linux下觸摸屏設(shè)備驅(qū)動(dòng)開(kāi)發(fā);
(6)掌握嵌入式Linux下和USB設(shè)備驅(qū)動(dòng)開(kāi)發(fā)。
二、課程教學(xué)基本內(nèi)容與要求
第一章 嵌入式系統(tǒng)與驅(qū)動(dòng)程序
(一)教學(xué)內(nèi)容
1.1 嵌入式系統(tǒng)概述
1.2 嵌入式處理器介紹
1.3 嵌入式操作系統(tǒng)介紹
1.4 嵌入式Linux驅(qū)動(dòng)程序
(二)基本要求
教學(xué)目的:理解嵌入式系統(tǒng)的特點(diǎn)和體系結(jié)構(gòu),理解主流嵌入式操作系統(tǒng)和嵌入式處理器,理解嵌入式Linux的文件系統(tǒng)、設(shè)備管理和驅(qū)動(dòng)程序。
教學(xué)重點(diǎn):嵌入式系統(tǒng)的特點(diǎn)和體系結(jié)構(gòu),主流嵌入式操作系統(tǒng),嵌入式Linux的文件系統(tǒng)、設(shè)備管理和驅(qū)動(dòng)程序。
教學(xué)難點(diǎn):嵌入式Linux的文件系統(tǒng)、設(shè)備管理和驅(qū)動(dòng)程序。
第二章 簡(jiǎn)單的字符設(shè)備驅(qū)動(dòng)程序
(一)教學(xué)內(nèi)容
2.1 嵌入式Linux字符設(shè)備的驅(qū)動(dòng)程序結(jié)構(gòu)
2.2 設(shè)備驅(qū)動(dòng)程序中的具體問(wèn)題
2.3 LED的驅(qū)動(dòng)程序?qū)嵗皽y(cè)試
2.4 嵌入式Linux中斷處理驅(qū)動(dòng)程序及測(cè)試
2.5 按鍵中斷的驅(qū)動(dòng)程序?qū)嵗?/p>
(二)基本要求
教學(xué)目的:理解嵌入式系統(tǒng)的特點(diǎn)和體系結(jié)構(gòu),理解主流嵌入式操作系統(tǒng)和嵌入式處理器,理解嵌入式Linux的文件系統(tǒng)、設(shè)備管理和驅(qū)動(dòng)程序。
教學(xué)重點(diǎn):嵌入式Linux驅(qū)動(dòng)程序常用的頭文件、 File_operations結(jié)構(gòu)體、字符設(shè)備驅(qū)動(dòng)程序的入口和驅(qū)動(dòng)程序的設(shè)備及注冊(cè),I/O端口、內(nèi)存操作和中斷處理, LED的驅(qū)動(dòng)程序設(shè)計(jì)、按鍵中斷的驅(qū)動(dòng)設(shè)計(jì)實(shí)現(xiàn)。
教學(xué)難點(diǎn):LED的驅(qū)動(dòng)程序設(shè)計(jì)、按鍵中斷的驅(qū)動(dòng)設(shè)計(jì)實(shí)現(xiàn)。
第三章 數(shù)字顯示驅(qū)動(dòng)程序
(一)教學(xué)內(nèi)容
3.1 數(shù)字顯示器
3.2 數(shù)碼管顯示電路的硬件設(shè)計(jì)
3.3 數(shù)碼管驅(qū)動(dòng)程序?qū)嵗?/p>
3.4 數(shù)碼管顯示電路測(cè)試程序設(shè)計(jì)
(二)基本要求
教學(xué)目的:掌握數(shù)字顯示器的顯示原理,硬件設(shè)計(jì)和驅(qū)動(dòng)程序設(shè)計(jì)方法。
教學(xué)重點(diǎn):串/并變換的譯碼設(shè)計(jì)、譯碼器的使用、數(shù)碼管的驅(qū)動(dòng)方式、數(shù)碼管顯示原理和驅(qū)動(dòng)程序設(shè)計(jì)及數(shù)碼管電路測(cè)試程序設(shè)計(jì)實(shí)現(xiàn)。
教學(xué)難點(diǎn):數(shù)碼管的驅(qū)動(dòng)程序設(shè)計(jì)及數(shù)碼管電路測(cè)試程序設(shè)計(jì)實(shí)現(xiàn)。
第四章 鍵盤驅(qū)動(dòng)程序
(一)教學(xué)內(nèi)容
4.1 鍵盤接口概述
4.2 鍵盤的驅(qū)動(dòng)設(shè)計(jì)實(shí)例
4.3 智能控制芯片HD7279擴(kuò)展鍵盤
(二)基本要求
教學(xué)目的:掌握鍵盤接口工作原理和驅(qū)動(dòng)程序設(shè)計(jì)方法。
教學(xué)重點(diǎn):鍵盤接口工作原理,鎖存器和緩沖器擴(kuò)展鍵盤測(cè)試程序設(shè)計(jì)和驅(qū)動(dòng)程序設(shè)計(jì)
教學(xué)難點(diǎn):鎖存器和緩沖器擴(kuò)展鍵盤測(cè)試程序設(shè)計(jì)和驅(qū)動(dòng)程序設(shè)計(jì)。
第七章 LCD驅(qū)動(dòng)程序
(一)教學(xué)內(nèi)容
7.1 LCD顯示器概述
7.2 LCD的顯示接口
7.3 嵌入式處理器的LCD控制器
7.4 LCD的驅(qū)動(dòng)程序設(shè)計(jì)
7.5 基于Framebuffer的LCD驅(qū)動(dòng)程序?qū)嵗?/p>
(二)基本要求
教學(xué)目的:理解LCD顯示器的基本概念、顯示原理,掌握LCD測(cè)試程序設(shè)計(jì)和驅(qū)動(dòng)程序設(shè)計(jì)。
教學(xué)重點(diǎn):LCD的顯示原理、LCD的驅(qū)動(dòng)方式、TFT的時(shí)序、LCD控制器的設(shè)置、基于Framebuffer的LCD測(cè)試程序驅(qū)動(dòng)程序設(shè)計(jì)實(shí)現(xiàn)。
教學(xué)難點(diǎn):基于Framebuffer的LCD測(cè)試程序驅(qū)動(dòng)程序設(shè)計(jì)實(shí)現(xiàn)。
第八章 觸摸屏驅(qū)動(dòng)程序
(一)教學(xué)內(nèi)容
8.1 觸摸屏概述
8.2 觸摸屏的分類
8.3 觸摸屏的特性
8.4 觸摸屏的硬件電路設(shè)計(jì)
8.5 觸摸屏的驅(qū)動(dòng)程序?qū)嵗?/p>
8.6 測(cè)試程序的設(shè)計(jì)
(二)基本要求
教學(xué)目的:理解觸摸屏的基本概念、工作原理,掌握觸摸屏測(cè)試和驅(qū)動(dòng)程序設(shè)計(jì)。
教學(xué)重點(diǎn):觸摸屏的分類特點(diǎn),電阻式觸摸屏的電路原理、定位和電路連接,觸摸屏的坐標(biāo)、接口的模式和電路連接,觸摸屏的驅(qū)動(dòng)程序接口、觸摸屏測(cè)試程序驅(qū)動(dòng)程序設(shè)計(jì)實(shí)現(xiàn)。
教學(xué)難點(diǎn):觸摸屏測(cè)試和驅(qū)動(dòng)程序設(shè)計(jì)實(shí)現(xiàn)。
第九章 CAN總線驅(qū)動(dòng)程序
(一)教學(xué)內(nèi)容
9.1 CAN總線接口設(shè)計(jì)
9.2 嵌入式處理器上CAN總線接口的擴(kuò)展
9.3 SJA1000擴(kuò)展CAN總線接口的設(shè)計(jì)
9.4 SJA1000擴(kuò)展CAN總線接口的通信
9.5 驅(qū)動(dòng)程序的加載
(二)基本要求
教學(xué)目的:理解CAN總線接口的基本概念、工作原理,掌握CAN總線接口的設(shè)計(jì)和通過(guò)CAN總線建立通信的步驟。
教學(xué)重點(diǎn):CAN總線的電氣特征和MAC幀結(jié)構(gòu),CAN控制器SJA1000的操作模式、特征功能和Basic CAN模式設(shè)置,通過(guò)CAN總線建立通信的步驟,SJA1000的初始化,驅(qū)動(dòng)程序的結(jié)構(gòu)設(shè)計(jì),init、exit、open、close、read、write、interrupt、ioctl函數(shù)實(shí)現(xiàn)。
教學(xué)難點(diǎn):CAN總線建立通信的實(shí)現(xiàn)。
第十章 IIC總線驅(qū)動(dòng)程序
(一)教學(xué)內(nèi)容
10.1 IIC總線概述
10.2 嵌入式處理器的IIC接口
10.3 基于IIC的鍵盤芯片應(yīng)用
10.4 IIC總線驅(qū)動(dòng)程序?qū)嵗?/p>
10.5 IIC總線的測(cè)試程序
(二)基本要求
教學(xué)目的:理解IIC總線的基本概念、工作原理,掌握IIC總線測(cè)試程序設(shè)計(jì)和驅(qū)動(dòng)程序設(shè)計(jì)。
教學(xué)重點(diǎn):IIC總線的基本結(jié)構(gòu)、IIC總線的競(jìng)爭(zhēng)仲裁和工作流程,嵌入式處理器的IIC總線控制寄存器、I狀態(tài)寄存器、地址寄存器和移位數(shù)據(jù)寄存器,S3C2410中與IIC對(duì)應(yīng)的I/O端口,IIC總線驅(qū)動(dòng)程序和測(cè)試程序?qū)嵗?/p>
教學(xué)難點(diǎn):IIC總線測(cè)試和驅(qū)動(dòng)程序設(shè)計(jì)實(shí)現(xiàn)。
第十四章 串口驅(qū)動(dòng)程序
(一)教學(xué)內(nèi)容
15.1 串口概述
15.2 嵌入式處理器串口控制器
15.3 嵌入式Linux串口驅(qū)動(dòng)程序設(shè)計(jì)
15.4 嵌入式Linux串口的應(yīng)用程序設(shè)計(jì)
(二)基本要求
教學(xué)目的:理解串口的基本概念、工作原理,掌握串口驅(qū)動(dòng)程序設(shè)計(jì)方法。
教學(xué)重點(diǎn):異步串口的傳輸標(biāo)準(zhǔn)、嵌入式系統(tǒng)中常用的UART控制器、USB測(cè)試和驅(qū)動(dòng)程序設(shè)計(jì)。
教學(xué)難點(diǎn):串口驅(qū)動(dòng)程序設(shè)計(jì)方法。
第十五章 USB設(shè)備驅(qū)動(dòng)程序
(一)教學(xué)內(nèi)容
14.1 USB接口概述
14.2 嵌入式系統(tǒng)中USB的使用
14.3 嵌入式系統(tǒng)中USB設(shè)備的驅(qū)動(dòng)程序設(shè)計(jì)
14.4 USB驅(qū)動(dòng)程序測(cè)試331
(二)基本要求
教學(xué)目的:理解USB接口的基本概念、工作原理和在嵌入式系統(tǒng)中的使用,掌握觸摸屏測(cè)試程序設(shè)計(jì)和驅(qū)動(dòng)程序設(shè)計(jì)。
教學(xué)重點(diǎn):USB的電氣特性和通信協(xié)議,USB驅(qū)動(dòng)的骨架程序,Host接口硬件設(shè)計(jì),USB測(cè)試程序驅(qū)動(dòng)程序設(shè)計(jì)。
教學(xué)難點(diǎn):USB接口測(cè)試和驅(qū)動(dòng)程序設(shè)計(jì)。
第十六章 網(wǎng)絡(luò)設(shè)備驅(qū)動(dòng)程序
(一)教學(xué)內(nèi)容
16.1 以太網(wǎng)概述
16.2 嵌入式處理器的以太網(wǎng)接口
16.3 以太網(wǎng)驅(qū)動(dòng)程序體系結(jié)構(gòu)
16.4 網(wǎng)卡驅(qū)動(dòng)程序?qū)嵗?/p>
16.5 網(wǎng)絡(luò)驅(qū)動(dòng)程序的測(cè)試
(二)基本要求
教學(xué)目的:理解以太網(wǎng)的基本概念、以太網(wǎng)的工作原理和以太網(wǎng)驅(qū)動(dòng)程序體系結(jié)構(gòu),掌握網(wǎng)卡測(cè)試驅(qū)動(dòng)程序設(shè)計(jì)方法。
教學(xué)重點(diǎn):以太網(wǎng)的工作原理、幀結(jié)構(gòu),TCP/IP網(wǎng)絡(luò)協(xié)議,網(wǎng)絡(luò)驅(qū)動(dòng)程序的結(jié)構(gòu),網(wǎng)絡(luò)設(shè)備初始化,數(shù)據(jù)包的發(fā)送與接收,網(wǎng)絡(luò)設(shè)備的加載方式,網(wǎng)卡測(cè)試和驅(qū)動(dòng)程序設(shè)計(jì)實(shí)現(xiàn)。
教學(xué)難點(diǎn):網(wǎng)卡測(cè)試和驅(qū)動(dòng)程序設(shè)計(jì)實(shí)現(xiàn)。
三、課程各章節(jié)學(xué)時(shí)分配
序號(hào)
| 內(nèi)容
| 理論學(xué)時(shí)
| 實(shí)驗(yàn)學(xué)時(shí)
|
計(jì)科
| 軟工
| 計(jì)科
| 軟工
|
1
| 嵌入式系統(tǒng)與驅(qū)動(dòng)程序
| 2
| 2
| 0
| 0
|
2
| 簡(jiǎn)單的字符設(shè)備驅(qū)動(dòng)程序
| 6
| 6
| 6
| 6
|
3
| 數(shù)字顯示驅(qū)動(dòng)程序
| 2
| 2
| 2
| 2
|
4
| 鍵盤驅(qū)動(dòng)程序
| 2
| 2
| 2
| 2
|
5
| LCD驅(qū)動(dòng)程序
| 2
| 2
| 2
| 2
|
6
| 觸摸屏驅(qū)動(dòng)程序
| 3
| 3
| 3
| 3
|
7
| CAN總線驅(qū)動(dòng)程序
| 2
| 2
| 2
| 2
|
8
| IIC總線驅(qū)動(dòng)程序
| 3
| 3
| 2
| 2
|
9
| 串口驅(qū)動(dòng)程序
| 2
| 2
| 3
| 3
|
10
| USB設(shè)備驅(qū)動(dòng)程序
| 2
| 2
| 2
| 2
|
11
| 網(wǎng)絡(luò)設(shè)備驅(qū)動(dòng)程
| 2
| 2
| 2
| 2
|
合計(jì)
| 28
| 28
| 26
| 26
|
四、本課程課外學(xué)習(xí)與修學(xué)指導(dǎo)
(1)、該課程是一門綜合性很強(qiáng)的課程,所以要多參考相關(guān)書籍,做到能系統(tǒng)的撐握相關(guān)知識(shí),包括微機(jī)原理與接口技術(shù),ARM體系結(jié)構(gòu)與編程、linux內(nèi)核等。
(2)、Linux驅(qū)動(dòng)的開(kāi)發(fā)需要牢固的硬件基礎(chǔ),并需要對(duì)驅(qū)動(dòng)中所涉及的Linux內(nèi)核知識(shí)有良好的掌握,在有限的實(shí)驗(yàn)課時(shí)以外,多實(shí)踐練習(xí)。鍛煉嵌入式驅(qū)動(dòng)程序開(kāi)發(fā)的基本技能和方法,為后續(xù)學(xué)習(xí)打下基礎(chǔ)。
(3)、嵌入式驅(qū)動(dòng)程序源代碼,大多是開(kāi)源的。所以在進(jìn)行設(shè)計(jì)過(guò)程中,課外多下載閱讀分析相關(guān)源代碼,做到個(gè)性化開(kāi)發(fā)。
五、本課程考核方式及成績(jī)?cè)u(píng)定標(biāo)準(zhǔn)
考核方式:閉卷考試
成績(jī)?cè)u(píng)定方法:本課程的考核是平時(shí)成績(jī)、實(shí)驗(yàn)成績(jī)和期終考試成績(jī)相結(jié)合。具體比例為:上課出勤、作業(yè)占20%,實(shí)驗(yàn)占20%,期末考試成績(jī)占60%。
其中期未考試總分100分,基礎(chǔ)題占50%,中等難度題占40%,較難題占10%??荚囶}型主要有:選擇題、填空題、判斷題、簡(jiǎn)答題、分析設(shè)計(jì)題等。
六、教材及參考書
1、教材:宋寶華. Linux設(shè)備驅(qū)動(dòng)開(kāi)發(fā)詳解.北京:人民郵電出版社,2008
2、主要參考書:
[1]劉洪濤,孫天澤.嵌入式系統(tǒng)技術(shù)與設(shè)計(jì).北京:人民郵電出版社,2008
[2] aniel P.Bovet;Marco Cesati著.陳莉君,張瓊聲,張宏偉譯,深入linux內(nèi)核(第三版).北京:中國(guó)電力出版社,2007
[3] [美]Christopher Halinan.嵌入式Linux開(kāi)發(fā)(英文版).北京:人民郵電出版社,2008
[4]羅克露,陳云川.嵌入式軟件調(diào)試技術(shù).北京:電子工業(yè)出版社,2009
[5] [英]Neil Matthew;Richard Stones著.陳健,宋健建譯.linux程序設(shè)計(jì)(第三版).北京:人民郵電出版社,2009
[6]華清遠(yuǎn)見(jiàn)嵌入式培訓(xùn)中心主編,Linux設(shè)備驅(qū)動(dòng)開(kāi)發(fā)詳解(第2版).北京:人民郵電出版社,2010
大綱撰寫人: 劉澤平
大綱審閱人: 袁輝勇
教學(xué)副主任: 易葉青
編寫日期:2012.6