北京电子科技学院(BESTI)
实 验 报 告
课程:信息安全系统设计基础 班级:1352
成员:20135224陈实 20135226黄坤
成绩: 指导教师:娄嘉鹏
必修/选修:必修 实验序号:4
实验名称: 实验四外设驱动程序设计
实验目的与要求:
1、 掌握实时系统应用和驱动程序的编写;
2、选择某个接口电路(串口、LED、LCD、USB...);
3、平台可选择Windows或Linux。
实验仪器:
名称 |
型号 |
数量 |
台式机 |
lenovo |
1 |
Arm开发板 |
|
1 |
实验内容与步骤:
在ARM开发平台下,选择某个进行接口电路驱动程序设计。
(一)
1、阅读理解源码
进入expasic 3_tty目录,使用vi编辑器或者其他编辑器阅读理解源代码。
2、编译应用程序
运行make产生term可执行文件
3、下载调试
到超级终端窗口,使用NFS mount开发主机的/arm2410cl到/host目录。进入expasic 3_tty目录,运行term,观察运行结果的正确性。
(二)
1、阅读和理解源代码
进入/arm2410cl/exo/drivers/01_demo,使用vi编辑器或其他编辑器阅读理解源代码。
2、编译驱动模块及测试程序
上面介绍了在Makefile中有两种编译方法,可以在本机上使用gcc也可以使用交叉编译器进行编译,这里用交叉编译器进行编译的结果。
3、测试驱动程序
如果使用gcc编译的话,需要通过下面的命令来建立设备节点,如果使用交叉编译器的话,不需要建立设备节点。
下面使用测试程序来尽心测试,按照上面步骤成功后会出现下面的结果:
在驱动模块成功插入后,会在/dev下面建立一个叫做demo的设备文件,我们也可以使用cat命令来直接调用read函数,来测试读过程。
实验中遇到的问题与解决方法:
(1)遇到问题:使用Makefile文件编译未能成功,提示头文件中的函数出错。
解决方案:根据错误解释,应该是在Makefile路径未找到头文件中的库函数,于是在Redhat系统中找到存放内核头文件的路径,将其替换掉原先在Makefile文件中的路径,在执行make命令编译,成功。
(2)遇到问题:在编译测试文件test_demo.c时,使用gcc编译不成功, 使用armv4l-unknown-linux-gcc编译也不成功。
解决方案:在使用gcc编译时未建立设备节点,建立结点后编译成功,但是不知道为何使用armv4l-unknown-linux-gcc编译不成功。
实验体会 :
这次的Linux实验前期基本步骤同实验一、二相似,都是在配置实验箱的基础上进行的,因为有做实验一、二积累的经验,而且这次运气很好选了一台好用的电脑,这次配置很顺利,按实验指导书步骤一步一步来做,期间出现了指导书中提示的问题,按指导书来操作很快就解决了。在以后遇到问题的时候,不要急于寻求帮助,先自己多想一想,尝试着解决问题,往往就能解决。这次实验让我们小组配置实验箱,在超级终端中运行调试程序等操作中更加灵活、熟悉,受益匪浅。