- 博客(9)
- 收藏
- 关注
原创 完整单链表程序
本文采用插入采用头插法,删除采用任意位置删除。什么是链表:链表就是结构体变量与结构体变量通过指针连接在一起。单链表主要是数据域和指针域构成。单链表的编程思路:动态内存申请+模块化设计1.动态内存申请就是为了使得结构体指针变为结构体变量。2.模块化设计(1)表头(2)节点(3)插入节点(4)删除节点(5)打印遍历链表下面直接展示完整程序:#include"stdio.h"#include"stdlib.h"struct node{ int da
2022-05-27 15:00:53
870
原创 中断下文工作队列结合触摸屏实验
一.编写设备数1.创建新的节点。打开内核文件.dtsi文件,在文件中创建test节点。2.配置节点属性。3.进行编译烧写进入板子。二.编写驱动程序#include<linux/init.h>#include<linux/module.h>#include<linux/platform_device.h>#include<linux/of.h>#include<linux/of_address.h>#inc
2022-04-29 16:27:57
185
原创 Linux 下电容触摸屏驱动框架
电容触摸屏驱动其实就是一下几种 linux 驱动框架的组合:① IIC 设备驱动,因为电容触摸 IC 基本都是 IIC 接口的,因此大框架就是 IIC 设备驱动。② 通过中断引脚(INT)向 linux 内核上报触摸信息,因此需要用到 linux 中断驱动框架。坐标的上报在中断服务函数中完成。③ 触摸屏的坐标信息、屏幕按下和抬起信息都属于 linux 的 input 子系统,因此向 linux 内核上报触摸屏坐标信息就得使用 input 子系统。只是,我们得按照 linux 内核规定的规则来上报坐
2022-04-29 10:48:26
536
原创 设备驱动里面的并发控制
并发:(Concurrency)指的是多个执行单元同时、并行被执行,而并发的执行单元对共享资源(硬件资源和软件上的全局变量、静态变量等)的访问则很容易导致竞态(RaceConditions)。例如,对于globalmem 设备,假设一个执行单元A对其写人3000个字符“a”,而另一个执行单元B对其写入4000个“b",第三个执行单元C读取globalmem的所有字符。如果执行单元A、B的写操作按图7.1那样顺序发生,执行单元C的读操作当然不会有什么问题。但是,如果执行单元A、B按图7.2那样被执行,而执行单
2022-04-26 10:54:28
306
转载 I2C时钟部分摘取与总结
I2C标准能带来些啥好处呢?简单的2线串行I2C总线最小化互连,节省PCB布板走线空间; 完全集成的I2C总线协议消除了地址解码器。 I2C总线的多主控能力允许终端用户设备通过外部连接到装配线进行快速测试和校准。 标准支持广泛,大量无铅封装I2C总线兼容集成芯片进一步降低了空间需求。时序图I2C的时序图如下:START事件:可以联想一下UART的起始位,这个用于通知I2C通信的发起。用一句话描述就是在SCL常高时,采集到SDA高到低跳变,这就是启动事件。数据有效性:SDA线.
2022-04-20 17:46:41
1716
转载 linux里面输入子系统的MT协议
MT协议被分为两种类型,TypeA和TypeB(两种上报协议)。TypeA:适用于触摸点不能被区分或者追踪,此类型的设备上报原始数据(此类型在实际使用中非常少!)。Type B:适用于有硬件追踪并能区分触摸点的触摸设备,此类型设备通过 slot 更新某一个触摸点的信息,FT5426 就属于此类型,一般的多点电容触摸屏 IC 都有此能力。触摸点的信息通过一系列的 ABS_MT 事件(有的资料也叫消息)上报给 linux 内核,只有 ABS_MT 事件是用于多点触摸的。如果从Device获取的当前
2022-04-20 15:49:38
514
原创 理解Linux进程间通信之管道
linux 进程间通信的几种主要方式:1.管道通信 2.信号通信 3.消息队列通信 4.共享内存通信 5.Socket通信 6.信号量通信
2022-04-13 15:57:36
534
原创 I2C驱动屏幕实验及步骤
这里以FT5X06触摸芯片为使用I2C11.我们通过连接到开发板上面的终端命令查找到I2C1对应的设备节点。2.应用层操作 I2C 是以数据包进行交流。数据包对应的结构体 i2c_rdwr_ioctl_datastruct i2c_rdwr_ioctl_data{struct i2c_msg __user *msgs;__u32 nmsgs;}第一个结构体成员是我们要发送的数据包的指针,第二个结构体成员是发送数据包的个数。3.定义 i2c_msg 结构体。struct.
2022-04-12 16:23:31
1177
原创 Linux I2C驱动
介绍:I2C是常见的一个串行通信接口,用于连接各种外设、传感器等。I2C 总线仅仅使用 SCL、SDA 这两根信号线就实现了设备之间的数据交互。I2C的体系架构:由I2C核心,I2C总线驱动,I2C设备驱动三部分构成。I2C核心:提供I2C总线驱动和设备驱动的注册,注销。I2C总线驱动:I2C总线驱动是对硬件中适配器的实现,适配器可让CPU控制,也可以集成在CPU内部。I2C 设备驱动:I2C 设备驱动是对 I2C 硬件体系结构中设备端的实现,设备一般挂接在受 CPU 控制的 I2C 适配器
2022-04-12 15:14:40
1883
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人