实验四报告 20135209潘恒 20135204郝智宇
北京电子科技学院(BESTI)
实 验 报 告
课程:信息安全系统设计基础 班级:1352
姓名: 潘恒 郝智宇
学号:20135209 20135204
成绩: 指导教师:娄嘉鹏 实验日期:2015.11.17
实验密级: 预习程度: 实验时间:15:30~17:30
仪器组次:04,09 必修/选修:必修 实验序号:04
实验名称: 5.1内核驱动设计入门-----模块方式驱动实验
实验目的与要求:
1.学习在Linux下进行驱动设计的原理;
2.掌握使用模块方式进行驱动开发调试的过程。
实验仪器:
名称 |
型号 |
数量 |
嵌入式实验平台 |
UP-TECH S2410/P270 |
1 |
PC机 |
|
1 |
实验内容、步骤与体会:
一、实验内容
在PC机上编写简单的虚拟硬件驱动程序并进行调试,实验驱动的各个接口函数的实现,分析并理解驱动与应用程序的交互过程。
二、实验步骤
- 阅读和理解源代码:
进入……/01_demo目录,使用vi编辑器或其他编辑器阅读理解源代码。
- 编译驱动模块及测试程序:
用交叉编译进行编译。
- 测试驱动程序:
因为使用的是交叉编译器,所以不需要建立设备节点。
首先插入驱动模块:
使用程序测试来进行测试,出现下面结果:
驱动模块成功插入,会在/dev下面建立一个叫做demo的设备文件,我们也可以使用cat命令来
直接调用read函数,来测试读过程,结果如下:
三、实验体会
本次试验过程中,我们小组遇到了大部分其他小组都遇到的问题,就是makefile的问题。一开始卡到这个点上无法进行下去,
后来对makefile进行了几次更正,终于编译成功。后面的步骤相对顺利。本次实验使我们充分理解驱动与应用程序的交互过程。
四、问题与理解
1.实验过程的理解:
(1)驱动程序可以用来干什么?
它是应用程序与硬件之间的一个中间软件层,驱动程序应该为应用程序展现硬件的所有功能,不应该强加其他约束,
对于硬件使用的权限和限制应该由应用程序层控制。
(2)Makefile的作用:
自动化编译。一旦写好,只需要一个make命令,整个工程完全自动编译,极大的提高了软件开发的效率
(3)驱动程序和应用程序有什么区别?
应用程序有main函数,驱动程序没有main函数;
应用程序可以包含标准的头文件
2.实验过程中遇到的问题以及解决方案
(1)问题:编译时出现如下情况,系统提示Error 1:
解决:
之所以会出现这样的问题,是因为Makefile不正确,我们根据老师给的Makefile,对本机的进行了修改,终于解决了该问题。