实验四 外设驱动程序设计(小组)
小组成员: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文件后成功。这点在以后的时间里面需要学习更多的相关知识。