信息安全系统设计基础实验四报告

搭档博客http://wwwcnblogs.com/20135228guoyao/4964477.html

实验四 外设驱动程序设计

一、实验步骤

1. 按照实验一配置环境。

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

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

  • 在 Makefile 中有两种编译方法,可以在本机上使用gcc 也可以使用交叉编译器进行编译,
  • 使用 gcc 编译的话,需要通过下面的命令来建立设备节点,如果使用交叉编译器的话,不需要建立设备节点。

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

4.测试驱动。

  • 驱动模块成功插入后,在/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!

成功后的结果如下图。

 

二、遇到的问题

1. 用交叉编译时,make不出来。

  • /usr/src下没有建立 linux连接,所以使用命令。
  • makefile里的编写文件,与实验指导书里的不一样,通过进入makefile文件,修改了路径,才编译通过,如下图:

 

 

三、实验四知识点摘要

  1. 在 Makefile 中有两种编译方法,可以在本机上使用gcc。也可以使用交叉编译器进行编译比较简单,但是gcc的编译方法还有后续操作。如果使用 gcc 编译的话,在测试驱动程序时需要通过下面的命令来建立设备节点,如果使用交叉编译器的话,不需要建立设备节点。

    #mknod /dev/demo c 254 0
    
  2. 当make出现问题时,可尝试打开makefile文件查看编译程序的所在路径是否正确,是否能够成功链接,若不能,则应该加以修改。

四、实验体会

  这次实验我们尝试了很多遍。一开始配置环境时一帆风顺让我们小小的得意了一下。但是后面当我们好不容易可以编译驱动又怎么也make不出来。在多方研究下,我们发现makefile有问题,与实验书中不同。于是我们俩人配合,将makefile用按照实验书中一个个修改了路径。才使得编译成功。之后,我们用gcc测试,又发现没有建立节点。建立好节点之后,insmod一下才终于可以运行。这一次实验,出现问题以后,我们没有互相埋怨,而是不断努力寻找问题原因,询问同学。在改makefile时也体现了团队合作的默契度。最终成功完成了实验四的内容。 

posted on 2015-12-08 00:31  黑鬼仁西  阅读(258)  评论(0编辑  收藏  举报