自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(226)
  • 收藏
  • 关注

原创 MTK Sensor传感器框架(加速度传感器,陀螺仪等)分析

【代码】MTK Sensor传感器框架分析。

2024-02-02 14:12:12 505

原创 Linux设备驱动开发学习笔记(等待队列,锁,字符驱动程序,设备树,i2C...)

在介绍Slab分配器之前,先定义它使用的一些术语。·Slab:这是由数个页面帧组成的一块连续的物理内存。每个Slab分成大小相同的块,用于存储特定类型的内核对象,例如inode、互斥锁等。每个Slab是对象数组。

2024-01-18 13:41:03 1025

原创 SCSI/UFS储存架构/协议/电源管理/命令处理流程

二是通过这层可以让 UFS 自己来掌握发送数据的节奏、控制自身的状态等,这样既可以免去 host 端持续的查询 UFS 的状态所带来的系统消耗,也是因为只有 UFS 本身最了解自己的内部状态,能够选择以最佳的方式在最佳时间把数据传递出去。如下图,蓝色框上方调用 HCI 的为主机软件部分,蓝色框下方的为 HCI 封装的硬件处理细节部分,即 HC(Host Controller,主机控制器)正如最开始提到的,UTP 和 SCSI 是属于 SCSI 这部分,在 JEDEC 的标准里能找到它们的具体说明。

2024-01-16 14:03:33 1281

原创 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 135

原创 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

原创 RK3288安卓7.1开机上电到显示logo需要在3s内完成

需求: 从上电到开始开机logo有一段黑屏时间,这个黑屏时间大概在6s左右,给客户体验很不好,现在需要将这段黑屏时间缩短到2-3s左右。至于为什么需要在这里加这个问题,就需要在uboot阶段打开调试,慢慢看uboot打印信息定位代码。

2023-08-30 14:03:59 1019

原创 RK3399 开机自启一个shell脚本,一直起不来BUG

其实就是在service下面加上。

2023-08-24 17:53:26 1175 2

原创 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 914

原创 allwinner 全志RS485调试,GPIO状态与万用表测量不同

这个是全志手动调试GPIO的方法,输入完上面的命令后,PG8应该为低电平,我们用万用表测试确实是低电平这说明GPIO号没有问题。驱动没有问题,GPIO号没有问题,UART0的485设备树没有问题,这就不知道是什么原因了。可以发现驱动在数据即将要发送的时候会将485的RTS拉高进入发送模式,当数据发送完毕就会拉低进入接收模式,这个逻辑说明驱动是没有问题的,但是我们用万用表测量发现UART0的485脚一直是高电平状态,根本就没有拉低过。UART0的RTS脚为UART1_RTS,找到这个脚在主控中的PGIO号。

2023-07-31 10:25:02 843 2

原创 权智A133P of_get_named_gpio_flags踩坑

权智A133P linux起不来,修改为。

2023-07-25 15:16:48 463

原创 权智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 680 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 3382

原创 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

原创 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 752

原创 rk3288中apk串口打开失败,selinux权限问题

思路:根据报错信息很容易知道是/system/bin/su这个文件不在,这个问题比较好解决,烧一下其他固件,adb poll /system/bin/su 然后再烧录这个有问题固件把su烧录进去。肯定是这里出问题了,设备不可读并且不可写。我们去dev下面看一下权限,发现权限没有问题,那肯定是!这边实在是想不出什么办法了,在网上搜了一顿发现最终还是解决了。然后还是不行,一样的错误。然后从网上找的串口api的源代码了,定位错误。其实就是重新定义一下我们要使用到的串口,然后赋予权限。

2023-07-03 17:39:36 490 1

原创 Java 多线程

3.创建线程对象,调用。3.创建线程对象,调用。

2023-07-02 22:25:45 154

原创 RK3288安卓7.1系统定制屏幕上面从底部往上滑显示状态栏,并且添加一个虚拟按键再次显示状态栏

现场环境:导航栏+状态栏隐藏,谷歌浏览器作为launcher启动并且进入。实现功能:安卓系统屏幕上任意位置连续点击5次后系统自动隐藏导航栏。难点:任意位置点击5下这个事件如何捕捉。

2023-06-27 15:08:30 547

原创 rk3288摄像头报错

2023-06-14 09:07:09 104

原创 mits081 lab1

mits081 lab1

2023-02-11 16:42:43 593

原创 408复习资料

2021 王道考研 计算机网络+习题讲解计算机网络pdf:链接: https://pan.baidu.com/s/1uLkFIfFCXUsCV03DnXqk0Q 提取码: qg7p 复制这段内容后打开百度网盘手机App,操作更方便哦习题课讲解:链接: https://pan.baidu.com/s/1U1wkkObxDPYdncK4VBiKJQ 提取码: 8uju 复制这段内容后打开百度网盘手机App,操作更方便哦课件:链接: https://pan.baidu.com/s/1eLP_SQK_

2021-05-01 21:47:42 1440

原创 一些优秀的想法。

四个关键字排序。越里层优先级越低。bool cmp(node a,node b){ if(a.x == b.x){ if(a.y == b.y){ if(a.z == b.z){ return a.index < b.index; } return a.z < b.z; } return a.y > b.y; }

2020-12-19 13:59:49 176 1

原创 Codeforces #665 D. Maximum Distributed Tree(贪心+思维)

题目大意:给定一颗树,现在你需要在n−1n-1n−1条边上加权,使得∑i=1i=n−1∑j=i+1j=nf(i,j)\sum_{i=1}^{i=n-1}\sum_{j=i + 1}^{j=n}f(i,j)∑i=1i=n−1​∑j=i+1j=n​f(i,j)最大。f(i,j):f(i,j):f(i,j):表示顶点iii到顶点jjj一条简单路径的边权之和。有三个限制:1.1.1.所有边权的乘积为kkk2.2.2.边权>1>1>13.3.3.边权为111的边尽可能的少。思路:..

2020-10-13 12:57:58 202

原创 Educational Codeforces Round 96 (Rated for Div. 2)(A-E题解)

题目大意:给你一个nnn,求解3x+5y+7z=n3x+5y+7z=n3x+5y+7z=n的解。思路:暴力枚举即可。代码:#include<iostream>#include<vector>#include<cstring>#include<algorithm>#include<map>#include<set>#include<stack>#include<queue>using ..

2020-10-12 16:39:45 178 1

原创 Codeforces Round #615 (Div. 3) (题解)

题目大意:给你三个数,用另外一个数n加到这三个数中去,看能不能使得他们相等。思路:先对齐,即都先加到三个数中最大数的大小,然后看剩余的数模333是否为0。代码:#include<iostream>#include<vector>#include<cstring>#include<map>#include<set>#include<algorithm>using namespace std;typedef lo.

2020-10-06 14:15:56 206

原创 C. Boboniu and Bit Operations(二进制,暴力,思维)

题面大意:给你nnn个序列aiaiai,mmm个序列bibibi,现在要你构造一个ccc数组,其中ci=aici=aici=ai&bibibi,求min(c1∣c2∣c3∣...∣cn)min(c1|c2|c3|...|cn)min(c1∣c2∣c3∣...∣cn)。思路:首先我们可以发现一个这样的性质,假设答案是sss。对于任意的cicici,都有ci∣s==sci|s==sci∣s==s。因为s=[0,1e9]s=[0,1e9]s=[0,1e9],n,mn,mn,m都很小,我们可以O..

2020-08-13 12:38:35 278

原创 最大流,费用流模板

最大流模板(Dinic)#include<iostream>#include<string>#include<vector>#include<map>#include<algorithm>#include<queue>#include<set>#include<stdio.h>#include<cstring>typedef long long int ll;const ll i

2020-07-25 09:58:13 131

原创 网络流专题(最大流、最小费用流、最小割、Dinic、EK、Spafa算法)

DiningTime Limit: 2000MS Memory Limit: 65536KTotal Submissions: 27910 Accepted: 12237DescriptionCows are such finicky eaters. Each cow has a preference for certain foods and drinks, and she will consume no others.Farmer John has cooked fabulous meal

2020-07-23 13:35:55 341

原创 Codeforces Round #656 (Div. 3)(ABCDE题解)

题面大意:给你x,y,zx,y,zx,y,z,并且满足x=max(a,b),y=max(a,c),z=max(b,c)x=max(a,b),y=max(a,c),z=max(b,c)x=max(a,b),y=max(a,c),z=max(b,c),要你输出a,b,ca,b,ca,b,c。思路:通过观察可以发现要满足上面的式子必然存在两个或者以上的最大值。然后就可以分三种情况讨论x=y,x=z,y=zx=y,x=z,y=zx=y,x=z,y=z,对于不同的情况令最大值为它们相同的那个数,然后次大值..

2020-07-18 23:04:55 182

原创 Codeforces Round #651 (Div. 2)(ABCDE题解)

题面大意:给你一个nnn,要你找两个数a,b(a<b<=n)a,b(a<b<=n)a,b(a<b<=n),求max(gcd(a,b))max(gcd(a,b))max(gcd(a,b))。思路:直接取b=nb=nb=n,然后a=n/2a=n/2a=n/2就行了,所以答案是n/2n/2n/2,如果为奇数n−−n--n−−。代码:#include<iostream>using namespace std;void solved(){ in.

2020-07-17 13:54:04 158

原创 Educational Codeforces Round 91 (Rated for Div. 2)(ABCD题解)

题目大意:要你找到1<=i<j<k<=n1<=i<j<k<=n1<=i<j<k<=n并且aj>ai,aj>akaj>ai , aj>akaj>ai,aj>ak。思路:直接暴力就行了。代码:#include<iostream>#include<algorithm>#include<map>#include<vector>#includ..

2020-07-16 18:22:59 251

原创 Codeforces Round #655 (Div. 2)(ABCD题解)

题目大意:给你一个nnn,要你构造一个长度为nnn的数组使得ai+aj!=azai+aj!=azai+aj!=az。思路:直接构造nnn个xxx即可,xxx可以取任意数,我这里xxx取的222。代码:#include<iostream>using namespace std;typedef long long int ll;const int maxn = 2e5 + 10;void solved(){ int n;cin>>n; for(in..

2020-07-15 12:46:12 183

原创 2020牛客暑期多校训练营(第二场)(BCDF题解)

题目大意:给你两个时间,要你求他们差了多少秒。思路:python的datetime搞搞就好了。代码:import datetimeif __name__ == "__main__": d1 = input() d2 = input() d1 = datetime.datetime.strptime(d1, "%H:%M:%S") d2 = datetime.datetime.strptime(d2, "%H:%M:%S") if(d1 > d2):.

2020-07-14 15:46:26 268

原创 Educational Codeforces Round 90 (Rated for Div. 2)(ABCD题解)

题目大意:有两个麦甜甜圈的店铺,第一个只单卖,价格是aaa元一个,第二个店铺是整箱卖,一箱bbb个ccc元,只能整箱卖,问你在第一个店铺买多少甜甜圈比第二个店铺便宜,如果不能输出-1,问你在第二个店铺买多少甜甜圈比第一个店铺便宜,如果不能输出-1。思路:如果a<c:a < c:a<c:说明第一个店铺单价低于第二个店铺输出数量111即可,否则−1-1−1。如果c/b<ac/b<ac/b<a:说明第二个店铺单价低于第一个店铺,把bbb移过去,就是a∗ba*ba∗b..

2020-07-11 17:52:35 300 1

原创 Codeforces Round #654 (Div. 2)(ABCDE题解)

题目大意: 给你一个[1,n],n[1,n],n[1,n],n个数,问你最多能组成多少相同的数。思路:很显然(1,n−1),(2,n−2),....(1,n-1),(2,n-2),....(1,n−1),(2,n−2),....这样就行了,答案就是(n−1)/2+1(n-1)/2+1(n−1)/2+1。代码:#include<iostream>using namespace std;typedef long long int ll;void solved(){ ll n;..

2020-07-11 00:11:38 215

原创 Codeforces Round #653 (Div. 3)(ABCDE题解)

题目大意:给你x,y,nx,y,nx,y,n,要你在[1,n][1,n][1,n]内找到最大numnumnum的数满足numnumnum % x=yx=yx=y。思路:一开始想的枚举xxx的倍数,然后超时了,就只能往数学的方向思考了,满足要求的最大的数一定是分布的nnn那里,所以我们可以直接n−(nn-(nn−(n%x)+yx)+yx)+y就行了,意思是用nnn减去超过xxx的那一部分,那么剩下的一定%x=0x=0x=0,所以再加上yyy就行了,不过有可能n−(nn-(nn−(n%x)+yx)+y..

2020-07-08 11:34:49 177

原创 单调栈专题

最近稍微补了一下单调栈的习题(虽然以前做过),加深一下理解。力扣84 :柱状图中最大的矩形思路:首先考虑一下暴力的做法,枚举每根柱子,它能延申的面积 = 左右两边第一个小于他的数组成的宽 * 这个数的值。就类似与中间这个黄色的柱子,大于它的都可以延申,直到小于它的就不行,所以这个题目就转化成了枚举每个柱子,并且求每个柱子左右两边第一个小于它的数的位置。我们可以类似用双指针的写法写一个O(n^2)的做法代码:class Solution {public: int largestRec

2020-05-29 17:13:38 185

原创 D. Multiset(权值线段树 or 树状数组+二分)Educational Codeforces Round 87 (Rated for Div. 2)

题目大意:给你一个长度为nnn的序列,以及qqq次询问qiqiqi,如果qi>0qi>0qi>0,在序列中插入qiqiqi,如果qi<0qi<0qi<0,在序列中删除第∣qi∣|qi|∣qi∣大的数,问你qqq询问后,如果序列中为空,输出000即可,否则输出序列中任意一个数即可。思路:所有操作无非就是删除第kkk大数,增加第kkk大数,我们可以用桶排序的思路建立线段树我们称为它为权值线段树,这个题n=1e6n=1e6n=1e6用权值线段树时间复杂度O(nlogn..

2020-05-19 14:48:11 180

原创 Codeforces Round #643 (Div. 2)(A-E)题解

题目大意:给你一个a1a1a1,要你求akakak,其中ai=ai−1+maxdigit(ai−1)∗mindigit(ai−1)ai=ai-1+maxdigit(ai-1) * mindigit(ai-1)ai=ai−1+maxdigit(ai−1)∗mindigit(ai−1),maxgigit(123)=max(1,2.3)=3maxgigit(123)=max(1,2.3)=3maxgigit(123)=max(1,2.3)=3。思路:这题一开始我项会不会有循环节,因为样例a2和a7的ma..

2020-05-16 23:40:16 216

原创 NC53681 「土」巨石滚滚(贪心)

NC53681「土」巨石滚滚题目描述帕秋莉掌握了一种土属性魔法她使用这种魔法建造了一个大型的土球,并让其一路向下去冲撞障碍土球有一个稳定性x,如果x < 0,它会立刻散架每冲撞一个障碍,土球会丧失ai的稳定性,冲撞之后,又会从障碍身上回馈bi的稳定性帕秋莉想知道,如果合理的安排障碍的顺序,在保证土球不散架的情况下,是否可以将障碍全部撞毁呢?输入描述输入一个整数T,代表T组数据,每组数据中:前一行两个整数n , m,表示障碍个数和土球的稳定性接下来一行两个整数,分别表示障碍的ai和b

2020-05-16 11:25:56 164

原创 Codeforces Round #642 (Div. 3)(A-E题解)

这场虽然只写了4题但是打的还是比较舒服的,除了T2粗心WA一发,其他都是一次AC还是比较舒服,开局也不错,20分钟切了两题。题目大意:要你构造一个长度为nnn的数组,使得它们的和等于mmm,并且要你最大化∑i=0i=n−1∣a[i]−a[i+1]∣\sum_{i=0}^{i=n-1}|a[i]-a[i+1]|i=0∑i=n−1​∣a[i]−a[i+1]∣思路:很显然的一个题。分类讨论一下。n=1n=1n=1:直接输出0即可。n=2n=2n=2:输出mmm即可。n>=3n>=3n&

2020-05-15 09:56:16 219

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除