![](https://img-blog.csdnimg.cn/20201014180756919.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
驱动开发
文章平均质量分 60
ldh-02
菜鸟一个
展开
-
[Linux内核驱动]Makefile
【代码】[Linux内核驱动]Makefile。原创 2024-06-21 19:25:39 · 91 阅读 · 0 评论 -
[Linux内核驱动]模块的加载和卸载
最简单的内核模块,包括内核模块的加载和卸载。原创 2024-06-21 18:59:52 · 247 阅读 · 0 评论 -
[Linux内核驱动]模块参数
目录下将出现以此模块名为名的目录。当模块参数权限为0时,表示此参数不存在对应的文件节点,此时无法通过文件节点来修改参数的值。对于权限不为0的参数,目录下将出现。可以用过 module_param(参数名,参数类型,参数读/写权限)的形式向模块传递参数,如果不传递,参数将使用模块内定义的缺省值。目录,里面包含以参数名为名的文件,文件中保存了参数的值。除此之外,模块也可以拥有参数数组,形式为。在装载内核模块是,用户可以通过。为模块定义一个参数。对于被内置的模块,无法。更多内容可以查看我的。原创 2024-06-21 19:01:43 · 243 阅读 · 0 评论 -
[Linux内核驱动]内存动态申请
Linux内核驱动的内存动态申请原创 2024-06-21 19:13:30 · 800 阅读 · 0 评论 -
[Linux内核驱动]创建字符设备
创建一个简单的字符设备原创 2024-06-21 19:14:58 · 628 阅读 · 0 评论 -
[Linux内核驱动]自旋锁
Linux内核驱动中自旋锁的简单应用原创 2024-06-21 19:20:32 · 246 阅读 · 0 评论 -
[Linux内核驱动]信号量
对应操作系统中的经典概念PV操作,信号量的值可以是0、1或n。原创 2024-06-21 19:28:11 · 245 阅读 · 0 评论 -
[Linux内核驱动]ioctl
ioctl 是设备驱动程序中设备控制接口函数,一个字符设备驱动通常会实现设备打开、关闭、读、写等功能,在一些需要细分的情境下,如果需要扩展新的功能,通常以增设 ioctl() 命令的方式实现。原创 2024-06-21 19:31:05 · 422 阅读 · 0 评论 -
[Linux内核驱动]应用
创建10个同样globalmem设备,都在同一个globalmem类中,可以在下看到每个设备都使用互斥锁mutex实现基本的open,release,read,write,ioctl,llseek操作使用一个4k大小的mem存储数据。原创 2024-06-22 12:31:32 · 114 阅读 · 0 评论 -
[Linux内核驱动]等待队列
Linux内核的等待队列(Wait Queue)是重要的数据结构,与进程调度机制紧密相关联,可以用来同步对系统资源的访问、异步事件通知、跨进程通信等。在Linux中,等待队列以循环链表为基础结构,包括两种数据结构:等待队列头(wait queue head)和等待队列元素(wait queue),整个等待队列由等待队列头进行管理。原创 2024-06-22 12:33:23 · 128 阅读 · 0 评论 -
[Linux内核驱动]应用
更多详细内容可以查看我的设计一个FIFO的globalmem。原创 2024-06-30 18:38:26 · 273 阅读 · 0 评论 -
[Linux内核驱动]轮询操作
关于用户空间的轮询操作,poll,select,epoll等自行查询,这里只简单介绍设备驱动中的poll函数这个函数主要进行下面两项工作poll_table。原创 2024-06-30 18:40:19 · 122 阅读 · 0 评论 -
[Linux内核驱动]异步通知
异步通知:一旦设备就绪,则主动通知应用程序,这样应用程序就不需要查询设备状态,类似于“中断”。Linux中通过信号来通知应用程序。原创 2024-06-30 19:16:55 · 108 阅读 · 0 评论 -
[Linux内核驱动]延时
jiffies(系统时钟中断计数器)是一个全局变量,用于跟踪自系统启动以来经过的“滴答数”(tick counts)。每个“滴答”对应一个时钟中断的周期,这个周期的长度由内核配置中的 HZ 值决定。因此,jiffies 可以用来计算两个时间点之间的时间差,或者确定某个事件自上次发生以来已经过了多少时间。由于 jiffies 是一个无符号整数,因此它有一个最大值(这取决于 jiffies 的数据类型和大小)。原创 2024-06-30 19:17:46 · 373 阅读 · 0 评论 -
[Linux内核驱动]定时器
Linux内核中的定时器是通过timer_list结构体来表示的。该结构体包含了一些字段,用于记录定时器的到期时间、回调函数等。原创 2024-06-30 19:18:58 · 210 阅读 · 0 评论 -
[Linux内核驱动]定时器应用
使用定时器构造下面的数据表。原创 2024-06-30 19:20:00 · 263 阅读 · 0 评论 -
[Linux内核驱动]中断
对于中断处理,linux将其分为两个部分——上半部(top half)和下半部(bottom half)。上半部用于完成尽量少的比较紧急的任务并在清除中断标志后进行“登记中断”的工作,即将下半部处理程序挂到该设备的下半部执行队列中。一般来说,上半部被设计成不可中断,下半部可以被新的中断打断。下半部几乎做了中断处理程序的所有工作,下半部相对来说不是非常紧急的工作,而且相对耗时,不在硬件中断服务程序中执行。实现下半部的机制一般有tasklet,工作队列、软中断和线程化irq。原创 2024-06-30 19:20:52 · 299 阅读 · 0 评论 -
[Linux内核驱动]tasklet
使用tasklet构建下面的数据表。原创 2024-06-30 19:22:02 · 267 阅读 · 0 评论 -
[Linux内核驱动]工作队列
工作队列的使用方法和tasklet类似,但是工作队列的执行上下文是内核线程,可以调度和睡眠。使用工作队列构造下面数据表,并通过设备读取。原创 2024-06-30 19:23:00 · 348 阅读 · 0 评论 -
[Linux内核驱动]数据类型
Wall。原创 2024-06-30 19:24:05 · 343 阅读 · 0 评论 -
[Linux内核驱动]platform
这里只是简单介绍,更详细的内容在中。Linux 系统要考虑到驱动的可重用性,因此提出了驱动的分离与分层这样的软件思路,为了达到所有硬件都可以按照总线设备驱动模型来实现驱动,Linux从2.6起就加入了 platform 设备驱动,在内核中建立一条虚拟的总线platform,它可以将那些不依赖于传统总线(如PCI, USB, I2C等)的设备,虚拟的挂在了platform总线上,达到统一。原创 2024-06-30 19:25:36 · 276 阅读 · 0 评论 -
[Linux内核驱动]proc
proc是Linux上的一种虚拟文件系统,存储的是当前内核运行状态的一系列特殊文件,用户可以通过这些文件查看有关系统硬件及当前正在运行进程的信息,甚至可以更改其中某些文件来改变内核的运行状态。原创 2024-06-30 19:26:19 · 320 阅读 · 0 评论