一、添加头文件二、构造fileoperation结构体static struct fileoperations second_drv_fops = {.owner = THIS_MODULE;.open  = second_drv_open;.write = ;second_drv_write}三、填充file_operations中的成员函数
static int second_drv_open(struct inode *inode,struct file *file)
{return 0;
}ssize_t second_drv_read(struct file *file,char __user *buf,size_t size,loff_t *ppos)
{return 0;
}还有初始化函数static int second_drv_init(void)
{major = register_chrdev(0,"second_drv",&second_drv_fops);return 0;
}static int second_drv_exit(void)
{unregister_chrdev(major,"second_drv");return 0;
}module_init(second_drv_init);
module_exit(second_drv_exit);要使用udev(mdev机制)根据信息来创造设备节点先创建一个class,再创建一个设备。
定义两个结构体:
static struct class *seconddrv_class;
static struct class_device *seconddrv_class_dev;static int second_drv_init(void)
{
//创建一个类,在类下面创建一个设备。
//mdev是udev的简化版本major = register_chrdev(0,"second_drv",&second_drv_fops);seconddrv_class = class_create(THIS_MODULE,"seconddrv");seconddrv_class_dev = class_device_create(seconddrv_class,NULL,MKDEV(major,0),NULL,"buttons");return 0;
}static void second_drv_exit(void)
{unregister_chrdev(major,"first_drv");class_device_unregister(seconddrv_class_dev);class_destroy(seconddrv_class);
}

转载于:https://www.cnblogs.com/stm32f4/p/8335104.html

字符驱动之按键(一:无脑轮询法)相关推荐

  1. 负载均衡算法--轮询法(Round Robin)

    在分布式系统中,为了实现系统的高性能.高并发.高可用,在构架中都会进行负载均衡设计,它是分布式系统的核心和中枢,负载均衡的好坏直接影响着整个系统的性能.负载均衡分为软件均衡和硬件均衡两类,比如apac ...

  2. 负载均衡算法--加权轮询法(Weight Round Robin)

    接上一篇博文:负载均衡算法–轮询法(Round Robin),本文讲解加权轮询算法. 加权轮询算法:不同的后端服务器可能机器的配置和当前系统的负载并不相同,因此它们的抗压能力也不相同.给配置高.负载低 ...

  3. 从零开始之驱动发开、linux驱动(十四、字符驱动之按键中断方式实现和等待队列分析)

    第8节的轮询方式查询按键,非常的浪费CPU资源,这一节主要就是来解决这个问题的. 第12节的中断程序框架也给了出来,这一节我们来完成中断方式的代码实现和分析. 这节是通过使用等待队列的方式来解决CPU ...

  4. jQuery 一次定时器_干货 | 小论定时器玩法(时间轮询法)

    EEWORLD 电子资讯 犀利解读 技术干货 每日更新 经常来说,对于一些不复杂的单片机应用,而且对于内存和存储要求比较严格,又需要多分时去处理一些指定的任务,在无法使用RTOS的情况下,使用一个硬件 ...

  5. 字符驱动之按键(四:poll机制)

    1 采用之前的中断按键法,程序会一直在read函数中死循环. 2 使用了poll之后,在一段时间内如果有按键按下就会返回,如果没有按键按下等时间到再返回. 3 4 应用程序的open,read,wri ...

  6. 单片机程序架构之----时间片轮询法

    我们在编写单片机代码时,常用的方法是根据各个模块的功能函数顺序执行,这种方法对于应用程序简单,实时性不高的场合比较实用.但对于一些对每个功能模块执行响应不同的系统来说,顺序执行就不能完成任务,例如一个 ...

  7. 《深入浅出DPDK》读书笔记(八):网卡性能优化(异步中断模式、轮询模式、混和中断轮询模式)

    本文内容为读书笔记,摘自<深入浅出DPDK> 82.DPDK的轮询模式 <DPDK PMD( Poll Mode Driver)轮询模式驱动程序> DPDK采用了轮询或者轮询混 ...

  8. 加权轮询算法PHP,PHP实现负载均衡的加权轮询方法分析

    本文实例讲述了PHP实现负载均衡的加权轮询方法.分享给大家供大家参考,具体如下: 1. 负载均衡算法有哪些? 轮询法:将请求按顺序轮流地分配到后端服务器上,它均衡地对待后端的每一台服务器,而不关心服务 ...

  9. 轮询没有收到的可能性_轮询(Polling)是什么?

    轮询(Polling)是一种CPU决策如何提供周边设备服务的方式,又称"程控输出入"(Programmed I/O).轮询法的概念是,由CPU定时发出询问,依序询问每一个周边设备是 ...

最新文章

  1. ELMo解读(论文 + PyTorch源码)
  2. centOS下为PHP安装Xdebug
  3. 【Java代码】Java版本的NGender根据中文姓名猜测其性别及男性化/女性化程度(Python版本地址+Java版本源码+基础数据)
  4. Spring Boot整合Redis——自定义RedisSerializer
  5. 搭建Windows server 2008 R2 KMS
  6. 《基于ArcGIS的Python编程秘笈(第2版)》——第1章 面向ArcGIS的Python语言基础
  7. Java HttpClient
  8. 【DBN预测】基于粒子群算法优化DBN深度置信网络实现数据预测matlab代码
  9. springboot高校教室排课系统的设计与实现毕业设计-附源码221556
  10. 模板库:8张财务分析类报表,邀您提反馈
  11. python xmind_Python 使用Python操作xmind文件
  12. web学习记录-JS-12
  13. 白度云下载到存储卡的视频看不了_苹果手机从百度网盘下载的视频如何保存到相册,还有不知道的吗?...
  14. baseservlet怎么写_BaseServlet
  15. elasticsearch使用7大原则,轻松玩转ES
  16. uTools插件-Excalidraw轻量的在线白板绘图工具
  17. ubuntu系统安装教程之启动盘制作
  18. Android 使用MediaProjection+ImageReader捕捉屏幕画面
  19. 创客学院知识巩固-01C语言回顾
  20. html字符串自动加回车换行,【HTML】处理br换行符追加到前端换行无效的问题 --- html中渲染的字符串中包含HTML标签无效的处理方法,字符串中包含HTML标签被转义的问题 解决...

热门文章

  1. 关于爬虫异步请求心得
  2. HQL的使用和limit的替代
  3. 【转】在python下使用包progressbar控制进度条
  4. 在linux下修改oracle字符集
  5. 上传自动显示图片 代码
  6. 【五线谱】音高表示 ( 低音谱号 | C1 36 音符音高表示 | C2 48 音符音高表示 | C3 60 音符音高表示 )
  7. 【C 语言】结构体 ( 结构体中嵌套一级指针 | 分配内存时先 为结构体分配内存 然后再为指针分配内存 | 释放内存时先释放 指针成员内存 然后再释放结构头内存 )
  8. 【错误记录】Android Studio 编译报错 ( VirtualApp 编译 NDK 报错 | Error:A problem occurred configuring project ‘: )
  9. 【设计模式】状态模式 ( 简介 | 适用场景 | 优缺点 | 代码示例 )
  10. 【Android 异步操作】Handler 机制 ( MessageQueue 空闲任务 IdleHandler 机制 )