在 linux 驱动中字符设备驱动是必须掌握的,本章主要介绍字符设备应用的程序,无论是学习了后面的知识自己写的字符驱动,还是已有的字符驱动,都需要能够写一些简单的应用程序。即使从事 Linux 驱动方面的工作,Linux 驱动写出来之后,也需要由驱动程序员编写简单的应用程序来进行测试的。
另外,关于驱动部分,迅为电子有专门的驱动实验教程提供给大家学习,大家有了这些基础之后再去学习底层的知识就会很容易了。
在本手册的 10.22 章节,大家可以看到这些 C 程序也是可以在 Android 下面运行的,只不过没有图形界面。
本章配套视频为:
“视频 06_01 字符设备控制之 main 函数传参数”
“视频 06_02 字符设备控制之 led 灯”
“视频 06_03 字符设备控制之 buzzer 蜂鸣器”
“视频 06_04 字符设备控制之 ADC 模数转换”
17.1 入口 main 函数的参数
在和用户交流的过程中,虽然所有人都学习过 C 语言,但是对 C 语言中的 main 函数的用法并不是很清楚。由于后面的实验需要用到这部分知识,这里就占用一个小节,先简单介绍一下 main 函数。
main 函数简介
main 函数作为应用程序的入口,在头文件“#include ”中。main 函数需要传参数的时候完整的定义为
int main(int argc,char **argv)
参数 argc,表示参数的个数
参数**argv,存储输入字符的数组,argv[0]表示程序名称,argv[1]——argv[n]输入的参数
不传参数的时候定义为
int main(void)
函数 main 的返回值为类型为 int,用于判断程序执行成功还是失败
main 函数例程
编写简单的 argvc.c 文件测试 main 函数。
如上图所示,将输入的参数第一个和第二个转换成 int 类型,赋值给 i 和 j,最后输出打印。
其中 argv[0]为程序名称,这里就是后面要编译的目标文件“argvc”。