首页 > 其他 > 详细

信息安全系统设计基础exp_4

时间:2015-11-21 18:31:21      阅读:324      评论:0      收藏:0      [点我收藏+]

 

北京电子科技学院(BESTI)
              
课程:信息安全系统设计基础 班级:1353 姓名:郑伟、吴子怡
学号:20135322、20135313 指导教师: 娄嘉鹏 实验日期:2015年11月17日
必修/选修:必修 实验序号:exp4 实验时间:15:30-18:00
实验名称:  exp4_外设驱动程序设计
实验内容:在PC机上编写简单的虚拟硬件驱动程序并进行调试,实验驱动的各个接口函数的实现,分析并理解驱动与应用程序的交互过程。
实验目的与要求 1.学习在LINUX下进行驱动设计的原理;   
2.掌握使用模块方式进行驱动开发调试的过程 。 
实验器材 1、Lenovo计算机一台
2、ARM实验箱一个

 

配置实验环境:同实验一。若不能熟练掌握,可点击如下链接查看详细步骤:

http://www.cnblogs.com/zhengwei0712/p/4960130.html <<exp1实验报告

一、实验步骤

1.阅读和理解源代码

进入/01_demo,使用vi编辑器阅读理解源代码。

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

在 Makefile 中有两种编译方法,可以在本机上使用gcc 也可以使用交叉编译器进行编译,我们组采用交叉编译器进行编译。如下图:

技术分享
注意:如果编译的时候出现问题,可能是在/usr/src 下没有建立一个linux 连接,可以使用下面的命令:

[root@zxt 01_demo]# cd /usr/src/
[root@zxt src]# ln -sf linux-2.4.20-8 linux
[root@zxt src]# ls
debug linux linux-2.4 linux-2.4.20-8 redhat

 

3.测试驱动程序

如果使用 gcc 编译的话,需要通过下面的命令来建立设备节点,如果使用交叉编译器的话,不需要建立设备节点。

#mknod /dev/demo c 254 0

首先要插入驱动模块demo.o,然后可以用lsmod 命令来查看模块是否已经被插入,在不使用该模块的时候还可以用rmmod 命令来将模块卸载。

我们使用交叉编译器,不需要建立设备节点。下图为步骤成功的结果。

技术分享 

驱动模块成功插入后,在/dev下面建立一个demo的审文件,使用cat来直接调用read函数,测试读过程。

如果模块没有成功插入的话,会出现下面的情况:
[root@zxt 01_demo]# ./test_demo
####DEMO device open fail####

在驱动模块成功插入后,会在/dev 下面建立一个叫做demo 的设备文件,我们也可以使用cat 命令
来直接调用read 函数,来测试读过程。

[root@zxt demo]# cat /dev/demo/0
device open success!

技术分享

二、遇到的问题与解决方法

在编译驱动模块的时候,makefile 有两种编译方法,可以用gcc,也可以用交叉编译器编译。当我们使用编译器进行编译的时候,出现了问题Error 1,如下图:

技术分享

第一次,可能是/usr/src下没有建立 linux连接,所以使用命令,如下图:

技术分享

第二次,经过研究,发现是makefile里的编写文件,与实验指导书里的不一样,通过进入makefile文件,修改了路径,才编译通过,如下图:

技术分享

三、exp4学习摘要

1.在 Makefile 中有两种编译方法,可以在本机上使用gcc。也可以使用交叉编译器进行编译,但是gcc的编译方法还有后续操作。如下:

如果使用 gcc 编译的话,在测试驱动程序时需要通过下面的命令来建立设备节点,如果使用交叉编译器的话,不需要建立设备节点。

#mknod /dev/demo c 254 0

2.当make出现问题时,可尝试打开makefile文件查看编译程序的所在路径是否正确,是否能够成功链接,若不能,则应该加以修改,这一点在实验五中也会涉及。修改是一个难度较大的操作,也没有学习过。可以多加留意学习。

四、实验体会

通过这次实验,虽然操作不难,但我们觉得注重在于对代码的理解,以及实验遇到问题时的解决。Makefile的路径修改成功,让我们很开心,但是也深深感到了自己对理论知识的掌握还不够,makefile学得还不够精,遇到问题的时候要学会一个个地寻找问题,如果不是这个问题,就排除它,寻找下一个问题原因的可能性。由于多番尝试,最终的成功解决,不仅能使我们尝到成功的喜悦,还能使我们对问题理解和记忆地更加深刻,今后再次遇到此类问题也就不用再担心。同时还帮助同学们解决了这个问题,加深了团队合作的意识。

实验依然是使用上次实验的环境,多次操作使得我们对ARM和REDHAT的搭建更加熟练。

在本次实验中,我负责查找实验指导书中对问题的剖析和预测。重点关注问题的解决方法,还有上网搜查问题的结症所在和解决方案。郑伟则是负责操作和调试。在遇到问题时,我们各司其职,她对自己的操作进行检查,我积极提出问题的可能根源。合作得很高效。

五、搭档博客传送门

http://www.cnblogs.com/zhengwei0712/20135322郑伟

 

 

 

信息安全系统设计基础exp_4

原文:http://www.cnblogs.com/paperfish/p/4984284.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!