当前位置: 代码迷 >> 驱动开发 >> linux 驱动的有关问题
  详细解决方案

linux 驱动的有关问题

热度:26   发布时间:2016-04-28 11:00:59.0
linux 驱动的问题
以下这些有什么作用?, 谁先加载?

static void ctp_wakeup(void)
{
}

static void ctp_reset(void)
{
}

.....

static struct ctp_platform_ops ctp_ops = {
.get_pendown_state = ctp_get_pendown_state,
.clear_penirq = ctp_clear_penirq,
.set_irq_mode = ctp_set_irq_mode,
.set_gpio_mode = ctp_set_gpio_mode,
.judge_int_occur = ctp_judge_int_occur,
.init_platform_resource = ctp_init_platform_resource,
.free_platform_resource = ctp_free_platform_resource,
.fetch_sysconfig_para = ctp_fetch_sysconfig_para,
.ts_reset = ctp_reset,
.ts_wakeup = ctp_wakeup,
.ts_detect = ctp_detect,
};


------解决方案--------------------
应该是定义了一种制版机的设备驱动函数,含义是猜的。
static void ctp_wakeup(void) // 唤醒函数的定义
static void ctp_reset(void) // 复位函数的定义

static struct ctp_platform_ops ctp_ops = { //定义制版机操作函数
.get_pendown_state = ctp_get_pendown_state, // 获得状态
.clear_penirq = ctp_clear_penirq, // 清除中断标志
.set_irq_mode = ctp_set_irq_mode, // 设定中断模式
.set_gpio_mode = ctp_set_gpio_mode, // 设定I/O口工作模式
.judge_int_occur = ctp_judge_int_occur, // 判断中断
.init_platform_resource = ctp_init_platform_resource, // 初始化设备资源
.free_platform_resource = ctp_free_platform_resource, // 释放设备资源
.fetch_sysconfig_para = ctp_fetch_sysconfig_para, // 获得结构参数 
.ts_reset = ctp_reset, // 复位函数
.ts_wakeup = ctp_wakeup, // 唤醒函数
.ts_detect = ctp_detect, // 探测设备(是否存在)
};

------解决方案--------------------
作用LS的哥们儿说了,至于什么时候加载的,这些都只是将本模块的函数指针注册上去,作为回调函数给其他模块调用。可以用ctp_ops这个关键字查一下有哪个函数用它作为参数。
------解决方案--------------------
只是一些回调函数的入口地址。。没什么东东