实验四
北京电子科技学院(BESTI)
实 验 报 告
课程:信息安全设计系统基础 班级:1353
姓名:王维臻、武西垚
学号:20135336、20135332
成绩: 指导教师: 娄嘉鹏 实验日期:2015.11.10
实验密级: 预习程度: 实验时间:15:30-18:00
仪器组次:36 必修/选修:必修 实验序号: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、遇到的问题及解决方法
问题:在本次实验中,当实验进行当编译那一步时总是出错,无法显现出指导书上那样正确的情况。
解决方法:在实验中,编译我们使用了make的方法。我们错误认为使用交叉编译,但是应该用GCC编译,补上相关语句,修改MAKEFILE即可成功。
4、测试驱动程序
如果使用 gcc 编译的话,需要通过下面的命令来建立设备节点,如果使用交叉编译器的话,不需要建立设备节点。
#mknod /dev/demo c 254 0
首先要插入驱动模块demo.o,然后可以用lsmod 命令来查看模块是否已经被插入,在不使用该模块的时候还可以用rmmod 命令来将模块卸载。