- 12
- 0
- 约7.06千字
- 约 6页
- 2016-12-02 发布于重庆
- 举报
基于Timedout框架的GPIO驱动分析
Timed GPIO驱动程序分析
Timed GPIO驱动程序是android系统基于linux内核新增加的一类驱动程序,这类驱动程序主要是运用了内核定时器,与内核定时器进行绑定,使得控制GPIO口的高低电平与时间打上关系,既可以实现在一定的时间实现GPIO口为高或者低电平。Timed GPIO驱动被实现为平台设备驱动,Timed GPIO驱动源码位于如下目录:\kernel\drivers\staging\android
Timed GPIO驱动程序主要包括如下几个文件:
Timed_gpio.c
Timed_gpio.h
Timed_output.c
Timed_output.h
Timed_gpio.c文件为具体的驱动程序,Timed_output.c为向sys文件系统注册类的框架代码,
下面将具体分析每一个文件的作用及实现的具体功能。
首先分析注册类的框架代码 :Timed_output.c Timed_output.h
Timed_output.h文件分析:
struct timed_output_dev {
const char *name;
void (*enable)(struct timed_output_dev *sdev, int timeout);
int (*get_time)(struct timed_output_dev *sdev);
struct device *dev;
int index;
int state;
};
extern int timed_output_dev_register(struct timed_output_dev *dev);
extern void timed_output_dev_unregister(struct timed_output_dev *dev);
Timed_output.h文件主要定义了一个结构体timed_output_dev设备结构体,该结构体表示一个具体的设备,
Name:代表Time GPIO设备的名字,enable:为一个函数指针,主要用于设置定时器的过期时间,
Enable:用于获取离过期还剩余的时间。Index:为设备索引号,代表同一名字的设备的数量,state带表当前设备的状态值。
timed_output_dev_register,timed_output_dev_unregister这两个函数声明用于timed_output设备的注册和卸载。
Timed_output.c文件分析:
该文件主要用于向系统注册timed_output驱动程序框架,其中主要实现了Timed_output.h文件中定义的结构体及函数。
timed_output框架注册函数的实现,这个函数用于将驱动程序注册到kernel中,后面分析Timed GPIO驱动的具体实现时会调用此函数向系统注册Timed GPIO驱动。
int timed_output_dev_register(struct timed_output_dev *tdev)
{
int ret;
if (!tdev || !tdev-name || !tdev-enable || !tdev-get_time)
return -EINVAL;
ret = create_timed_output_class(); 调用此函数在sys/class下生成timed_output类
if (ret 0)
return ret;
tdev-index = atomic_inc_return(device_count);
tdev-dev = device_create(timed_output_class, NULL,
MKDEV(0, tdev-index), NULL, tdev-name);
if (IS_ERR(tdev-dev))
return PTR_ERR(tdev-dev);
ret = device_create_file(tdev-dev, dev_attr_enable);
if (ret 0)
goto err_create_file;
dev_set_drvdata(tdev-dev, tdev);
tdev-state = 0;
return 0;
err_create_file:
device_destroy(timed_output_class, MKDEV(0, tdev-index));
printk(KERN_ERR timed_output: Failed to register driver %s\n,
tdev-name);
return re
您可能关注的文档
最近下载
- XCT80L6_1汽车起重机技术规格书.pdf VIP
- 索尼SW7600GR中文说明书.pdf
- 2026年时事政治测试题库100道附参考答案(完整版).docx VIP
- 儿科抢救药品临床应用与管理.pptx VIP
- 河北广谋新材料科技有限公司年产600万平方米复合革及隔音布、400万平方米新型复合网项目环境影响报告表.docx VIP
- 部编版语文五年级下册第七单元教材解读大单元集体备课.pptx VIP
- 部编版语文五年级下册第六单元教材解读大单元集体备课.pptx VIP
- 部编版语文五年级下册第五单元教材解读大单元集体备课.pptx VIP
- 部编版语文五年级下册第四单元教材解读大单元集体备课.pptx VIP
- 部编版语文五年级下册第三单元教材解读大单元集体备课.pptx VIP
原创力文档

文档评论(0)