实验四实验报 告

实验四

北京电子科技学院(BESTI

实     验    报     告

课程:深入理解计算机系统        班级:1353 

姓名:魏静静 文艺 刘虹辰

学号:20135302 20135331 20135325

成绩:             指导教师:娄嘉鹏  实验日期:2015-11-17

实验密级:         预习程度:          实验时间:15:30-18:00

仪器组次:桌号44    必修/选修:必修  实验序号:4

实验名称:简单嵌入式WEB服务器实验                                                

实验目的与要求:

  1. 学习在LINUX下进行驱动设计的原理;

  2. 掌握使用模块方式进行驱动开发调试的过程 。

 

1、实验过程的理解,实验指导书中知识点的理解。

(1) 理解源代码

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

实验四实验报 告_第1张图片

(2) 编译应用程序

再修改makefile文件后,采用交叉编译器即可进行编译。当然也可以使用gcc进行编译,通过下面的命令来建立设备节点,如果使用交叉编译器的话,不需要建立设备节点。

我们使用交叉编译时命令如下:

[root@BC 01_demo]#make 

 

如果编译的时候出现问题,可能是在/uer/src下没有建立一个linux连接,可以使用以下命令:

[root@BC 01_demo]#cd /usr/src/ [root@BC src]#ln –sf linux-2.4.20-8 linux [root@BC src]#ls 

 

(3)测试驱动程序

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

#mknod /dev/demo c 254 0 

 

首先要插入驱动模块demo.o,然后可以用lsmod 命令来查看模块是否已经被插入,在不使用该模块的时候还可以用rmmod 命令来将模块卸载。 实验四实验报 告_第2张图片


(4)实验结果:

实验四实验报 告_第3张图片

 

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

(1)使用gcc编译和使用交叉编译的区别?

Gcc编译就是只是linux下的编译,之后需要用下面的命令来建立设备节点:

#mknod /dev/demo c 254 0

(2)插入驱动模块失败如下:

[root@zxt 01_demo]# ./test_demo       ####DEMO device open fail####

缺少了设备节点的建立,补上这一步骤之后就成功了。

(3)编译失败

在/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

 

 

 

你可能感兴趣的:(实验四实验报 告)