![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
linux
文章平均质量分 92
WB
轻轻的我走了,不带走一片云彩。
展开
-
linux应用程序获取驱动数据
Linux应用程序获取驱动数据一、应用程序获取驱动数据的几种方式和他们的关系Linux应用层的程序获取驱动层的数据有几种方式:1、查询 2、阻塞 3、非阻塞 4、异步通知。查询、阻塞、非阻塞都是应用层程序主动去获取驱动层的数据,异步通知是驱动主动告知应用程序。多说一句,为什么应用程序主动去获取驱动程序要分查询、阻塞、非阻塞那么多种,这是多任务系统和驱动数据非实时性的性质决定的,一个应用程序,只是系统运行的其中一个任务,如果驱动程序一直没有数据返回,用查询死等的方式,就会导致这个应用程序的CPU占原创 2021-01-06 23:55:11 · 911 阅读 · 0 评论 -
linux的定时器和中断
一、定时器Linux的时钟节拍率可以在配置的时候设置,默认为100,单位是HZ。系统里面定义了HZ的宏为100,即一个时钟节拍为10ms。同时系统定义了jiffies来记录系统启动以来的系统节拍数。系统初始化的时候会初始化为0。即jiffies/HZ就是运行时间,单位为S。jiffies和ms、us、ns之间的转换函数: 函数 描述 int jiffies_to_msecs(const unsigned long j) ...原创 2020-12-15 11:04:27 · 1643 阅读 · 0 评论 -
linux并发竞争处理机制
一、原子操作(对整形变量或者位保护)用到的函数: 函数 描述 ATOMIC_INIT(int i) 定义原子变量的时候对其初始化。 int atomic_read(atomic_t *v) 读取v的值,并且返回。 void atomic_set(atomic_t *v, int i) 向v写入i值。 void atom原创 2020-11-27 16:19:50 · 163 阅读 · 0 评论 -
Platform驱动代码示例
Platform驱动代码示例基于总线、设备和驱动这样的驱动框架,Linux内核提出来platform这个虚拟总线,相应的也有platform设备和platform驱动。在引入设备树后,platform设备的工作已经由设备树完成,只需要编写platform驱动部分代码。platform驱动的编写在普通驱动编写的基础上加入:增加of_match_table、probe函数、remove函数 声明设备匹配表 之前模块在init和exit完成的工作分别改到probe和remove函数实现 在模原创 2020-11-26 18:20:16 · 355 阅读 · 0 评论 -
总线、设备、驱动模型和三者的关系
总线、设备、驱动模型和三者的关系Q1:编写linux驱动指写什么?A1:一是指芯片控制器设备的驱动如LCD控制器,IIC控制器等;二是指芯片外接的设备的驱动如24C02、LED灯、按键等。前者一般由芯片厂商的BSP工程师编写,后者一般是应用的嵌入式工程师编写。Q2:嵌入式工程师写的驱动怎么保证最大的可重用性?A2:A2.1怎么做到更换了控制引脚的板子,主控芯片不变的情况下,外设驱动不用改?引脚等资源通过外部引用,不在驱动直接写死。如同样芯片做成的两款板子,主控一样,控制LED灯的一个原创 2020-11-26 16:33:36 · 372 阅读 · 0 评论 -
字符设备驱动程序框架
字符设备驱动程序框架定义字符设备结构体变量 创建设备号,也可以让内核分配alloc_chrdev_region 定义自己的file_operations结构体 实现对应的drv_open/drv_read/drv_write等函数,填入file_operations结构体 初始化cdev把file_operations结构体告诉内核 添加注册cdev 创建类 创建设备 提供入口函数 提供出口函数用到的函数说明: 自动分配设备号并注册: int alloc原创 2020-11-25 17:46:05 · 661 阅读 · 0 评论 -
pinctrl和gpio子系统
pinctrl和gpio子系统1、pincrtl子系统传统配置pin的方式是直接操作寄存器,这种方式比较繁琐和容易出问题,pinctrl子系统就是为了解决这个问题而引入的。pinctrl子系统的主要工作内容如下:●获取设备树中的pin信息●根据获取到的pin信息来设置pin的复用功能●根据获取到的pin信息来设置pin的电气特性,比如上下拉,速度,驱动能力等对于使用者来说,在设备树提供相应的信息就可以了,pinctrl子系统会来完成剩下的工作。使用pinctrl的另外...原创 2020-11-25 11:58:32 · 578 阅读 · 0 评论 -
设备树概念和使用
设备树概念和使用设备树概念和使用 1、在linux源代码目录下用make dtbs生成 2、设备树详细语法规格参考: 《Device tree Specification V0.2.pdf》 《Power_ePAPR_APPROVED_v1.12.pdf》 3、源文件dts(板级) 包含文件dtsi(SOC级) 4、设备节点 节点由一堆的属性组成根节点 : /节点名字:label: node-name@unit-address...原创 2020-11-25 11:33:15 · 387 阅读 · 0 评论