关于 linux 按键驱动 的问题???

wodenide007 2011-05-16 10:52:51
我在 看 linux自带的按键驱动 driver/input/keyboard/gpio_keys.c文件
gpio_keys_probe 中 对内存的申请 ddata = kzalloc(sizeof(struct gpio_keys_drvdata) +
pdata->nbuttons * sizeof(struct gpio_button_data),
GFP_KERNEL);

可是通篇找不到对内存的释放函数呢???

还有 就是怎么去设置 按键的触发方式呢!也没有对相应的寄存器的设置呢????
...全文
215 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
jackylongchen 2012-12-05
  • 打赏
  • 举报
回复
http://bbs.csdn.net/topics/390181216
Kyph 2011-05-27
  • 打赏
  • 举报
回复
猜想:
驱动数据结构的地址,通过platform_set_drvdata函数,赋值给通用设备数据的私有驱动数据指针域;
在注销通用设备数据结构过程中,可能会直接或者间接地,通过这个私有驱动数据指针域来释放驱动数据结构。
另外,键盘通过定时器调度工作队列方式gpio_keys_report_event,来报告键盘事件,最终由gpio_get_value来获取键值。
yuanlulu 2011-05-27
  • 打赏
  • 举报
回复
insmod/rmmod几次看看可用内存是不是一直减少。如果你把代码看懂了,加上释放的代码就行了。
wodenide007 2011-05-23
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 confidence321 的回复:]
动态申请内存,需要用kmalloc()吧,释放用kfree()
按键触发方式要么用中断,要么用轮询。
对与其中需要设置的寄存器,需要看datasheet,处理器的寄存器说明。

驱动直接操作硬件,有三件宝: 驱动源码,datasheet,总线协议。

写驱动关键在于理解,在源码中找到类似的代码作为模版。当你理解了,你就 成功八成了。
祝你好运啊
[/Quote]

问题是我找不到kfree啊???
wodenide007 2011-05-23
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 voice_shen 的回复:]
1. 关于为什么没有内存释放函数,我还没有想明白。
2. 关于按键触发方式: 你是想如何触发?
驱动中是用中断来触发的。
[/Quote]

触发方式 是下降沿 还是上升沿呢??
confidence321 2011-05-19
  • 打赏
  • 举报
回复
动态申请内存,需要用kmalloc()吧,释放用kfree()
按键触发方式要么用中断,要么用轮询。
对与其中需要设置的寄存器,需要看datasheet,处理器的寄存器说明。

驱动直接操作硬件,有三件宝: 驱动源码,datasheet,总线协议。

写驱动关键在于理解,在源码中找到类似的代码作为模版。当你理解了,你就 成功八成了。
祝你好运啊
voice_shen 2011-05-18
  • 打赏
  • 举报
回复
1. 关于为什么没有内存释放函数,我还没有想明白。
2. 关于按键触发方式: 你是想如何触发?
驱动中是用中断来触发的。

4,436

社区成员

发帖
与我相关
我的任务
社区描述
Linux/Unix社区 内核源代码研究区
社区管理员
  • 内核源代码研究区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧