Fork me on GitHub

随笔分类 -  Driver

摘要:在调试过程中,发现一个问题,编译生成一个KO文件,insmod加载后报错: Unknown symbol var_set_integer (err 0) Unknown symbol parse_arg_eq (err 0) 问题分析思路: 一、用命令查看内核中是否已有这个内核符号, 例如要查看是否 阅读全文
posted @ 2023-03-05 13:37 yooooooo 阅读(513) 评论(0) 推荐(0) 编辑
摘要:一文搞懂 | Linux 时钟子系统 Clock 时钟就是 SoC 中的脉搏,由它来控制各个部件按各自的节奏跳动。比如,CPU主频设置,串口的波特率设置,I2S的采样率设置,I2C的速率设置等等。这些不同的clock设置,都需要从某个或某几个时钟源头而来,最终开枝散叶,形成一颗时钟树。可通过 cat 阅读全文
posted @ 2022-10-23 16:15 yooooooo 阅读(292) 评论(0) 推荐(0) 编辑
摘要:一、SPI协议 SPI是英语Serial Peripheral interface的缩写,顾名思义就是串行外围设备接口。是Motorola首先在其MC68HCXX系列处理器上定义的一种高速的,全双工,同步的通信总线,并且在芯片的管脚上只占用四根线,节约了芯片的管脚,提供方便,简单易用。 二、SPI硬 阅读全文
posted @ 2021-12-26 20:37 yooooooo 阅读(459) 评论(0) 推荐(0) 编辑
摘要:1.PSD传感器介绍 psd位置传感器是一种能测量光点在探测器表面上连续位置的光学探测器。是一种新型的光电器件,或称为坐标光电池。它是一种非分割型器件,可将光敏面上的光点位置转化为电信号。psd由p衬底、pin 光电二极管及表面电阻组成。具有位置分辨率高,响应速度快和处理电路简单等优点。 2.PSD 阅读全文
posted @ 2021-08-14 09:46 yooooooo 阅读(2136) 评论(0) 推荐(0) 编辑
摘要:一、背景 在科技发展日新月异的如今,随着设备性能越来越强劲,设备中各个器件工作时产生的热量也越来越高。而移动设备发热是影响用户体验的重要因素,SoC 等硬件芯片也会因过热而造成系统不稳定,甚至缩减芯片寿命,“如何给设备降温“成为了当下一个重要的课题。 移动终端结构紧凑,内部空间可说是寸土寸金,这就使 阅读全文
posted @ 2021-04-30 11:58 yooooooo 阅读(1503) 评论(0) 推荐(0) 编辑
摘要:Linux内核基础 事件通知链(notifier chain) 简介: 内核许多子系统之间关联紧密,因此在一个子系统发生或者检测到的事件信息很可能对其他子系统来说也是有价值的。为了满足其他子系统对这些事件信息的需求,即在某个子系统内发生或检测到事件时,其他对此感兴趣的子系统也能知道事件的发生,内核提 阅读全文
posted @ 2020-03-07 20:41 yooooooo 阅读(906) 评论(0) 推荐(1) 编辑
摘要:/ 本文为个人学习记录,如有错误,欢迎指正。 本文参考资料: "https://blog.csdn.net/qq_28992301/article/details/52410587" "https://blog.csdn.net/hanp_linux/article/details/79037610 阅读全文
posted @ 2020-02-27 09:23 yooooooo 阅读(1044) 评论(0) 推荐(0) 编辑
摘要:i2c_msg标志位 路径:linux-2.6.38/include/linux/i2c.h I2C_M_IGNORE_NAK: 设置这个标志意味当前i2c_msg忽略I2C器件的ack和nack信号。 I2C_M_NOSTART: 设置这个标志意味当前i2c_msg不发送start信号。注意,其实 阅读全文
posted @ 2019-11-15 14:05 yooooooo 阅读(1596) 评论(0) 推荐(0) 编辑
摘要:本人用的触摸屏IC是FocalTech公司的ft5306,是一款i2c的电容屏多点触控芯片。对于它的整体驱动官方已经给了,我们就触摸屏和按键部分的代码做相关说明。说明其中应该注意的地方。 对于所有的input设备,报告input事件时候都分这么几部分,首先在probe文件中设置设备发送的事件类型、按 阅读全文
posted @ 2019-08-13 14:35 yooooooo 阅读(1243) 评论(0) 推荐(1) 编辑
摘要:每天使用Linux每天都要接触到Bash,使用Bash时似乎永远都让人摸不着头脑的概念就是终端,坐在这台运行着Linux的机器的显示器前面,这个显示器就是终端的输出,而插在机器上的USB键盘或者PS/2键盘就是终端的输入,看来这是一种最直白意义上关于终端的解释。 但是有的时候,机器上并没有看到显示器 阅读全文
posted @ 2019-07-15 22:52 yooooooo 阅读(2266) 评论(0) 推荐(0) 编辑
摘要:在目录下 下可以看到ft6236.c的文件 1. init函数 和`INT_GPIO_OFFSET`都是在宏定义 下定义的 这些管脚可以在这里《Hi3556AV100 Demo 单板使用指南.pdf》中看到,分别得出触摸屏的中断和复位管脚 1.1 对触摸屏进行复位 对触摸屏进行复位; 1.2 inp 阅读全文
posted @ 2019-06-18 17:36 yooooooo 阅读(3077) 评论(0) 推荐(0) 编辑
摘要:1, 两种多点触摸协议: A类: 处理无关联的接触: 用于直接发送原始数据; B类: 处理跟踪识别类的接触: 通过事件slot发送相关联的独立接触更新。 2, 触摸协议的使用: A类协议: A类协议在每发送完一个接触数据包后会调用 input_mt_sync() 声明 一次数据的结束; input_ 阅读全文
posted @ 2019-06-18 17:27 yooooooo 阅读(1028) 评论(0) 推荐(0) 编辑
该文被密码保护。
posted @ 2019-05-28 17:50 yooooooo 阅读(0) 评论(0) 推荐(0) 编辑
摘要:如何查看和修改寄存器 在程序中可以使用HI_SYS_ReadRegister,HI_SYS_WriteRegister接口进行寄存器的读写操作。 在单板命令行下,使用工具。 单板/usr/sbin目录下,有一系列寄存器操作相关的工具,分别介绍如下: 工具 | 参数 |功能| 备注 | | | him 阅读全文
posted @ 2019-04-28 12:04 yooooooo 阅读(1999) 评论(0) 推荐(0) 编辑
摘要:一、概述 mfd是Multifunction device的简称,即多功能设备,是许多有共性的设备的集合,mfd由核心层(core)以及其下的“子设备”组成。从下文将会看到,mfd只是将设备注册到platform总线——因此,其子设备属于platform设备。它并没有对涉及到的设备或驱动做实质性改变 阅读全文
posted @ 2019-04-16 16:31 yooooooo 阅读(3136) 评论(0) 推荐(1) 编辑
摘要:在linux内核系统中,各个模块、子系统之间是相互独立的。Linux内核可以通过通知链机制来获取由其它模块或子系统产生的它感兴趣的某些事件。 notifier_block结构体在include/linux/notifier.h中定义: priority用来定义优先级,高优先级的处理例程将被优先执行, 阅读全文
posted @ 2018-11-05 15:11 yooooooo 阅读(4296) 评论(0) 推荐(0) 编辑
摘要:在 中有如下定义: 详情参照: "linux 设备驱动加载的先后顺序" 所有的__init函数在区段.init.text区段中,同时还在.initcall.init中还保存了一份函数指针,在初始化时内核会通过这些函数指针调用这些__init函数指针,并在整个初始化完成后,释放整个init区段(包括. 阅读全文
posted @ 2018-07-13 20:55 yooooooo 阅读(1203) 评论(0) 推荐(0) 编辑
摘要:Linux驱动先注册总线,总线上可以先挂device,也可以先挂driver,那么究竟怎么控制先后的顺序呢。 1、初始化宏 Linux系统使用两种方式去加载系统中的模块:动态和静态。 静态加载:将所有模块的程序编译到Linux内核中,由do_initcall函数加载 核心进程(/init/main. 阅读全文
posted @ 2018-05-30 17:40 yooooooo 阅读(7533) 评论(0) 推荐(2) 编辑
摘要:android kl(key layout)文件是一个映射文件,是标准linux与anroid的键值映射文件,kl文件可以有很多个,但是它有一个使用优先级: 如果你没有为设备单独定义kl文件,那么就会使用默认的那个Generic.kl文件。 例如: 还有一点需要注意,我们怎么知道这个vendor号和 阅读全文
posted @ 2018-04-16 18:30 yooooooo 阅读(4156) 评论(0) 推荐(0) 编辑
摘要:在事件处理层(evdev.c)中结构体evdev_client定义了一个环形缓冲区(circular buffer),其原理是用数组的方式实现了一个先进先出的循环队列(circular queue),用以缓存内核驱动上报给用户层的input_event事件。 evdev_client对象维护了三个偏 阅读全文
posted @ 2018-04-09 15:55 yooooooo 阅读(741) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示