2020年10月11日
摘要:
学习目的: 熟悉输入子系统下按键驱动程序编写 在分析输入子系统框架时,我们已经知道内核对不同类型的输入设备已经抽象出了不同的handler进行处理,device层实现纯硬件的操作,我们可以根据所实现驱动的功能对device层进行设计,主要是内容是当检测有效输入发送,调用input_event函数向h
阅读全文
posted @ 2020-10-11 23:51
quinoa
阅读(475)
推荐(0)
2020年10月10日
摘要:
学习目的: 熟悉linux输入子系统的框架 前面学习了简单驱动程序的编写,并通过对查询方式的按键驱动程序的不断改进,逐步的在程序中引入了中断、poll、异步通知、同步互斥等机制来完善驱动程序。虽然我们编写的驱动程序也实现了相关功能,但却不能被别人编写好的应用程序无缝的使用,别人的应用程序肯定不知道去
阅读全文
posted @ 2020-10-10 23:24
quinoa
阅读(428)
推荐(0)
2020年9月27日
摘要:
学习目的: 熟悉Linux内核中定时器的使用 使用定时器实现按键按下时的去抖动操作 1、定时器按键去抖动原理 在测试前面按键驱动程序的过程中,有时会发现这种现象:当按键按下时或松开时,会连续打印两条按键按下或松开信息,这和我们所期望的结果不符,如下图所示: 出现这种情况原因是因为我们所使用的按键均为
阅读全文
posted @ 2020-09-27 00:05
quinoa
阅读(845)
推荐(0)
2020年9月26日
摘要:
学习目的: 了解同步互斥、阻塞机制 在按键驱动程序中,使用原子操作、信号量实现互斥机制 1、同步互斥、阻塞机制引入原因 1.1 同步互斥机制 要理解同步互斥先要了解关于资源的概念,一般同步互斥机制的引入,大多为解决多个进程同时对同一资源进行访问而引发的读写异常问题。举例如下图所示: 如上图情况,同一
阅读全文
posted @ 2020-09-26 21:51
quinoa
阅读(343)
推荐(0)
2020年9月25日
摘要:
学习目的: 理解Linux中的异步通知机制 加入异步通知机制,优化中断方式按键驱动程序 前面实现了查询方式、中断方式不同按键驱动程序,测试过程中,我们发现在查询方式中,应用程序需要不断轮询获取按键状态值,这种方式极大的耗费CPU资源。中断方式中,应用程序读取按键值时,如果无按键按下,应用程序将进入休
阅读全文
posted @ 2020-09-25 00:18
quinoa
阅读(342)
推荐(0)
2020年9月23日
摘要:
学习目的: 理解linux中poll机制的原理 加入poll机制,优化在上一篇学习的中断方式的按键驱动 上一篇实现了中断方式的按键驱动程序,当应用程序去读取按键值时,如果此时无按键按下或松开,应用程序将进入休眠。休眠过程虽然不占用CPU的资源,但如果无按键按下或松开情况发生,应用程序将永远不会被唤醒
阅读全文
posted @ 2020-09-23 23:18
quinoa
阅读(360)
推荐(0)
2020年7月29日
摘要:
学习目的: 使用中断方式改写查询方式按键驱动程序 上一篇实现了查询方式的按键驱动程序,编写测试程序测试后发现,虽然应用程序可以通过系统调用使用驱动程序获取按键状态,但应用程序占CPU的资源极高。这一篇在编写按键驱动程序中引入中断方式,优化查询方式实现的按键驱动程序。 核心思想:驱动程序中的butto
阅读全文
posted @ 2020-07-29 23:11
quinoa
阅读(1292)
推荐(0)
2020年7月28日
摘要:
学习目的: 实现获取按键状态的驱动程序—查询方式 上一节实现了支持应用程序通过open、write函数控制LED点亮和熄灭的驱动程序,这一节便接着学习获取按键状态的驱动编写。同点灯驱动程序一样,按键驱动程序编写也分为以下几个步骤: 1)阅读开发板原理图,查看按键电路连接 2)看芯片手册,获取GPIO
阅读全文
posted @ 2020-07-28 00:22
quinoa
阅读(734)
推荐(0)
2020年7月26日
摘要:
学习目的 基于第一个驱动程序框架,加入硬件操作,实现LED的点亮和熄灭操作 在上面学习中,已经搭建好了驱动框架,实现了在应用程序调用open、read函数时,通过系统调进入内核空间,调用驱动程序中与之对应的xxx_open、xxx_read函数。现在我们在驱动中加入相应的硬件操作,实现在应用程序调用
阅读全文
posted @ 2020-07-26 23:05
quinoa
阅读(1002)
推荐(0)
2020年7月19日
摘要:
学习目标 了解select函数的各参数的作用,能够在程序设计中正确使用select函数 使用select函数,编写一个简单socket服务器程序,可支持多客户端连接 1、select函数机制 select函数允许程序同时在等待多个底层文件描述符输入的到达,并且只有在一个或多个等待文件描述符的事件发生
阅读全文
posted @ 2020-07-19 18:12
quinoa
阅读(420)
推荐(0)