嵌入式Linux应用开发编程基础教案任务18:字符设备驱动编程.docxVIP

  • 0
  • 0
  • 约1.8千字
  • 约 3页
  • 2026-02-04 发布于湖南
  • 举报

嵌入式Linux应用开发编程基础教案任务18:字符设备驱动编程.docx

长春职业技术学院课程教案首页

No.18

授课题目

任务18:字符设备驱动编程

教学单元

学时

2[]4[?]

教学目标

[知识目标]:

Linux系统设备驱动概念;

2.Linux内核模块编程;

3.字符设备驱动编程;

[能力目标]:

1.会Linux内核模块编程;

2.会字符设备驱动编程;

[素质目标]:

1.培养学生分析及解决问题能力;

2.培养学生具备嵌入式Linux开发的能力;

重点

难点

重点:内核模块编程

难点:字符设备驱动编程的流程

教学方法

讲授法、演示法、实验法

能力训练

(作业)

教学体会

授课班级

授课时间及地点

年月日(星期)第节,楼室

年月日(星期)第节,楼室

年月日(星期)第节,楼室

年月日(星期)第节,楼室

长春职业技术学院课程教案用纸

教学环节

教学内容

备注

课程导入

复习提问:

什么是ARP?

什么是广播?

什么是组播?

宣布本节课的主容:任务18:字符设备驱动编程

1.Linux系统设备驱动概念;●

2.Linux内核模块编程;●

3.字符设备驱动编程;★

(●为重点内容★为难点内容)

15’

复习提问

讲与听

一、Linux设备驱动概述

1.Linux系统设备驱动概念

设备驱动最通俗的解释就是“驱使硬件设备行动“。操作系统是通过各种驱动程序来驾驭硬件设备的,它为用户屏蔽了各种各样的设备,驱动硬件是操作系统最基本的功能,并提供统一的操作方式。

设备驱动程序是操作系统最基本的组成部分之一,在Linux内核源程序中占有60%以上。

Linux系统设备共分3类

字符设备

块设备

网络设备

2.Linux系统中的设备驱动程序有如下特点:

内核代码

内核接口

内核机制和服务

可装载

可设置

动态性

二、Linux内核模块编程

1.设备驱动和内核模块

Linux内核中采用可加载的模块化设计(LKMs,LoadableKernelModules),一般情况下编译的Linux内核是支持可插入式模块的,也就是将最基本的核心代码编译在内核中,其他的代码可以选择在内核中,或者编译为内核的模块文件。常见的驱动程序也是作为内核模块动态加载的。

被编译和加载的两种方式:

直接编译进Linux内核,随同Linux启动时加载;

编译成一个可加载和删除的模块

2、模块相关命令

lsmod列出当前系统加载的模块

rmmod将当前模块卸载

insmod、modprobe用于加载当前模块。但insmod不会自动解决依存关系,而modprobe可以根据模块间的依存关系以及/etc/modules.conf文件中的内容自动插入模块

mknod创建相关模块

3.Linux内核模块编程

(1)一个Linux内核模块程序结构主要由以下几个部分组成:

模块加载函数(必须)。

模块卸载函数(必须)。

模块许可证声明(必须)。

模块参数(可选)。

模块导出符号(可选)。

模块作者等信息声明(可选)。

三、字符设备驱动编程

1.字符设备驱动编写流程

2.重要的数据结构

3.设备驱动程序主要组成

40’

讲授法,演示法

练与做

互动交流

学生实训

实训18编写程序,实现字符设备驱动程序,加载并编译内核。

教师巡视指导,改错。

80’

实验法

结与拓

学生总结实验结果。

(1)学生完成习题,各小组阐述相关内容,提问。

(2)教师着重解决普遍存在的问题,答疑;学生反思,整理笔记。

(25分钟)

课堂总结

由学生发言进行总结,之后老师点评:

1.本次课程需要涉及的知识点

2.本次课程需要达到的目标

总结引申

(20分钟)

文档评论(0)

1亿VIP精品文档

相关文档