实验四 外设驱动程序设计(小组)

小组成员:20135310陈巧然 20135305姚歌

一.实验目的与要求

  • 掌握实时系统应用和驱动程序的编写
  • 选择某个接口电路(串口、LED、LCD、USB)
  • 平台可选择Windows或Linux

二.实验内容

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

三.实验步骤

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

也可以通过修改makefile文件来解决


3、测试驱动程序
如果使用 gcc 编译的话,需要通过下面的命令来建立设备节点,如果使用交叉编译器的话,不需要建立设备节点
#mknod /dev/demo c 254 0
首先要插入驱动模块demo.o,然后可以用lsmod 命令来查看模块是否已经被插入,在不使用该模块的时候还可以用rmmod 命令来将模块卸载

使用测试程序来进行测试,按照上面步骤成功后会出现下面的结果:


如果模块没有成功插入的话,会出现下面的情况:
[root@zxt 01_demo]# ./test_demo
####DEMO device open fail####
在驱动模块成功插入后,会在/dev 下面建立一个叫做demo 的设备文件,我们也可以使用cat 命令
来直接调用read 函数,来测试读过程。
[root@zxt demo]# cat /dev/demo/0
device open success!

四.实验中遇到的问题及解决方法

  • 在实验中直接敲make命令无法使用,只能通过修改makefile文件来解决

五.实验体会

   这次的Linux实验前期基本步骤同实验一、二相似,都是在配置实验箱的环境下进行的,因为有做实验一、二积累的经验,这次配置就很成功,按实验指导书步骤一步一步来做,很快就解决了。之后基本上掌握了实时系统应用和驱动程序的编写,能够实现在ARM开发平台下,选择某个进行接口电路驱动程序设计,对于ARM开发板的使用有了更深层次的了解。其中实例学习和运行过程中, Makefile有两种编译方法,对于交叉编译方法,显示Error,修改makefile文件后成功。这点在以后的时间里面需要学习更多的相关知识。

原文地址:https://www.cnblogs.com/20135305yg/p/4975657.html