《嵌入式linux驱动开发》教学大纲
课程名称:
| 嵌入式linux驱动开发
|
|
|
课程编号:
| 408310
| 436315
|
|
适用专业:
| 计算机科学与技术
| 软件工程
|
|
课程类别:
| 嵌入式方向限选课
| 嵌入式方向限选课
|
|
课程学分:
| 3
| 3
|
|
总学时:
| 54
| 54
|
|
其中:理论学时
| 28
| 28
|
|
式实验学时
| 26
| 26
|
|
先修课程:
| 嵌入式linux操作系统、ARM嵌入式体系结构与接口技术、嵌入linux式应用程序开发、嵌入式linux系统开发
|
一、课程的性质、目的与任务
《嵌入式Linux驱动程序开发》是嵌入式系统开发中讲解Linux设备驱动程序开发方法和技术的课程, Linux驱动程序开发是嵌入式Linux项目中工作量最大的一部分内容。本课程内容包括Linux驱动程序基础、内核移植、总线驱动程序、LCD驱动程序、网络驱动程序、输入子系统驱动程序、块设备驱动程序等。
通过本实验课程,掌握嵌入式Linux字符设备驱动开发和分析的方法,具体应达到以下几个教学目的:
(1)嵌入式Linux字符设备驱动开发;
(2)嵌入式Linux下块设备驱动开发;
(3)掌握嵌入式Linux下网络设备驱动开发;
(4)掌握嵌入式Linux下PCI、LCD显示屏设备驱动开发;
(5)掌握嵌入式Linux下触摸屏设备驱动开发;
(6)掌握嵌入式Linux下和USB设备驱动开发。
二、课程教学基本内容与要求
第一章 嵌入式系统与驱动程序
(一)教学内容
1.1 嵌入式系统概述
1.2 嵌入式处理器介绍
1.3 嵌入式操作系统介绍
1.4 嵌入式Linux驱动程序
(二)基本要求
教学目的:理解嵌入式系统的特点和体系结构,理解主流嵌入式操作系统和嵌入式处理器,理解嵌入式Linux的文件系统、设备管理和驱动程序。
教学重点:嵌入式系统的特点和体系结构,主流嵌入式操作系统,嵌入式Linux的文件系统、设备管理和驱动程序。
教学难点:嵌入式Linux的文件系统、设备管理和驱动程序。
第二章 简单的字符设备驱动程序
(一)教学内容
2.1 嵌入式Linux字符设备的驱动程序结构
2.2 设备驱动程序中的具体问题
2.3 LED的驱动程序实例及测试
2.4 嵌入式Linux中断处理驱动程序及测试
2.5 按键中断的驱动程序实例
(二)基本要求
教学目的:理解嵌入式系统的特点和体系结构,理解主流嵌入式操作系统和嵌入式处理器,理解嵌入式Linux的文件系统、设备管理和驱动程序。
教学重点:嵌入式Linux驱动程序常用的头文件、 File_operations结构体、字符设备驱动程序的入口和驱动程序的设备及注册,I/O端口、内存操作和中断处理, LED的驱动程序设计、按键中断的驱动设计实现。
教学难点:LED的驱动程序设计、按键中断的驱动设计实现。
第三章 数字显示驱动程序
(一)教学内容
3.1 数字显示器
3.2 数码管显示电路的硬件设计
3.3 数码管驱动程序实例
3.4 数码管显示电路测试程序设计
(二)基本要求
教学目的:掌握数字显示器的显示原理,硬件设计和驱动程序设计方法。
教学重点:串/并变换的译码设计、译码器的使用、数码管的驱动方式、数码管显示原理和驱动程序设计及数码管电路测试程序设计实现。
教学难点:数码管的驱动程序设计及数码管电路测试程序设计实现。
第四章 键盘驱动程序
(一)教学内容
4.1 键盘接口概述
4.2 键盘的驱动设计实例
4.3 智能控制芯片HD7279扩展键盘
(二)基本要求
教学目的:掌握键盘接口工作原理和驱动程序设计方法。
教学重点:键盘接口工作原理,锁存器和缓冲器扩展键盘测试程序设计和驱动程序设计
教学难点:锁存器和缓冲器扩展键盘测试程序设计和驱动程序设计。
第七章 LCD驱动程序
(一)教学内容
7.1 LCD显示器概述
7.2 LCD的显示接口
7.3 嵌入式处理器的LCD控制器
7.4 LCD的驱动程序设计
7.5 基于Framebuffer的LCD驱动程序实例
(二)基本要求
教学目的:理解LCD显示器的基本概念、显示原理,掌握LCD测试程序设计和驱动程序设计。
教学重点:LCD的显示原理、LCD的驱动方式、TFT的时序、LCD控制器的设置、基于Framebuffer的LCD测试程序驱动程序设计实现。
教学难点:基于Framebuffer的LCD测试程序驱动程序设计实现。
第八章 触摸屏驱动程序
(一)教学内容
8.1 触摸屏概述
8.2 触摸屏的分类
8.3 触摸屏的特性
8.4 触摸屏的硬件电路设计
8.5 触摸屏的驱动程序实例
8.6 测试程序的设计
(二)基本要求
教学目的:理解触摸屏的基本概念、工作原理,掌握触摸屏测试和驱动程序设计。
教学重点:触摸屏的分类特点,电阻式触摸屏的电路原理、定位和电路连接,触摸屏的坐标、接口的模式和电路连接,触摸屏的驱动程序接口、触摸屏测试程序驱动程序设计实现。
教学难点:触摸屏测试和驱动程序设计实现。
第九章 CAN总线驱动程序
(一)教学内容
9.1 CAN总线接口设计
9.2 嵌入式处理器上CAN总线接口的扩展
9.3 SJA1000扩展CAN总线接口的设计
9.4 SJA1000扩展CAN总线接口的通信
9.5 驱动程序的加载
(二)基本要求
教学目的:理解CAN总线接口的基本概念、工作原理,掌握CAN总线接口的设计和通过CAN总线建立通信的步骤。
教学重点:CAN总线的电气特征和MAC帧结构,CAN控制器SJA1000的操作模式、特征功能和Basic CAN模式设置,通过CAN总线建立通信的步骤,SJA1000的初始化,驱动程序的结构设计,init、exit、open、close、read、write、interrupt、ioctl函数实现。
教学难点:CAN总线建立通信的实现。
第十章 IIC总线驱动程序
(一)教学内容
10.1 IIC总线概述
10.2 嵌入式处理器的IIC接口
10.3 基于IIC的键盘芯片应用
10.4 IIC总线驱动程序实例
10.5 IIC总线的测试程序
(二)基本要求
教学目的:理解IIC总线的基本概念、工作原理,掌握IIC总线测试程序设计和驱动程序设计。
教学重点:IIC总线的基本结构、IIC总线的竞争仲裁和工作流程,嵌入式处理器的IIC总线控制寄存器、I状态寄存器、地址寄存器和移位数据寄存器,S3C2410中与IIC对应的I/O端口,IIC总线驱动程序和测试程序实例。
教学难点:IIC总线测试和驱动程序设计实现。
第十四章 串口驱动程序
(一)教学内容
15.1 串口概述
15.2 嵌入式处理器串口控制器
15.3 嵌入式Linux串口驱动程序设计
15.4 嵌入式Linux串口的应用程序设计
(二)基本要求
教学目的:理解串口的基本概念、工作原理,掌握串口驱动程序设计方法。
教学重点:异步串口的传输标准、嵌入式系统中常用的UART控制器、USB测试和驱动程序设计。
教学难点:串口驱动程序设计方法。
第十五章 USB设备驱动程序
(一)教学内容
14.1 USB接口概述
14.2 嵌入式系统中USB的使用
14.3 嵌入式系统中USB设备的驱动程序设计
14.4 USB驱动程序测试331
(二)基本要求
教学目的:理解USB接口的基本概念、工作原理和在嵌入式系统中的使用,掌握触摸屏测试程序设计和驱动程序设计。
教学重点:USB的电气特性和通信协议,USB驱动的骨架程序,Host接口硬件设计,USB测试程序驱动程序设计。
教学难点:USB接口测试和驱动程序设计。
第十六章 网络设备驱动程序
(一)教学内容
16.1 以太网概述
16.2 嵌入式处理器的以太网接口
16.3 以太网驱动程序体系结构
16.4 网卡驱动程序实例
16.5 网络驱动程序的测试
(二)基本要求
教学目的:理解以太网的基本概念、以太网的工作原理和以太网驱动程序体系结构,掌握网卡测试驱动程序设计方法。
教学重点:以太网的工作原理、帧结构,TCP/IP网络协议,网络驱动程序的结构,网络设备初始化,数据包的发送与接收,网络设备的加载方式,网卡测试和驱动程序设计实现。
教学难点:网卡测试和驱动程序设计实现。
三、课程各章节学时分配
序号
| 内容
| 理论学时
| 实验学时
|
计科
| 软工
| 计科
| 软工
|
1
| 嵌入式系统与驱动程序
| 2
| 2
| 0
| 0
|
2
| 简单的字符设备驱动程序
| 6
| 6
| 6
| 6
|
3
| 数字显示驱动程序
| 2
| 2
| 2
| 2
|
4
| 键盘驱动程序
| 2
| 2
| 2
| 2
|
5
| LCD驱动程序
| 2
| 2
| 2
| 2
|
6
| 触摸屏驱动程序
| 3
| 3
| 3
| 3
|
7
| CAN总线驱动程序
| 2
| 2
| 2
| 2
|
8
| IIC总线驱动程序
| 3
| 3
| 2
| 2
|
9
| 串口驱动程序
| 2
| 2
| 3
| 3
|
10
| USB设备驱动程序
| 2
| 2
| 2
| 2
|
11
| 网络设备驱动程
| 2
| 2
| 2
| 2
|
合计
| 28
| 28
| 26
| 26
|
四、本课程课外学习与修学指导
(1)、该课程是一门综合性很强的课程,所以要多参考相关书籍,做到能系统的撑握相关知识,包括微机原理与接口技术,ARM体系结构与编程、linux内核等。
(2)、Linux驱动的开发需要牢固的硬件基础,并需要对驱动中所涉及的Linux内核知识有良好的掌握,在有限的实验课时以外,多实践练习。锻炼嵌入式驱动程序开发的基本技能和方法,为后续学习打下基础。
(3)、嵌入式驱动程序源代码,大多是开源的。所以在进行设计过程中,课外多下载阅读分析相关源代码,做到个性化开发。
五、本课程考核方式及成绩评定标准
考核方式:闭卷考试
成绩评定方法:本课程的考核是平时成绩、实验成绩和期终考试成绩相结合。具体比例为:上课出勤、作业占20%,实验占20%,期末考试成绩占60%。
其中期未考试总分100分,基础题占50%,中等难度题占40%,较难题占10%。考试题型主要有:选择题、填空题、判断题、简答题、分析设计题等。
六、教材及参考书
1、教材:宋宝华. Linux设备驱动开发详解.北京:人民邮电出版社,2008
2、主要参考书:
[1]刘洪涛,孙天泽.嵌入式系统技术与设计.北京:人民邮电出版社,2008
[2] aniel P.Bovet;Marco Cesati著.陈莉君,张琼声,张宏伟译,深入linux内核(第三版).北京:中国电力出版社,2007
[3] [美]Christopher Halinan.嵌入式Linux开发(英文版).北京:人民邮电出版社,2008
[4]罗克露,陈云川.嵌入式软件调试技术.北京:电子工业出版社,2009
[5] [英]Neil Matthew;Richard Stones著.陈健,宋健建译.linux程序设计(第三版).北京:人民邮电出版社,2009
[6]华清远见嵌入式培训中心主编,Linux设备驱动开发详解(第2版).北京:人民邮电出版社,2010
大纲撰写人: 刘泽平
大纲审阅人: 袁辉勇
教学副主任: 易叶青
编写日期:2012.6