信息安全系统设计基础实验四:外设驱动程序设计
北京电子科技学院(BESTI)
实验报告
课程:信息安全系统设计基础 班级:1353
姓名:芦畅 傅冬菁
学号:20135308 20135311
成绩: 指导教师:娄家鹏 实验日期:2015.11.24
实验密级: 预习程度: 实验时间:15:30~18:00
仪器组次: 必修/选修: 实验序号:4
实验名称:实验四:外设驱动程序设计
实验目的与要求:
1.掌握实时系统应用和驱动程序的编写
2.选择某个接口电路
实验仪器:
名称 |
型号 |
数量 |
嵌入式开发平台 |
UP-NETARM2410-CL |
1 |
PC机 |
DELL |
1 |
实验内容、步骤与体会:
1、前期准备,开发环境的配置同实验一,运行./install.sh
编译代码,挂载调试,成功运行:
2、阅读和理解源代码,进入/bc/01_demo,使用vi 编辑器或其他编辑器阅读理解源代码。
2、编译驱动模块及测试程序
在 Makefile 中有两种编译方法,可以在本机上使用gcc 也可以使用交叉编译器进行编译,这里我们使用交叉编译器进行编译的结果。
因为手动编译代码太为繁琐,我们选择了用make的方法,将Makefile稍微修改后就可以使用。Makefile修改后如上图所示。
之后输入make命令,看到如下图指令:
如果编译的时候出现问题,可能是在/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
如果使用 gcc 编译的话,需要通过下面的命令来建立设备节点,如果使用交叉编译器
的话,不需要建立设备节点。
#mknod /dev/demo c 254 0
首先要插入驱动模块demo.o,然后可以用lsmod 命令来查看模块是否已经被插入,在
不使用该模块的时候还可以用rmmod 命令来将模块卸载。
编译成功,出现如下结果:
[root@BC 01_demo]# ./test_demo write 32 bytes data to /dev/demo 0: 0 1 2 3 1: 4 5 6 7 2: 8 9 10 11 3: 12 13 14 15 4: 16 17 18 19 5: 20 21 22 23 6: 24 25 26 27 7: 28 29 30 31 ***************************************************** Read 32 bytes data from /dev/demo 0: 31 30 29 28 1: 27 26 25 24 2: 23 22 21 11 3: 12 13 14 15 4: 16 17 18 19 5: 20 10 9 8 6: 7 6 5 4 7: 3 2 1 0 *****************************************************
遇到的问题及解决办法:
1.我们起初运行make没有成功,我们先选择了手动编译代码,然而后来还是没有运行成功,出现
[root@zxt 01_demo]# ./test_demo
####DEMO device open fail####
失败提示。
后来我们问了同学,将Mekefile修改了,再次make,可以成功运行。
2.
[root@zxt src]# ln -sf linux-2.4.20-8 linux
- ln指令的用法是连接,使用格式是ln [options] source dist,这里我们用到的sf参数的含义是:
-f:链接时先将与dist同档名的档案删除
-s:进行软链接。(软链接,又称符号链接,这个文件包含了另一个文件的路径名,特点是可以链接不同文件系统的文件,甚至可以链接不存在的文件。)