字符驱动之按键(一:无脑轮询法)
一、添加头文件二、构造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
字符驱动之按键(一:无脑轮询法)相关推荐
- 负载均衡算法--轮询法(Round Robin)
在分布式系统中,为了实现系统的高性能.高并发.高可用,在构架中都会进行负载均衡设计,它是分布式系统的核心和中枢,负载均衡的好坏直接影响着整个系统的性能.负载均衡分为软件均衡和硬件均衡两类,比如apac ...
- 负载均衡算法--加权轮询法(Weight Round Robin)
接上一篇博文:负载均衡算法–轮询法(Round Robin),本文讲解加权轮询算法. 加权轮询算法:不同的后端服务器可能机器的配置和当前系统的负载并不相同,因此它们的抗压能力也不相同.给配置高.负载低 ...
- 从零开始之驱动发开、linux驱动(十四、字符驱动之按键中断方式实现和等待队列分析)
第8节的轮询方式查询按键,非常的浪费CPU资源,这一节主要就是来解决这个问题的. 第12节的中断程序框架也给了出来,这一节我们来完成中断方式的代码实现和分析. 这节是通过使用等待队列的方式来解决CPU ...
- jQuery 一次定时器_干货 | 小论定时器玩法(时间轮询法)
EEWORLD 电子资讯 犀利解读 技术干货 每日更新 经常来说,对于一些不复杂的单片机应用,而且对于内存和存储要求比较严格,又需要多分时去处理一些指定的任务,在无法使用RTOS的情况下,使用一个硬件 ...
- 字符驱动之按键(四:poll机制)
1 采用之前的中断按键法,程序会一直在read函数中死循环. 2 使用了poll之后,在一段时间内如果有按键按下就会返回,如果没有按键按下等时间到再返回. 3 4 应用程序的open,read,wri ...
- 单片机程序架构之----时间片轮询法
我们在编写单片机代码时,常用的方法是根据各个模块的功能函数顺序执行,这种方法对于应用程序简单,实时性不高的场合比较实用.但对于一些对每个功能模块执行响应不同的系统来说,顺序执行就不能完成任务,例如一个 ...
- 《深入浅出DPDK》读书笔记(八):网卡性能优化(异步中断模式、轮询模式、混和中断轮询模式)
本文内容为读书笔记,摘自<深入浅出DPDK> 82.DPDK的轮询模式 <DPDK PMD( Poll Mode Driver)轮询模式驱动程序> DPDK采用了轮询或者轮询混 ...
- 加权轮询算法PHP,PHP实现负载均衡的加权轮询方法分析
本文实例讲述了PHP实现负载均衡的加权轮询方法.分享给大家供大家参考,具体如下: 1. 负载均衡算法有哪些? 轮询法:将请求按顺序轮流地分配到后端服务器上,它均衡地对待后端的每一台服务器,而不关心服务 ...
- 轮询没有收到的可能性_轮询(Polling)是什么?
轮询(Polling)是一种CPU决策如何提供周边设备服务的方式,又称"程控输出入"(Programmed I/O).轮询法的概念是,由CPU定时发出询问,依序询问每一个周边设备是 ...
最新文章
- ELMo解读(论文 + PyTorch源码)
- centOS下为PHP安装Xdebug
- 【Java代码】Java版本的NGender根据中文姓名猜测其性别及男性化/女性化程度(Python版本地址+Java版本源码+基础数据)
- Spring Boot整合Redis——自定义RedisSerializer
- 搭建Windows server 2008 R2 KMS
- 《基于ArcGIS的Python编程秘笈(第2版)》——第1章 面向ArcGIS的Python语言基础
- Java HttpClient
- 【DBN预测】基于粒子群算法优化DBN深度置信网络实现数据预测matlab代码
- springboot高校教室排课系统的设计与实现毕业设计-附源码221556
- 模板库:8张财务分析类报表,邀您提反馈
- python xmind_Python 使用Python操作xmind文件
- web学习记录-JS-12
- 白度云下载到存储卡的视频看不了_苹果手机从百度网盘下载的视频如何保存到相册,还有不知道的吗?...
- baseservlet怎么写_BaseServlet
- elasticsearch使用7大原则,轻松玩转ES
- uTools插件-Excalidraw轻量的在线白板绘图工具
- ubuntu系统安装教程之启动盘制作
- Android 使用MediaProjection+ImageReader捕捉屏幕画面
- 创客学院知识巩固-01C语言回顾
- html字符串自动加回车换行,【HTML】处理br换行符追加到前端换行无效的问题 --- html中渲染的字符串中包含HTML标签无效的处理方法,字符串中包含HTML标签被转义的问题 解决...
热门文章
- 关于爬虫异步请求心得
- HQL的使用和limit的替代
- 【转】在python下使用包progressbar控制进度条
- 在linux下修改oracle字符集
- 上传自动显示图片 代码
- 【五线谱】音高表示 ( 低音谱号 | C1 36 音符音高表示 | C2 48 音符音高表示 | C3 60 音符音高表示 )
- 【C 语言】结构体 ( 结构体中嵌套一级指针 | 分配内存时先 为结构体分配内存 然后再为指针分配内存 | 释放内存时先释放 指针成员内存 然后再释放结构头内存 )
- 【错误记录】Android Studio 编译报错 ( VirtualApp 编译 NDK 报错 | Error:A problem occurred configuring project ‘: )
- 【设计模式】状态模式 ( 简介 | 适用场景 | 优缺点 | 代码示例 )
- 【Android 异步操作】Handler 机制 ( MessageQueue 空闲任务 IdleHandler 机制 )