
Linux字符驱动
shenyeaxu
因为懂得,所以慈悲。
展开
-
Linux字符驱动开发从简单模型-架构-平台
一、嵌入式驱动开发中的字符设备驱动开发(1)1.前学习字符驱动开发总是有些概念是模糊的,现在我们在这重新理解下设备、驱动的概念。一个字符设备就是像led灯、蜂鸣器等这样的设备,驱动是要这样的设备进行工作(包括初始化)、操作的方法。在Linux字符设备驱动程序中,完成设备如何工作的方法。在应用程序中,我们编写程序通过驱动程序中实现的方法来达到设备在应用中的使用。而应用程序对驱动实现的方法...原创 2019-12-15 19:33:12 · 201 阅读 · 0 评论 -
Linux 驱动platform (驱动架构理解)
前言:对于博客,由于能力有限,很多问题都是自己的学习过程和笔记,现在还没有能力说下自己的独特见解;前面的几个博客都记录了自己对Linux设备驱动的基础知识,但是现实中的Linux驱动不是那个样子的,要复杂的多些。简单的驱动是device 和driver 一对一的结合,但是现实中一种驱动driver可能够被多个device使用,总不能给一个设备单独写一个独特的driver吧,Linux驱动架构出...原创 2019-08-05 23:28:50 · 480 阅读 · 0 评论 -
Linux设备驱动中的阻塞和非阻塞IO
这篇文章我们来了解下Linux设备驱动中阻塞和非阻塞。阻塞:阻塞是指执行设备操作时,如果不能获得设备资源,则挂起进程,是进程进入休眠模式,直到设备资源可以获取。非阻塞:非阻塞是在不能获取设备资源时,要么放弃获取,要么一直不停的查询,直到可以获取资源。这两种操作能够为为应用程序提供这样的能力:(1)当应用程序对设备资源进行read(), write()操作时,如果设备资源不能获取,用...原创 2019-07-09 23:04:49 · 804 阅读 · 0 评论 -
Linux 设备驱动并发控制实例
在前面的笔记中,学习了Linux设备驱动中的并发控制,其中有中断屏蔽、原子操作、自旋锁、信号量、互斥体及完成量。这几种并发控制的技术就是解决多进程或多CPU之间对共享资源的同时访问引起的竞态问题。它们之间根据各自的性质使用在不同的场合中,这里就不重复的介绍了,下面来分析《Linux设备驱动开发详解》中举例的并发控制。(1)首先要知道我们在Linux简单的驱动中使用的globalmem设备的例子...原创 2019-07-08 22:45:55 · 223 阅读 · 0 评论 -
Linux 设备驱动中的并发控制
首先我们来了解下为什么要对设备驱动中引入并发控制,这个问题简单的理解就是设备资源只有一个,但是在同时间内,有好多的进程需要访问它。对设备资源进行并发控制,让其在同一时间只能被一个进程访问,这样就不能造成访问的紊乱问题,解决了访问资源的竞态。例如有一段内存空间,存储了数据,有多个进程能够对这段资源进行读写,当一个进程对资源进行写操作的时候,来了另一个进程对资源进行读操作,在没有写完这段内存的时候...原创 2019-07-07 22:45:44 · 253 阅读 · 0 评论 -
linux 字符驱动简单的总结
这里我们读字符设备简单驱动的编写进行总结:(1) 包含必要的头文件(2)定义一个设备结构体 struct xxx_cdev, 这个结构体包含字符设备结构体,struct cdev和自己定义的一些数据量。(3)设备号的申请、释放,可以是固定的设备号,亦可以是动态的设备号。 静态的设备号通过MKDEV(int major, int minor)产生。 在调用cdev...原创 2019-07-07 18:45:17 · 158 阅读 · 0 评论 -
linux 字符驱动简单实例
在Linux字符驱动模板的一篇中,我们简单的书写的Linux字符设备驱动模块的模板,这个模板具有一定的通用性,但是对我们初学者来说,最好能有一个实例来增加我们的理解。通过对《Linux设备驱动开发详解》这本书的学习,有一个例子在很多的驱动开发教程成都有讲解,可见这个例子的功效了,因此,在这儿我们再一次的理解这个例子(globalmem)。这个例子是一个抽象的设备,这个设备主要功能是在内存...原创 2019-07-07 18:22:48 · 414 阅读 · 0 评论 -
linux 字符设备驱动模板
学习Linux设备驱动已经有一段时间了,但是发现学习后很多的知识点记忆模糊了,因此对学习过的知识进行了梳理和总结。1.一般的驱动都是以模块的形式存在的,那么在字符设备的模块加载函数中要完成设备号的申请(静态、动态两种方法)和cdev的注册,而在卸载函数中实现设备号的释放和cdev的注销。2. 驱动编写模板:/*这个设备结构体是自己定义的结构体,包含字符设备结构体和自己定义的其他的成...原创 2019-07-07 16:58:15 · 324 阅读 · 0 评论