第四次实验报告

北京电子科技学院(BESTI)

             

课程:信息安全系统设计基础                班级:1352

成员:20135224陈实 20135226黄坤

成绩:             指导教师:娄嘉鹏         

必修/选修:必修        实验序号:4

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

实验目的与要求:                                                        

    1 掌握实时系统应用和驱动程序的编写;                    

    2选择某个接口电路(串口、LED、LCD、USB...);                                                                                                                                           

    3、平台可选择WindowsLinux                                                       

实验仪器:

名称

型号

数量

台式机

lenovo

1

Arm开发板

 

1

 

 

实验内容与步骤:

在ARM开发平台下,选择某个进行接口电路驱动程序设计。

(一)

1、阅读理解源码

   进入expasic3_tty目录,使用vi编辑器或者其他编辑器阅读理解源代码。

2、编译应用程序

   运行make产生term可执行文件

                       

3、下载调试

   到超级终端窗口,使用NFS mount开发主机的/arm2410cl到/host目录。进入expasic3_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实验前期基本步骤同实验一、二相似,都是在配置实验箱的基础上进行的,因为有做实验一、二积累的经验,而且这次运气很好选了一台好用的电脑,这次配置很顺利,按实验指导书步骤一步一步来做,期间出现了指导书中提示的问题,按指导书来操作很快就解决了。在以后遇到问题的时候,不要急于寻求帮助,先自己多想一想,尝试着解决问题,往往就能解决。这次实验让我们小组配置实验箱,在超级终端中运行调试程序等操作中更加灵活、熟悉,受益匪浅。

原文地址:https://www.cnblogs.com/chuishi/p/5023909.html