linux驱动程序相关头文件简单介绍

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

LED驱动程序相关头文件简单介绍

分类:linux驱动开发2011-10-25 21:53 3455人阅读评论(1) 收藏举报cstructoutputmoduletypesfile

[cpp]view plaincopy

在解读OK6410官方提供的LED驱动程序源码的过程中,发现很多没见过的宏和函数。例如S3C64XX_GPM(0)、

S3C64XX_GPM_OUTPUT(0)、__raw_writel(tmp,S3C64XX_GPMPUD)、__raw_writel(tmp,S3C64XX_GPMCON)等。而这些都包含在一些头文件里面。另一方面,我们自己动手编写LED的驱动程序也必须知道相关的头文件有哪些,对我们有哪些用。因此,我觉得在自己动手编写LED驱动程序之前对相关头文件进行简单的分析是非常有必要的。以下是我自己结合源码分析得出的一些结论,如有不正确的地方,希望能够得到指正。

OK6410官方提供的LED驱动程序源码:

[cpp]view plaincopy

一、模块相关头文件:

1、#include :在编写任何模块都需要包含此头文件。该头文件自动包含了头文件,该头文件包含了宏MODULE_LICENSE("GPL")的定义。

2、#include :此头文件也是必须的,module_init()与module_exit()宏就是定义在它里面的。而且正是这个头文件定义了初始化函数加__init和推出函数加__exit的作用(static int __init s3c6410_leds_init(void)和static void

__exit s3c6410_leds_exit(void))

3、#include :此头文件也是常用头文件,如果需要使用printk函数,则必须包含此头文件。另外该头文件还包含了头文件,而这个头文件定义许多常用的数据类型,其中就包括设备号类型dev_t。如下:

[cpp]view plaincopy

二、字符设备驱动相关头文件:

1、#include :该头文件包含了常用的数据结构,当然也包括三种最重要的:struct file、struct file_operation、struct inode。另外该头文件还包含了头文件。

2、#include :该头文件定义了struct cdev数据结构,也包含了字符设备操作的相关函数:

[cpp]view plaincopy

3、:包含自动创建设备文件的相关函数的申明:原函数中-class_create(THIS_MODULE,"my_class")、device_create(my_class,NULL,MKDEV(LED_MAJOR,0),NULL,DEVICE_NAME)。

三、s3c64xx GPIO操作相关头文件:

1、#include :此头文件包含了对S3C64xx 各个GPIO的宏定义,并包含了各个端口的读写函数,如下:[cpp]view plaincopy

上面的头文件包含了头文件,该头文件包含了GPIO的数据读写函数,如下:[cpp]view plaincopy

2、#include :定义了GPIO相关的数据宏:

[cpp]view plaincopy

由上可知此头文件包含了------->系列头文件,而这些头文件里面定义了对应GPIO的一系列数据宏,例如里面定义的是led程序中用到的GPM端口相关的数据宏,如下:

[cpp]view plaincopy

3、#include :此头文件包含了GPIO的各种配置函数,例如设置输入输出方式,上拉电阻使能等等:[cpp]view plaincopy

相关文档
最新文档