Linux嵌入式驱动初体验(六)--- LED驱动测试程序
来源:互联网 发布:淘宝直通车广告在哪里 编辑:程序博客网 时间:2024/05/17 06:08
通过上一篇文章,我们已经写好了一个LED驱动,但是如果光运行这个驱动程序(其实它是一个模块程序,不能称之为运行),LED灯是不会亮的,驱动程序的作用其实就相当于编写了一些库函数一样,当驱动程序通过编译,然后以模块的形式加载到内核之后,这些函数就是可以用的了,然后通过调用这些函数来实现设备的使用。原理就是这么个原理,下面就根据上一篇文章得到的那些函数,来写一个能够让LED闪烁的,称之为测试程序的代码。
其实代码并不长,重点在于编写的模式和思路。对于一个设备来说,Linux同样把它看成是文件,所以首先肯定是要打开它,而打开会有两种结果,一种是打开成功,一种是打开失败:打开成功了,就要对它进行操作,就可以用我们之前实现的write或者ioctl来控制这个打开的设备,然后用完之后,就要进行关闭;如果打开失败,那么就什么都不能做了,只能exit,结束程序。本着这个思路,我们就可以很容易的实现下面的代码:
前面是一些必要的头文件,就不多说了。在Linux中,设备会在/dev中一个对应的文件,我们打开的就是它。在open之后,就是对它进行write和ioctl操作,他们的参数都是对应的,但是并不是所有的参数都有,这在标准C中是不对的,但是这里是合法的,可能它是遵循了其他的标准吧,其实在使用ioctl的时候,完全可以写成ioctl(fd, SET_LED_ON),原理有待考察。。。这就是一个简单的测试程序,其实只要有思路,按模式来写,其中可以改写一些带有花样的设计,这里就不详细说了,大家可以开动脑筋,自己想一些好玩的方案。
还要特别说明一下,我们写的驱动是针对有Linux系统的SmartArm3250开发板,所以我们的测试程序也是针对它来设计的,所以这个程序一定是在开发板上运行了,所以我们就要用交叉编译器来编译它,让开发板可以认识,我们可以写一个Makefile来编译它:
这个Makefile也是比较简单的,大家一看应该就能懂了。其实这篇文章没有什么技术含量,只是上一篇文章的完结篇,对于驱动的开发就是这样,一个是用来创造函数(驱动程序),一个是用来使用函数(应用程序)。
继续努力!
- Linux嵌入式驱动初体验(六)--- LED驱动测试程序
- Linux嵌入式驱动初体验(五)--- LED驱动解析
- Linux嵌入式驱动初体验(七)--- LED驱动之字符设备篇
- 嵌入式linux Led驱动与程序
- 【嵌入式linux】(第六步):使用eclipse集成开发环境开发第一个嵌入式Linux程序,并测试LED驱动
- led驱动测试程序
- Linux驱动:LED驱动测试
- Linux驱动:LED驱动测试
- Linux嵌入式驱动初体验(四)--- 驱动结构分析
- linux驱动之LED驱动体验
- linux设备驱动之LED驱动测试
- Linux嵌入式驱动初体验(一)--- 准备工作
- Linux嵌入式驱动初体验(二)--- 内核装载
- Linux嵌入式驱动初体验(三)--- 模块接触
- 嵌入式linux驱动与软件详解之一 led驱动与程序
- 07-S3C2440驱动学习(一)嵌入式linux字符设备驱动-LED字符设备驱动
- s3c2440嵌入式linux系统LED驱动(lab2)
- linux驱动--LED驱动
- 从PC总线到ARM的内部总线
- 搭建BBS, SNS,CMS等网站
- VC2008/CLR MessageBox
- automake学习
- V8 JavaScript Engine 入门指南 1 -- 编译V8
- Linux嵌入式驱动初体验(六)--- LED驱动测试程序
- JAVA软件工程师技能目标
- 照着别人的代码写了个“设置个性CMD的东西”
- 第一篇日志
- “郭德纲”挤兑死人不带脏字,经典…
- 加入了HTML特点的Qt,出来的效果不错哟
- PMC职责
- 【操作系统】ass process & GDT
- 【嵌入式Linux学习七步曲之第五篇 Linux内核及驱动编程】PowerPC + Linux2.6.25平台下的I2C驱动架构分析