
linux驱动开发
文章平均质量分 80
启希
Fucking the code
展开
-
linux内核 等待队列的使用
阻塞与非阻塞是设备访问的两种方式。驱动程序需要提供阻塞(等待队列,中断)和非阻塞方式(轮询,异步通知)访问设备。在写阻塞与非阻塞的驱动程序时,经常用到等待队列。等待队列阻塞访问最大的好处就是当设备文件不可操作的时候进程可以进入休眠态,这样可以将cpu资源让出来。但是,当设备文件可以操作的时候就必须唤醒进程,一般在中断函数里面完成唤醒工作。Linux内核提供了等待队列(wait queue)来实现阻塞进程的唤醒工作,如果我们要在驱动使用等待队列,必须创建并初始化一个等待队列头。等待队列头struct原创 2021-05-09 16:59:32 · 1014 阅读 · 2 评论 -
vscode 文件标签栏多行显示
最近使用vscode看代码,感觉比source insight用起来更爽,vscode的配置也很多,不经常设置很容易忘记,这里保存一个特别好用的设置,文件标签栏多行显示。不设置时,当打开多个文件时,需要使用鼠标滑动滚动条才能看到后面打开的文件。打开设置后,效果是这样的,打开多个文件时,所以文件都能显示出来,看代码非常的nice!!设置步骤按住 ctrl + shift + p输入 open workspace settings,选择打开工作区设置输入workbench.editor.wr原创 2021-04-06 10:51:56 · 58353 阅读 · 6 评论 -
逻辑分析仪的使用--LA1010
做嵌入式驱动开发,会使用逻辑分析仪是必不可少的技能。什么情况需要使用逻辑分析仪当你编写驱动与设备通信读写数据遇到问题时,可以用逻辑分析仪排除硬件问题,这样我们就可以安心找软件的bug了。这里我以Kingst逻辑分析仪 LA1010型号为例,来说明。连接硬件逻辑分析仪相比示波器,体积优势明显,首先,你需要硬件工程师帮你把板子引出三根线SCL(时钟线) SDA(数据线) GND(接地)。逻辑分析仪USB直连电脑供电,然后选择两个CH通道连上SCL和SDA,这里我把CH0连SCL,CH1连SDA,接原创 2021-03-17 16:23:59 · 13029 阅读 · 5 评论 -
Linux驱动开发--手把手教你如何将自己添加的源码编译进内核
首先找到你项目的驱动源码位置一般各大半导体厂商驱动源码的位置都处于根目录/kernel/driver下,不同厂商可能有一些差别,不过总体区别不大,大不了全局搜driver这个目录,这里以Rockchip厂商的3326芯片为例。驱动源码位置在/kernel/driver先清楚你添加的驱动属于什么类型这里我以添加一个温湿度传感器驱动为例讲解怎么添加驱动源码,传感器属于输入设备,所以应该放在driver/input目录下,一般我们直接在input目录下直接创建一个温湿度传感器的目录就可以了,如果你发现in原创 2021-03-15 11:17:30 · 1508 阅读 · 1 评论 -
温湿度传感器SHTC3驱动开发(二)小白也能轻松理解
1、添加驱动文件话不多说,接着上一讲,我们已经成功创建了设备节点,那接下来就是编写驱动了。在我们项目代码的/kernel/driver/input目录下创建temperature目录并添加驱动文件shtc3.c shtc3.h,添加Makefile和Kconfig。编写框架前我们要知道的几个概念i2c_driver 表示i2c驱动i2c_client 表示i2c设备i2c_adapter 表示i2c适配器i2c总线驱动编写的大体思路是什么?理解下面这两句话至关重要上一篇我们编原创 2021-03-12 16:50:00 · 3028 阅读 · 1 评论 -
温湿度传感器SHTC3驱动开发(一)小白也能轻松理解
首先了解设备硬件原理图添加设备树节点添加驱动文件原创 2021-03-11 15:10:19 · 7660 阅读 · 0 评论