![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Linux驱动学习
Chasing_Chasing
这个作者很懒,什么都没留下…
展开
-
Linux字符设备驱动及设备节点自动创建
27.1 前言字符设备是一种以字节流来存取的设备,查看正在使用的设备驱动可用命令:cat /proc/devices;字符设备文件第一个为c开头,可使用命令:ls –l /dev/* 如下图示:在老版的Linux内核中,注册一个Linux字符设备需要调用多个函数完成,如下图示:先申请设备号,然后分配字符设备空间,初始化完毕后就添加以完成注册。在后来内核中,可以直接调用regis...原创 2019-04-26 11:44:00 · 724 阅读 · 0 评论 -
Linux内核定时器简介及使用
28.1 前言Linux内核定时器用于处理指定时间后,执行某个动作的。其特点如下:(1)执行了一次便不会再次执行,处理后即失效;(2)执行的动作函数中,不允许休眠和发生调度行为;(3)应该对被访问的数据结构进行条件设置防止被调度;在Linux内核定时器中,不得不说的一个东西就是jiffies。jiffies是记录着从电脑开机到现在总共的时钟中断次数,Linux系统时钟频率是一个...原创 2019-04-26 16:03:12 · 826 阅读 · 0 评论 -
Linux内核工作队列实例
29.1 前言Linux中的工作队列是将工作推后执行的一种方式,通常用在中断分层机制中,因为中断函数的原则是(1)快;(2)不能睡眠或等待;因此,在中断驱动程序中,引入工作队列实现中断的分层,硬件处理在中断函数中处理,软件及其耗时操作则在Linux内核线程中实现。本小节,将介绍Linux内核队列及其使用方式。29.2 工作队列特点(1)工作队列中是可以阻塞或睡眠的;(2)调用sch...原创 2019-04-28 19:55:13 · 1105 阅读 · 0 评论 -
Linux GPIO驱动实例及GPIOLib简介
26.1 前言Linux2.6.35 之后就有了gpiolib,其作用为对所有GPIO进行统一管理,避免多个驱动控制一个IO所带来的混乱,需要在编译内核的时候选上支持gpiolib选项。本文是基于Linux gpiolib库初试GPIO驱动编程的学习记录,供学习参考。26.2 混杂设备混杂设备主设备号为10,次设备号:0-255共256个设备。minor=MISC_DYNAMIC...原创 2019-04-25 17:24:34 · 2589 阅读 · 2 评论 -
33 Linux内核高精度定时器实现延时
33.1 前言对于Linux驱动开发来说,我们不可避免会使用到延时函数,其中最为常见的延时函数有msleep、usleep(sleep这些是睡眠不占用cpu的),还有mdelay、udelay(delay是CPU忙等待,定时精准但占用cpu),上述延时函数各有优缺点。对于普通情况的延时,也就是多一秒也没大关系的用sleep类延时函数完全没问题,对于有精准延时的用delay类函数一般也没啥问题。...原创 2019-05-15 09:11:14 · 2229 阅读 · 1 评论 -
31 Linux input子系统按键驱动--4IO驱动16按键
31.1 前言按键是设备中是最常见的人机交互方式,本节中将学习两部分。(1)如何4个GPIO 16个按键的实现;(2)Linux input按键驱动开发实例编程;31.2 4个IO驱动16按键原理在常见的按键驱动中,我们可以设计一个按键矩阵,给按键设定一个坐标。如由8个GPIO驱动的4x4矩阵按键,便是通过水平、垂直两个维度对按键进行坐标化。本节讲到的由4GPIO驱动16按键的...原创 2019-05-15 10:01:56 · 1326 阅读 · 0 评论 -
37 Linux 485收发切换延时导致接收数据错乱问题解决
37.1 前言这几天在对接Linux上位机与stm32开发板,通过485进行对接。Linux上位机端485是通过串口+485转换芯片+一个IO控制方向组成的。原本以为485这东西简简单单(之前有做过两块单片机的485驱动),没想到因为Linux系统调用延时导致485收发切换延时,导致Linux上位机始终不能正确接收stm32下位机回复的数据。期间以为是硬件问题,然后一直找硬件的人帮忙查...原创 2019-07-01 17:21:40 · 3754 阅读 · 0 评论