LInux嵌入式
文章平均质量分 65
Linux嵌入式
【linux嵌入式】玩家
linux嵌入式玩家
展开
-
MTK Sensor传感器框架(加速度传感器,陀螺仪等)分析
【代码】MTK Sensor传感器框架分析。原创 2024-02-02 14:12:12 · 528 阅读 · 0 评论 -
Linux设备驱动开发学习笔记(等待队列,锁,字符驱动程序,设备树,i2C...)
在介绍Slab分配器之前,先定义它使用的一些术语。·Slab:这是由数个页面帧组成的一块连续的物理内存。每个Slab分成大小相同的块,用于存储特定类型的内核对象,例如inode、互斥锁等。每个Slab是对象数组。原创 2024-01-18 13:41:03 · 1027 阅读 · 0 评论 -
SCSI/UFS储存架构/协议/电源管理/命令处理流程
二是通过这层可以让 UFS 自己来掌握发送数据的节奏、控制自身的状态等,这样既可以免去 host 端持续的查询 UFS 的状态所带来的系统消耗,也是因为只有 UFS 本身最了解自己的内部状态,能够选择以最佳的方式在最佳时间把数据传递出去。如下图,蓝色框上方调用 HCI 的为主机软件部分,蓝色框下方的为 HCI 封装的硬件处理细节部分,即 HC(Host Controller,主机控制器)正如最开始提到的,UTP 和 SCSI 是属于 SCSI 这部分,在 JEDEC 的标准里能找到它们的具体说明。原创 2024-01-16 14:03:33 · 1334 阅读 · 0 评论 -
Linux嵌入式input子系统
code表示哪一个事件,EV_KEY(按键)类事件,它表示键盘。其中type表示哪类事件,比如EV_REL表示相对位移(比如鼠标),EV_ABS表示绝对位置(比如触摸屏)对于按键,它的value可以是0(表示按键被按下)、1(表示按键被松开)、2(表示长按);对于触摸屏,它提供的是绝对位置信息,有X方向、Y方向,还有压力值。设备驱动使用内核提供的接口,向内核上报输入事件,内核处理输入事件并且给用户层提供接口。1.内核用input_dev结构体表示一个输入设备(鼠标,键盘,触摸屏).value:表示事件值。原创 2023-11-21 09:19:54 · 139 阅读 · 0 评论 -
Linux嵌入式I2C协议笔记
而i2c设备驱动需要使用linux内核提供的数据结构对i2c设备进行读写操作,其中最重要的就是i2c_adapter,和i2c_algorithm结构体,I2C adapter表示一条I2C总线,也就是I2C Controller,i2c_adapter里面有两个重要的成员,nr表示第几个i2c总线(i2c controller),i2c_algorithm(用来收发I2C数据,里面有master_xfer函数)flags用来表示数据传输方向,bit 0等于I2C_M_RD表示读,bit 0等于0表示写。原创 2023-11-18 20:13:47 · 228 阅读 · 0 评论 -
RK3288安卓7.1开机上电到显示logo需要在3s内完成
需求: 从上电到开始开机logo有一段黑屏时间,这个黑屏时间大概在6s左右,给客户体验很不好,现在需要将这段黑屏时间缩短到2-3s左右。至于为什么需要在这里加这个问题,就需要在uboot阶段打开调试,慢慢看uboot打印信息定位代码。原创 2023-08-30 14:03:59 · 1023 阅读 · 0 评论 -
RK3288Android7.1上10寸mipi屏兼容
1、修改屏幕厂商提供的屏幕初始化指令为rk可以识别的格式存放在panel-init-sequence。首先根据屏幕厂商提供的初始化指令将panel-init-sequence填好。用得比较多的就是DCS Write,0x15,0x39是用的最频繁的。可以发现是因为单条指令太长了,rk存不下,然后kernel就挂了。如果还是看不懂指令格式怎么转化的可以看一下这个链接,写得很详细。然后将初始化指令转化为rk可以识别的格式。可以看到除了初始化序列,厂商提供了屏参。然后屏幕就可以正常点亮了。基本上就没什么问题了。原创 2023-08-15 17:59:30 · 941 阅读 · 0 评论 -
allwinner 全志RS485调试,GPIO状态与万用表测量不同
这个是全志手动调试GPIO的方法,输入完上面的命令后,PG8应该为低电平,我们用万用表测试确实是低电平这说明GPIO号没有问题。驱动没有问题,GPIO号没有问题,UART0的485设备树没有问题,这就不知道是什么原因了。可以发现驱动在数据即将要发送的时候会将485的RTS拉高进入发送模式,当数据发送完毕就会拉低进入接收模式,这个逻辑说明驱动是没有问题的,但是我们用万用表测量发现UART0的485脚一直是高电平状态,根本就没有拉低过。UART0的RTS脚为UART1_RTS,找到这个脚在主控中的PGIO号。原创 2023-07-31 10:25:02 · 859 阅读 · 2 评论 -
权智A133P of_get_named_gpio_flags踩坑
权智A133P linux起不来,修改为。原创 2023-07-25 15:16:48 · 474 阅读 · 0 评论 -
权智A133P 安卓10移植SPI转串WK2124驱动
tty_core、line_discipline.他们各自实现实现一个 ops 结构,用户空间通过 tty 注册的字符设备节点来访问驱动。7、irq_gpio: 该 gpio 和 wk2xxx 芯片的 IRQ 引脚相连,用于接收 wk2xxx 芯片传递。6、reset_gpio:该选项在 SPI 驱动当中不是必须的。2、wk2xxx_spi@00:由于硬件使用的是 SPI1 的 cs0 引脚,所以设置为 00.如果使用。8、SPI 的工作模式设置,默认工作在 0 模式,所以在 dts 中没有单独设置。原创 2023-07-24 21:59:50 · 681 阅读 · 2 评论 -
AIC8800 WIFI调试记录
可以发现这个引脚接到主控CPU的PL5/S_JTAG_CK/S_PL_EINT5,即GPIO为PL5.测量WL_PMU_EN发现没有3.3V,是mV,表示没有供电,找的这个引脚接到哪里去了。先看AIC8800硬件模块是否正常,用万用表测芯片供电是否正常。问题:AIC8800 USB 接口WIFI模块无法识别。驱动层:usb无法识别到AIC8800模块。去对应设备树拉高电压即可。上层:WIFI打不开。原创 2023-07-19 16:05:41 · 3466 阅读 · 0 评论 -
Makefile学习笔记
在Makefile中想要确定编译文件,目录。“Makefile”文件总是被“Makefile.build”包含的。简单地说,就是 for each var in list, change it to text。对 list 中的每一个元素,取出来赋给 var,然后把 var 改为 text 所描述。pattern 所列出的文件是否存在,把存在的文件都列出来。,不再使用名为“Makefile”的文件,比。执行 make 命令时,它会去。据它的指示去执行操作,生成。怎么编译当前目录中的文件?原创 2023-07-16 13:34:09 · 229 阅读 · 0 评论 -
Android 10插入mic摄像头和喇叭,报错cannot open device ‘/dev/snd/pcmC0D0p‘: No such file or directory
其实可以发现open函数如果打开一个节点失败比如pcmc0d0p打开时候后,就直接return了,并不会继续打开pcmc1d0p。我们可以在这里加一个逻辑,当open失败的时候就继续打开其他节点。根据日志提供的TAG可以知道,audio_hw_primary在hardware层。pcm_open主要是根据上层调用开辟内存空间,open设备,初始化设备。根据报错信息可以知道,audio驱动打开pcmC0D0p失败。问题:插入喇叭并且插入带麦克风的摄像头后,喇叭没有声音。会去调用open函数。原创 2023-07-11 09:21:06 · 757 阅读 · 0 评论 -
rk3288中apk串口打开失败,selinux权限问题
思路:根据报错信息很容易知道是/system/bin/su这个文件不在,这个问题比较好解决,烧一下其他固件,adb poll /system/bin/su 然后再烧录这个有问题固件把su烧录进去。肯定是这里出问题了,设备不可读并且不可写。我们去dev下面看一下权限,发现权限没有问题,那肯定是!这边实在是想不出什么办法了,在网上搜了一顿发现最终还是解决了。然后还是不行,一样的错误。然后从网上找的串口api的源代码了,定位错误。其实就是重新定义一下我们要使用到的串口,然后赋予权限。原创 2023-07-03 17:39:36 · 498 阅读 · 1 评论 -
Java 多线程
3.创建线程对象,调用。3.创建线程对象,调用。原创 2023-07-02 22:25:45 · 154 阅读 · 0 评论 -
RK3288安卓7.1系统定制屏幕上面从底部往上滑显示状态栏,并且添加一个虚拟按键再次显示状态栏
现场环境:导航栏+状态栏隐藏,谷歌浏览器作为launcher启动并且进入。实现功能:安卓系统屏幕上任意位置连续点击5次后系统自动隐藏导航栏。难点:任意位置点击5下这个事件如何捕捉。原创 2023-06-27 15:08:30 · 566 阅读 · 0 评论 -
rk3288摄像头报错
原创 2023-06-14 09:07:09 · 106 阅读 · 0 评论