- 博客(63)
- 资源 (1)
- 收藏
- 关注
原创 DRM crtc Timeout 流程分析
引言:相信在处理原厂显示问题时都会遇到crtc timeout 的问题,可能是hw_done / vblank / flip done 超时,软硬件工作异常导致这些标志位没有按时完成,导致显示错误。本章主要从crtc timeout 的问题来分析drm送图流程和其中的关键点。drm有十几万行代码,都看完并铭记于心不太现实,我们所需要了解的是一些关键函数和关键喉咙。我们以timeout 的问题引入来分析过程和代码。
2023-08-01 10:52:33
1333
原创 Binder c++试验、分析与理解
Binder试验、分析与理解本文的文章结构和内容依赖于韦东山老师讲解的Binder系统(免费课程),欢迎前往韦东山老师主站http://www.100ask.org了解详情。将通过一下内容进行分析Android Binder系统Binder系统_C程序示例Binder系统_驱动情景分析Binder系统_c++实现Binder系统_c++实现_内部机制Binder系统_JAVA...
2019-12-05 14:55:21
945
原创 【全志平台】dts内容如何最快导入到机器中
【全志平台】dts内容如何最快导入到机器中方法四:编译kernel,pack,烧录工具不选择任何分区是最快的方法。文章目录【全志平台】dts内容如何最快导入到机器中方法一:全编译整包烧录方法二:编译kernel ,dd导入boot.img方法三:pack, dd导入u-boot.fex方法四:编译kernel,extract-bsp,pack,烧录工具不选择任何分区试验结论实验...
2019-12-03 17:35:03
1053
原创 直接操作SurfaceFlinger画图并通过小demo深入分析SurfaceFlinger内部机制
SurfaceFlinger1. 测试SurfaceFlinger实验目的:写一个c++应用,调用SurfaceFlinger显示颜色关键字:SurfaceFlinger实验平台:全志T7-android步骤:编写cpp代码获得SurfaceFlinger服务创建Surface得到buffer写buffer提交buffer测试push到机器中看现象。...
2019-12-02 17:25:13
1153
2
原创 平台设备驱动模型--match过程
平台设备驱动模型–match过程/** * platform_match - bind platform device to platform driver. * @dev: device. * @drv: driver. * * Platform device IDs are assumed to be encoded like this: * "<name><i...
2019-10-14 15:43:54
237
原创 美化个人博客
美化个人博客https://blog.csdn.net/weixin_39345384/article/details/80785373
2019-08-02 18:16:30
511
原创 linux input输入子系统
input输入子系统https://www.cnblogs.com/deng-tao/p/6094049.html
2019-06-21 16:54:15
141
原创 usb总线驱动分析(针对使用)
USB总线设备驱动分析(使用)接上USB设备,内核打印信息接上usbU盘后内核打印:/*使用的是USB高速,148MB/s,设备号为3,使用的是echi*/<6>[ 51.848206] usb 1-1.1: new high speed USB device number 3 using s5p-ehci /*usb设备类型是:storage 存储设备 ,下面这些都...
2019-06-17 10:50:54
1669
原创 s5pv210 + wm8960 声卡驱动移植
s5pv210 + wm8960 声卡驱动移植已经移植成功了,端午节再补充调试流程和经验总结。源码:https://github.com/cshang983255766/friendlyArm-linux3.0.8/tree/master/sound/soc/s5pv2xx有用的话请,奖励GitHub一颗小星星 ^ ^...
2019-06-04 17:31:31
432
转载 修改了Ubuntu下的/usr目录权限,导致不能使用sudo命令的修复-----转载
https://www.cnblogs.com/ylhwx/p/7099382.html
2019-06-03 18:33:49
1046
原创 手撕ALSA和ASOC有感。
手撕ALSA和ASOC有感。文中图片引用自https://me.csdn.net/DroidPhone博主的文章。ALSAALSA其实就是一个字符设备驱动。万变不离其宗,和其他设备驱动套路一样。1、首先搞个类:class_create在sound_core.c中 sound_class = class_create(THIS_MODULE, "sound");2、然后搞个f...
2019-05-21 14:17:47
1501
原创 linux内核源码下载
linux kernel open source code downloadftp:http://ftp.sjtu.edu.cn/sites/ftp.kernel.org/pub/linux/kernel/官网:https://www.kernel.org/
2019-05-14 18:08:15
7425
转载 kindle资源
分享 | 精选10个kindle资源网站 http://www.360doc.com/content/17/0701/18/32446047_668021914.shtmlKindle 电子书资源上哪去找? - 知乎 https://www.zhihu.com/question/22192471图书资源 – 书伴(原名“Kindle伴侣”) https://bookfere.com/ebook...
2019-04-19 21:26:30
1760
转载 Vim升华之树形目录插件NERDTree安装图解
Vim升华之树形目录插件NERDTree安装图解无意中看到实验室的朋友使用的vim竟然能在左边显示树形目录,感觉很方便,这样子文件夹有什么文件一目了然。她说是一个插件叫NERDTree,安装执行后的效果如下,不是你想要的效果就别安了。我的系统是Ubuntu12.04,版本不同可能 .vim 所在的目录不同。本节用到的压缩包已经上传到网站,如有需要,请自行下载。免费下载地址在 http://li...
2019-04-13 14:53:54
237
转载 Linux下修改/etc/passwd。ubuntu不小心改了用户名登陆不上去(忘记密码可破解密码)
前几天手贱想修改一下用户名,然后打开/etc/passwd找到对应的文件名并修改了,而且把用户家目录都改名了,然后就上不去了。在网上找了很多方法,现记录下亲测有效的一种方法:1、重启ubuntu,随即长按shirft进入grub菜单;2、按"e"键进入编辑页面;如下3、将ro single替换为rw single init=/bin/bash; (上述的界面中将ro +后面的改为rw ...
2019-04-10 16:26:45
1313
原创 Android Binder设计与实现 – 设计篇
binder内核空间的实现与设计原理,值得一看https://blog.csdn.net/freshui/article/details/54926111
2019-04-05 15:11:31
328
原创 Android触摸屏驱动,电阻屏,电容屏
电阻屏:https://www.cnblogs.com/lifexy/p/7628889.html电容屏 : https://blog.csdn.net/xhao1985/article/details/81068706电容屏基本原理 :https://blog.csdn.net/wh_19910525/article/details/10819869...
2019-03-15 14:56:58
606
转载 /sys目录下各个子目录的具体说明
/sys目录下各个子目录的具体说明转自:http://blog.chinaunix.net/uid-27177626-id-3585189.html/sys下的子目录内容/sys/devices该目录下是全局设备结构体系,包含所有被发现的注册在各种总线上的各种物理设备。一般来说,所有的物理设备都按其在总线上的拓扑结构来显示,但有两个例外,即platform devices和system ...
2019-03-14 15:28:15
396
原创 【手写实例】在app中访问自己添加的服务
在app中访问自己添加的服务ok,服务有了,那就来写服务的调用者app。这里指的服务请看我另外一篇文章:《在framework上添加访问硬件驱动的服务》https://blog.csdn.net/daoliting5268/article/details/88308956这个就更简单了。首先用Android studio建个空项目。然后在主activity中分别加一个输入框和按钮,然后监听...
2019-03-07 15:37:30
145
原创 【手写实例】在framework上添加访问硬件驱动的服务
在framework上添加访问硬件驱动的服务写完了jni现在写调用jni的java服务层代码,jni实现:https://blog.csdn.net/daoliting5268/article/details/88294352ok如果我们只是写一个控制开发板上的一个IO口的服务相当简单。首先文件名,一定要和jni注册时写的服务名一样。首先服务是在com.android.server包中,...
2019-03-07 15:11:43
215
原创 【手写实例】为服务层实现jni方法的详解
为服务层实现jni方法这里说下我们的终极目的:给Android系统增加一个服务来控制开发板上的一个IO口。花费三个小时的时间写完了mydrv的hal。编写的时候主要还是注意那两个结构体。还有各函数的参数。欢迎查看我的HAL层https://blog.csdn.net/daoliting5268/article/details/87874521下面开始写jni,这就写到了native lib...
2019-03-07 11:49:36
347
转载 Android - 内存泄漏 + 垃圾回收(GC)概念
Android内存泄露——全解析和处理办法转载:https://www.cnblogs.com/qlky/p/7325139.html内存泄露说到内存泄露,就不得不提到内存溢出,这两个比较容易混淆的概念,我们来分析一下。内存泄露:程序在向系统申请分配内存空间后(new),在使用完毕后未释放。结果导致一直占据该内存单元,我们和程序都无法再使用该内存单元,直到程序结束,这是内存泄露。内存溢出...
2019-02-27 20:07:26
313
原创 【手写实例】HAL层实例写完后知识点总结。
HAL层实例完成后知识点总结。手动写完hal实例这里总结几个知识点。1.驱动属于内核空间,调用驱动的client属于用户空间。hal就是这两个空间的链接。了解过binder之后,觉得binder和hal的关系很密切。后面写向上层调用服务接口时会涉及到。2、知道hal是链接内核空间和用户空间之后,那具体是怎么链接的呢?接口通过什么规则定义呢?硬件抽象层有两个重要的数据结构:硬件模块结构体 h...
2019-02-22 11:07:13
446
原创 【备用】写binder实例的时候使用
【备用】写binder实例的时候使用https://blog.csdn.net/newchenxf/article/details/49359283
2019-02-21 18:52:25
97
原创 【好文收藏】手机就是开发板
【好文收藏】手机就是开发板https://blog.csdn.net/aggresss/article/details/54897377
2019-02-20 10:17:55
290
原创 Android跨进程通信:图文详解 Binder机制 原理
Android跨进程通信:图文详解 Binder机制 原理https://blog.csdn.net/carson_ho/article/details/73560642#commentBox
2019-02-17 23:18:02
234
原创 samba的配置与安装-深入理解
samba的配置与安装-深入理解1.安装samba2.修改/etc/samba/smb.configsmb.conf中原来的基本不需要改,直接到最后加上一段[share]path = /home/cuishang/avildable = yesbrowseable = yespublic = yesvalid users = cuishangwritable = yescre...
2019-02-16 14:44:55
472
原创 Android JNI例子
Android JNI栗子这里留意以下部分:sMethods数组定义了所要注册的JNI函数。第一个参数“NativeAdd”指的是在java层调用的函数名,第二个“(II)I”指的是函数的类型,第三个“(jint *)NativeAdd”指的是实际的C++函数“cls = env-&gt;FindClass(“com/example/mycalljni/MainActivity”);”对应...
2019-01-28 13:50:13
298
原创 vim多开文件
一、如果在终端还没有打开vim1、vim横向分屏打开多个文件vim -o 文件1 文件22、vim纵向分屏打开多个文件vim -O 文件1 文件2二、如果在终端已经打开vim1、横向分屏打开另一个文件:vs 文件2、纵向分屏打开另一个文件:sp 文件三、关闭窗口1、关闭所有:qa2、关闭光标所在窗口:q或者:close3、关闭除光标所在的窗口之外的其它窗口:only...
2019-01-28 13:35:15
419
转载 vi中ctrl+s无响应后如何退出
vi操作中经常习惯性ctrl+s保存,此时会进入类似锁屏状态,任何键失灵据说这是linux一个古老的快捷键解锁方式 ctrl+q
2019-01-28 13:33:55
232
原创 ctags常用命令(个人整理)
http://blog.csdn.net/myth_liu/article/details/5672572熟练的使用ctags仅需记住下面几条命:1.$ ctags –R * ($ 为Linux系统Shell提示符)2.$ vi –t tag (请把tag替换为您欲查找的变量或函数名)3.:ts (ts 助记字:tags list, ...
2019-01-27 15:48:42
3270
原创 Android消息队列
Android消息队列public class MainActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_...
2019-01-25 15:24:25
1225
原创 TimerTesk用法小例子
TimerTesk用法小例子package com.example.myapplication2;import android.support.v7.app.AppCompatActivity;import android.os.Bundle;import android.util.Log;import java.text.ParseException;import java.te...
2019-01-25 14:26:11
139
转载 shell脚本--sed的用法
shell脚本–sed的用法sed在处理文本时是逐行读取文件内容,读到匹配的行就根据指令做操作,不匹配就跳过。sed是Linux下一款功能强大的非交互流式文本编辑器,可以对文本文件进行增、删、改、查等操作,支持按行、按字段、按正则匹配文本内容,灵活方便,特别适合于大文件的编辑。本文主要介绍sed的一些基本用法,并通过shell脚本演示sed的使用实例。1.sed的使用方法,调用sed 命令的...
2019-01-25 14:09:36
139
原创 在Linux中创建线程和互斥信号量的使用
在Linux中创建线程和互斥信号量的使用在Linux中创建线程非常简单,只需要调用pthread_create函数即可。我们先来看一下该函数的原型: #include&amp;lt;pthread.h&amp;gt; int pthread_create(pthread_t *thread, pthread_addr_t arr, void (*start_routine)(void *), void *ar...
2019-01-24 14:20:50
581
原创 fork创建进程和利用匿名管道进程间的通讯
fork创建进程和利用匿名管道进程间的通讯#include &lt;unistd.h&gt; #include &lt;stdlib.h&gt; #include &lt;string.h&gt;#include &lt;stdio.h&gt; #define MAX_BUFFER 25int main () { int fpid = 0; //fpid
2019-01-24 11:33:43
268
原创 Android.mk中重要变量解析
Android.mk中重要变量解析变量名说明LOCAL_PATH (必须)用于确定源码所在目录,每个Android.mk只需要执行一次CLEAR_VARS (必须)清空上次编译被赋值的&amp;quot;LOCAL_&amp;quot;开头的变量(LOCAL_PATH除外)LOCAL_MODULE (必须)模块名,整个系统唯一存在且名字内不能含空格LOCAL_MODULE_PATH模块...
2019-01-23 19:00:53
298
原创 第一次尝试写Android.mk
第一次尝试写Android.mk##Android.mk for simple##编译模块所处路径LOCAL_PATH:=$(call my-dir)#清楚上次编译变量include $(CLEAR_VARS)#添加静态库LOCAL_STATIC_LIBRARIES:= libcutils#索引源文件LOCAL_SRC_FILES+=\ main.c ...
2019-01-23 17:56:28
209
4
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人