实验四报告 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机上编写简单的虚拟硬件驱动程序并进行调试,实验驱动的各个接口函数的实现,分析并理解驱动与应用程序的交互过程。

 

二、实验步骤

 

  1. 阅读和理解源代码:

进入……/01_demo目录,使用vi编辑器或其他编辑器阅读理解源代码。

 

  1. 编译驱动模块及测试程序:

用交叉编译进行编译。

 

  1. 测试驱动程序:

因为使用的是交叉编译器,所以不需要建立设备节点。

首先插入驱动模块:

 

使用程序测试来进行测试,出现下面结果:

 

驱动模块成功插入,会在/dev下面建立一个叫做demo的设备文件,我们也可以使用cat命令来

直接调用read函数,来测试读过程,结果如下:

 

 

三、实验体会

本次试验过程中,我们小组遇到了大部分其他小组都遇到的问题,就是makefile的问题。一开始卡到这个点上无法进行下去,

后来对makefile进行了几次更正,终于编译成功。后面的步骤相对顺利。本次实验使我们充分理解驱动与应用程序的交互过程。

 

四、问题与理解

1.实验过程的理解:

(1)驱动程序可以用来干什么?

它是应用程序与硬件之间的一个中间软件层,驱动程序应该为应用程序展现硬件的所有功能,不应该强加其他约束,

对于硬件使用的权限和限制应该由应用程序层控制。

(2)Makefile的作用:

自动化编译。一旦写好,只需要一个make命令,整个工程完全自动编译,极大的提高了软件开发的效率

(3)驱动程序和应用程序有什么区别?

应用程序有main函数,驱动程序没有main函数;

应用程序可以包含标准的头文件

2.实验过程中遇到的问题以及解决方案

(1)问题:编译时出现如下情况,系统提示Error 1:

 

解决:

之所以会出现这样的问题,是因为Makefile不正确,我们根据老师给的Makefile,对本机的进行了修改,终于解决了该问题。

 

posted on 2015-11-24 19:22  hzy_dky  阅读(284)  评论(1编辑  收藏  举报