20135321余佳源、20135323符运锦----实验四:外设驱动程序设计

北京电子科技学院(BESTI)

实 验 报 告

课程:信息安全设计系统基础 班级:1353
姓名:余佳源、符运锦

学号:20135321、20135323
成绩: 指导教师: 娄嘉鹏 实验日期:2015.11.10

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

仪器组次:21 必修/选修:必修 实验序号:1

实验名称:外设驱动程序设计

实验目的与要求:学习在 LINUX 下进行驱动设计的原理,掌握使用模块方式进行驱动开发调试的过程 。

实验仪器:

名称 型号 数量

LENOVO 1

ARM开发板 1

一、实验步骤

1、阅读和理解源代码

进入/arm2410cl/exp/drivers/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 命令来将模块卸载。

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

如果模块没有成功插入的话,会出现下面的情况:

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

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

问题:在本次实验中,当实验进行当编译那一步时总是出错,无法显现出指导书上那样正确的情况。

解决方法:在实验中,编译我们使用了make的方法。我们错误认为使用交叉编译,但是应该用GCC编译,补上相关语句,修改MAKEFILE即可成功。

三、实验体会

本次实验可以说是让我学到很多的一次实验。通过本次实验,让我了解了交叉编译,也让我了解到如果缺少节点的搭建,编译将无法成功。下次实验我们将继续努力,攻破一个又一个问题。

posted @ 2015-11-29 00:27  20135323符运锦  阅读(243)  评论(0编辑  收藏  举报