说明:在内核源码里会有很多已经实现的驱动,对于我们来说只需要写好设备文件即可,但是我们如何知道驱动需要那些数据,以及有哪些驱动呢?

解决:

1.首先在内核源码目录下执行执行菜单配置命令:

  make menuconfig ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf-

  产生菜单如下

2.然后进入要用到驱动,如我要编译按键驱动,所以在  Device Drivers/ Input device support  /Keyboards/GPIO BUTTON ,选中后编译<*>进内核,然后我们写device数据即可。但是我们怎么知道驱动需要用哪些数据呢?

3.我们可以在GPIO BUTTON下选择下面的Help,可以查看驱动代码的存放路径,如图:

4.有上图可以看到驱动文件在源码下的路径为  drivers/input/keyboard/  ,但是下面有很多文件,具体在哪里呢?

5.在源码目录下打开上面路径下的Makefile文件,命令:vim drivers/input/keyboard/Makefile  ,在里面搜索上面 的宏  KEYBOARD_GPIO,结果如下

6.其中gpio_keys.c即是按键驱动文件,

7.进去后查看probe函数和对应的结构体,写device文件。

8.设备文件加载后,可以通过命令 “cat    /proc/bus/input/device"  查看有没有标准输入事件

9.通过   "exec   0</dev/tty1"  来在终端进行测试,测试完成后需要重启板子才可以恢复。

转载于:https://www.cnblogs.com/edan/p/9235378.html

platform 平台驱动——设备的写作流程相关推荐

  1. platform平台驱动模型简述(linux驱动开发篇)

    此篇是驱动分离(总线.驱动和设备模型)的应用扩展,主要简述platform虚拟总线平台 一个现实的Linux设备和驱动通常挂接在一种总线上,对于本身依附于PCI.USB.I2C.SPI等的设备而言,这 ...

  2. i.MX6ULL驱动开发 | 24 - 基于platform平台驱动模型点亮LED

    一.编写基本设备驱动模块 编写驱动模块源码: #include <linux/module.h> #include <linux/init.h>static int __ini ...

  3. 正点原子linux阿尔法开发板使用——platform平台总线模型

    Linux驱动分离与分层 目的:为了提高软件的重用,跨平台性能!!! 控制器驱动和设备驱动分离!!! 将驱动分离:主机控制器驱动和设备驱动,主机控制器驱动一般是半导体厂家写的.在linux驱动框架下编 ...

  4. Linux驱动_Platform平台驱动

    在Linux操作系统中,驱动程序占用了Linux内核代码量的大头,如果不进行管理,将会造成数量庞大的结果.因此引入了驱动的分离. 上图所示就是驱动的分离,相当于驱动使用标准方法去获取到设备信息(比如从 ...

  5. linux驱动开发 - 12_platform 平台驱动模型

    文章目录 platform 平台驱动模型 1 platform 总线 platform匹配过程 2 platform 驱动 platform 驱动框架如下所示: 3 platform 设备 platf ...

  6. Linux设备驱动模型3——platform平台总线工作原理

    以下内容源于朱有鹏嵌入式课程的学习,如有侵权,请告知删除. 四.platform平台总线工作原理1 1.何为平台总线? (1)属于总线中的一种,相对于usb.pci.i2c等物理总线来说,platfo ...

  7. Linux Platform平台设备驱动模型

    Linux总线设备驱动模型主要包含总线.设备.驱动三个部分. 现实总线:一个现实的Linux设备和驱动通常都需要挂接在一种总线上,对于本身依附于PCI.USB.I2C.SPI等的设备而言,这自然不是问 ...

  8. Platform平台设备驱动框架

    Platform 平台设备驱动框架 platform平台设备驱动是基于设备驱动模型的,它将总线结构体struct bus_type封装为struct bus_type platform_bus_typ ...

  9. Linux设备驱动模型之platform(平台)总线详解

    /********************************************************/ 内核版本:2.6.35.7 运行平台:三星s5pv210 /*********** ...

最新文章

  1. 今日头条员工感慨:30岁以上既可怜又可悲,宁愿选择23岁的,便宜、听话、好用!...
  2. 如何应用Java的BigDecimal类
  3. php5.5 反序列化利用工具_记一次Spring Devtools反序列化利用
  4. java导出生成word
  5. Boost------ windows 库的编译安装
  6. HTML / img src 使用绝对路径注意事项
  7. mysql null值和空格_MySQL中NULL与空字符串空格问题
  8. C++ setprecision()用法
  9. 内存泄露Lowmemorykiller分析
  10. VisualStudio2019 DLL生成并使用教程(C++)最详细Demo教程
  11. 笔记.cloudflare 的橙色云代理ssl坑
  12. 【转】vue中如何实现数据的双向绑定
  13. Js字符串与十六进制的相互转换 【转】
  14. 从文本中提取单词生成单词本
  15. 我是程序员,我在小区“收垃圾”
  16. P2756 飞行员配对方案问题【二分匹配】【网络流Dinic、EK详解】【萌新初写】
  17. 「PAT乙级真题解析」Basic Level 1033 旧键盘打字 (问题分析+完整步骤+伪代码描述+提交通过代码)
  18. Pytorch深度学习实战1-6:图解牛顿迭代法,牛顿不止力学三定律
  19. 数据库系统原理期末复习
  20. 1.认识童心派 — 电子胸牌

热门文章

  1. 安天移动安全发布“大脏牛”漏洞分析报告(CVE-2017-1000405)
  2. 全面解析多种区块链隐私保护解决方案
  3. android6.0源码分析之AMS服务源码分析
  4. c语言中指针数组赋值字符串,C语言—用结构体指针给数组赋值(结构体指针指向字符串,给字符串赋值)...
  5. 阿里云查看mysql是否安装_阿里云CentOS服务器mysql安装
  6. php sql漏洞修复,php sql注入漏洞与修复
  7. 软设考试笔记--数据流图
  8. sgolayfilt函数_Matlab中Savitzky-Golay filtering(最小二乘平滑滤波)函数sgolayfilt的使用方法...
  9. todo文件说明已停止工作_番茄ToDo,一款颜值功能兼备的番茄钟。
  10. hust1344(阶层问题+暴力)