自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(62)
  • 资源 (4)
  • 收藏
  • 关注

转载 QC快充协议

QC快充协议1.QC2.0协议工作原理设备通过USB数据通讯口D+、D-输出电压信号给充电器,充电器内置的USB解码芯片,判断充电器需要输出的电压大小。对于充电的USB线没有特别的要求,QC3.0协议向下兼容QC2.0协议,并且QC2.0分为A级和B级两种行业标准。A标准:5V、9V、12V输出电压;B标准:5V、9V、12V、20V输出电压。现在大部分支持快充的手机基本上都是QC2.0A标准,QC2.0充电器默认5V输出。适配器检测到D+、D-上的电压和其输出电平之间的对应表如下:1.

2021-05-27 13:53:16 3084

转载 高通电源管理qpnp-vm-bms驱动-电量计

1. compatible节点:qpnp-vm-bms.c使用来控制电池曲线的和BMS功能的,其compatible节点是"qcom,qpnp-vm-bms"2. probe函数:qpnp_vm_bms_probe函数如下:static int qpnp_vm_bms_probe(struct spmi_device *spmi){ struct qpnp_bms...

2019-12-27 15:01:21 3539

原创 抓包工具 tcpdump 用法说明

cpdump采用命令行方式对接口的数据包进行筛选抓取,其丰富特性表现在灵活的表达式上。不带任何选项的tcpdump,默认会抓取第一个网络接口,且只有将tcpdump进程终止才会停止抓包。例如:shell> tcpdump -nn -i eth0 icmp下面是详细的tcpdump用法。1.1 tcpdump选项它的命令格式为:tcpdump [ -DenNq...

2019-12-26 17:09:47 288

原创 Power Supply---驱动框架

1. 前言power supply class为编写供电设备(power supply,后面简称PSY)的驱动提供了统一的框架,功能包括:1)抽象PSY设备的共性,向用户空间提供统一的API。2)为底层PSY驱动的编写,提供简单、统一的方式。同时封装并实现公共逻辑,驱动工程师只需把精力集中在和硬件相关的部分即可。2. 设计思路先来回答一个问题:kernel中设备驱动的目的,是管...

2019-12-26 16:42:36 3945 1

原创 Android耗电统计算法

一、 概述Android系统中的耗电统计分为软件排行榜和硬件排行榜,软件排序榜是统计每个App的耗电总量的排行榜,硬件排行榜则是统计主要硬件的耗电总量的排行榜。涉及耗电统计相关的核心类:/framework/base/core/res/res/xml/power_profile.xml/framework/base/core/java/com/andorid/internal/os...

2019-12-10 15:17:14 1431

原创 cscope安装记录

安装:apt-get install cscope生成cscope的数据库:生成索引cscope.out先找出你关心的头文件和.c文件,我是在linux的根目录下执行find来找出所有的.h和.c文件。Linux中使用是GNU find命令,默认是递归查询的,所以找文件很简单。不像solaris中的find命令需要使用一些trick来实现递归查找。$ find . -...

2019-11-15 09:48:08 175

原创 android功耗分析文章集合

https://blog.csdn.net/StevenDuan17/article/details/100538332

2019-11-11 15:14:03 289

转载 android.mk

Android.mk是Android提供的一个makefile文件,可以将源文件分组为模块。用来引用的头文件目录、需要编译的*.c/*.cpp文件、jni源文件、指定编译生成*.so共享库文件或者*.a静态库文件,可以定义一个或多个模块,也可以多个模块中使用同一个源文件;Android.mk文档:1. Android.mk的官方文档:https://develo...

2019-11-08 09:29:31 189

转载 Android编译选项eng、user、userdebug的区别

eng:debug 版本user: release 版本userDebug版本:部分debug版本要了解Android编译选项eng、user和userdebug的区别,需先了解下LOCAL_MODULE_TAGS这一Android.mk文件里的配置项,一般配置形式为LOCAL_MODULE_TAGS := user eng optional test这个样子。...

2019-11-07 20:48:40 248

原创 android调试--adb disable-verity

在调试设备的时候。想要对文件进行读写于是使用adb remount出现提示。请使用 ”adb disable-verity“于是使用adb disable-verity 的命令。得到如下提示disable-verity only works for userdebug builds于是想半天,突然发现我编译的时候,lunch ****-userdebugl...

2019-11-07 20:45:48 8484

转载 Android 功耗优化

功耗优化- https://blog.csdn.net/zhangbijun1230/article/category/7541658android 功耗优化- https://blog.csdn.net/zhangbijun1230/article/category/7618452MTK 驱动- https://blog.csdn.net/zhangbijun1230/article/cat...

2019-11-07 19:45:03 1161

原创 高通平台功耗优化分析

本文结合该文档简单的总结了AP端功耗问题分析手段。首先是官方功耗分析流程图:注意几个关键的名词:Modem调制解调器芯片RPM Resource Power Manager是高通MSM平台另外加的一块芯片,控制整个电源相关的shared resourcesAPSS 应用处理器子系统,就是平常我们说的AP功耗问题一般分为低电流过高,或者异常唤醒造成。...

2019-11-07 19:31:00 1990

原创 git常用命令

Git重要概念master head每次提交,Git都把它们串成一条时间线,这条时间线就是一个分支。在Git里,有个分支叫主分支,即master分支。HEAD严格来说不是指向提交,而是指向master,master才是指向提交的,所以,HEAD指向的就是当前分支。一开始的时候,master分支是一条线,Git用master指向最新的提交,再用HEAD指向master,就能确定当前分支,...

2019-11-07 19:13:42 127

转载 android 功耗分析方法和优化

1、底电流调试(RockBottomCurrentOptimization)底电流在手机飞行模式下调试。每个平台的底电流数据可能不一样,具体可以参考release出来的CurrentConsumptionData文档或者releasenote。一般情况下的底电流参考数据上限是:512MRAM<1.5mA;1GRAM<2mA;2GRAM<2...

2019-11-07 17:51:25 860

转载 电量统计日志分析

Batterystats日志分析概述由于项目组的原因,慢慢的接触了一些Android系统的“快省稳”知识,最近陆续学习了一些关于功耗的知识,而Batterystats日志是搞功耗的日常工作之一,搞功耗人员,每天都要从用户反馈和日常测试中分析大量的日志,从日志中不仅可以发现很多的功耗问题,还可以提取到很多有用的信息和功耗优化得方向,从中积累了一些分析经验,现把这些经验总结出来。注:B...

2019-11-07 09:11:11 1392

转载 dumpsys介绍

dumpsys介绍目录1. 概要 2. 工作原理 2.1 dumpsys的代码逻辑 2.2 系统服务的dump方法 3. 解析dumpsys输出请尊重原创版权,转载注明出处。1. 概要dumpsys是Android提供的系统工具,可以用来查看所有系统服务的信息。在命令行输入如下命令,就可以罗列出当前所有的系统服务名:$ adb shell dumpsys ...

2019-11-06 21:29:48 697

转载 Android 电量采集机制及第二代 Battery Historian 分析工具

0x00 这是啥?这是一篇讲述应用耗电的文章,围绕 Android 电量采集机制及第二代 Battery Historian 分析工具讲述。文从数据采集、导出、环境搭建、解读报告的角度出发,从细节讲解整个流程。和大谈概念的文章不同,这里将进行实际操作及分析。写作动机来源于最近的工作需求,但分析过程中发现网上资料较为匮乏。在此执笔写作,以便日后回顾,亦作为分享的机会。0x01 电量统...

2019-10-31 15:05:06 549

转载 电量统计(1)-原理

说明:本文的代码以android-5.1.1_r8为蓝本,代码的在线网址是https://android.googlesource.com/1. 概要我们平常说的手机耗电量,一般涵盖两个方面:硬件层面的功耗和软件层面的电量。本文介绍的电量统计的原理,并不涉及到硬件层面的功耗设计,仅从软件层面围绕以下几个问题进行分析:Android如何启动电量统计服务?电量统计涉及到哪一些硬件模...

2019-10-30 19:28:54 1831

转载 电量统计(2)-日志

在电量统计(1)-原理一文中,我们分析了电量统计服务的运行机制、耗电量的计算方法。本文我们分析电量统计的输出日志,包括日志信息的格式、表示的意义等,这些日志信息能够帮助开发人员解决一些功耗和性能问题。1. 耗电原因为了更好的理解日志,读者需要对耗电有一个更为量化的理解。我们打开一个真实power_profile.xml,这是Pixel这款手机的功耗配置文件,截取了其中几行:&l...

2019-10-30 19:25:33 4578 1

转载 Battery-Historian基本参数介绍

Battery-Historian是谷歌推出的一款专门分析Bugreport的工具,是谷歌2015年I/O大会上推出的一款检测运行在android5.0(Lollipop)及以后版本的设备上电池的相关信息和事件的工具,是一款对于分析手机状态,历史运行情况很好的可视化分析工具,当设备在使用电池的时候,它可以使用开发者们看到系统级和应用级事件图表,在图表时间轴上可以缩放和平移,能够直观的看到自上一次充...

2019-10-29 13:47:09 1503

原创 linux 内核锁机制简单介绍

在操作系统引入了进程概念,进程成为调度实体后,系统就具备了并发执行多个进程的能力,但也导致了系统中各个进程之间的资源竞争和共享。另外,由于中断、异常机制的引入,以及内核态抢占都导致了这些内核执行路径(进程)以交错的方式运行。对于这些交错路径执行的内核路径,如不采取必要的同步措施,将会对一些关键数据结构进行交错访问和修改,从而导致这些数据结构状态的不一致,进而导致系统崩溃。因此,为...

2019-10-16 18:45:18 880

原创 nbd 和 iscsi 网络访问服务器磁盘基本操作

NBDhttps://github.com/NetworkBlockDevice/nbd服务端apt-get install nbd-server1、nbd 映射文件的属性会影响映射后的属性2、配置文件 /etc/nbd-server/config (指定ro,rw)3、配置后需 /etc/init.d/nbd-server restart4、启动 nbd-server -C ...

2019-10-12 15:02:58 1049

原创 使用dmsetup命令生成snapshot

可以使用如下方法建立snapshottarget的逻辑设备:1.分区并通知系统确认#fdisk /dev/sda 分别创建/dev/sda7、/dev/sda8、/dev/sda9分区均为1G空间#partprobe 其中/dev/sda7和/dev/sda8用来制作镜像目标linear target逻辑设备,/dev/sda9用来作为COW设备。2.编写创建/...

2019-10-11 10:00:28 873

原创 overlyfs and device-mapper snapshots 基本介绍以及操作验证

overlyfssudo mount -t overlay overlay -olowerdir=lower,upperdir=upper,workdir=work merged将lower和upper“合并”,并挂载到merged目录在merged目录创建h文件,可以看到出现在了upper目录下,可以看出它的创建规则,测试一下copy_up操作:...

2019-10-10 10:43:48 201

原创 虚拟机 ubuntu18.04 添加网络

/etc/init.d/network-manager restartifconfig ens32 172.17.116.148 netmask 255.255.255.0 //设置网卡IProute add default gw 172.17.116.2 //设置网关echo nameserver 114.114.114.114 > /etc/resolv.conf网...

2019-09-27 16:17:38 221

原创 linux内核模块通用模板记录

可实现三种打印info、debug、error并且显示打印的时间以及在debug以及error打印的显示函数名称。下载地址https://download.csdn.net/download/weixin_42164528/11827239...

2019-09-27 15:49:25 204

原创 linux用户与内核通信方式

共享内存:ioctl:sysfs:procfs:消息队列、socket:copy_from_user()/copy_to_user()以上同步通信方式,由用户态主动发起向内核态的通信,内核无法主动发起通信netlink:异步全双工的通信方式,它支持由内核态主动发起通信,内核为Netlink通信提供了一组特殊的API接口,用户态则基于socket API,内核发送的数据...

2019-09-26 14:01:34 608

原创 C++ 特定字符截取字符串删除空格

void del_sp(TCHAR *src) // 删除C风格字符串中的空格{ TCHAR * fp = src; while (*src) { if (*src != ' ') { // 如果不是空格就复制 *fp = *src; fp++; } src++;...

2019-09-19 10:20:14 607

原创 C语言编程技巧笔记

1. 函数中malloc申请的变量需要return,如何释放注:申请的内存一定要释放,否则可能造成内存泄漏char * func(void){ /*子函数体片段*/ char * str = (char*)malloc(sizeof(char)*100); str = "hello world!"; return str;}int main()/*主...

2019-09-10 14:04:20 130

原创 python基础语法学习笔记

python笔记变量和类型整型:二进制--ob100(十进制4)八进制--0o100(十进制64)十六进制--0x100(十进制256)浮点型:123.456(数学法)=1.23456e2(科学计数法)字符串型:'hello'"hello"布尔型:TrueFalse复数型:3+4j...

2019-09-06 15:28:59 301

原创 scp 配置ssh

ssh中,有两个钥匙:公钥、私钥,公钥主要是用于对一些敏感信息进行加密 , 私钥是用于对解密 。ssh的文件都存在于机器的~/.ssh中。客户机端:id_rsa(私钥) 、 id_rsa.pub(公钥) 、 known_hosts(已知远程主机) 服务器端:authorized_keys(验证过的公钥列表) 、 sshd_config(ssh配置文件)客户机使用ssh-keygen生成...

2019-07-19 11:12:24 1205

原创 linux在XFS文件系统上实现针对目录的配额限制

在Linux系统上支持对用户以及对用户组设置磁盘配额的文件系统很多,常见的Ext4文件系统对配额的支持就很好,但是如果要针对某个目录进行配额限制的话,就比较难办了。XFS文件系统支持Project Quota功能,通过该特性,可以支持目录级别的配额限制。要使用Project Quota功能,需要在挂载时指定-o prjquota参数,并且这个参数还不能和usrquota、grpquot...

2019-07-17 10:36:39 2884

转载 generic netlink

转载: 原理:https://blog.csdn.net/zh_94/article/details/81947062实例:https://blog.csdn.net/ty3219/article/details/63683698

2019-07-17 10:02:42 98

原创 菜鸟IT学习之路书籍中文

https://github.com/EbookFoundation/free-programming-books/blob/master/free-programming-books-zh.md#c

2019-07-04 14:59:25 146

原创 GSM模块调试笔录

简单验证几款无线产品tcp链接与服务器通信收发数据:都是串口调试,采用AT命令,文档已上传,在此记录下调试所用的命令顺序,调试结果:带+号的语句是收到的回应,AT+xxx是发出的命令 调试TCP连接正常收发数据正常。用tcp连接服务器,要想得到服务器的回应需要特殊配置(不会)。选用产品集顺的ME3616 只需要连接串口,一次发出以下命令:AT+ESOC=1,...

2019-06-14 18:00:12 851

转载 linux页高速缓存

页高速缓存(cache)是Linux内核实现磁盘缓存。它主要用来减少对磁盘I/O操作。是通过把磁盘中的数据缓存到 物理内存中,把对磁盘的访问变为对物理内存的访问。 磁盘高速缓存有两个重要因素:第一,访问磁盘的速度要远低于访问内存的速度,若从处理器L1和L2高速缓存访问则速度更快。第二,数据一旦被访问,就很有可能短时间内再次访问。正是由于基于访问内存比磁盘快的多,所以磁盘的内存...

2019-05-07 13:46:15 461

原创 传输linux服务器文件到windos

1、使用xshell工具ssh连接服务器2、服务器下载安装 lrzsz3、xshell 使用命令传输文件rz -bey 文件名 。。。。上传sz out 文件名 。。。。。下载...

2019-04-30 17:37:47 492

原创 tinycore 保存系统配置

举例:安装ssh 修改配置sudo cp /usr/local/etc/ssh/ssh_config.example /usr/local/etc/ssh/ssh_configsudo cp /usr/local/etc/ssh/sshd_config.example /usr/local/etc/ssh/sshd_configsudo /usr/local/etc/init.d/o...

2019-04-29 15:36:13 1951

原创 虚拟机启动openwrt img镜像

1/先新建虚拟机 配置选择稍后安装操作系统2/添加一个1G的IDE硬盘(命令为1g 可在虚拟机目录看到这个目录)3/使用WinHex工具 将openwrt img 镜像数据复制到1G的IDE硬盘上4/启动虚拟机,openwrt可以正常连接启动...

2019-04-29 15:30:39 5887

原创 虚拟机调试kernel添加串口

工具xshell 虚拟机->系统tinycore1/ 修改启动项 /boot/grub/menu.lst 或者修改位置在/etc/default/grub 修改完成后执行命令grub-mkconfig -o /boot/grub/grub.cfg2/修改虚拟机配置添加串口(需关闭虚拟机)硬件->添加->串行端口->使用命名的管道\\.\pipe\c...

2019-04-29 15:22:51 485

fifo-base-on-linux-kernel.zip

fifo base on linux kernel list.h ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

2019-10-08

driver.rar

可实现三种打印info、debug、error 并且显示打印的时间以及在debug以及error打印的显示函数名称。 介绍 https://blog.csdn.net/weixin_42164528/article/details/101539393

2019-09-27

GSM模块http_https_lbs_tcpip测试流程(AT command)

GSM模块http_https_lbs_tcpip测试流程,AT COMMAND测试流程

2018-06-20

MTP-多点触摸协议信息获取(附代码)

MTP-多点触摸协议信息获取(附代码),简单介绍了触摸屏多点协议以及相关知识点,附完整代码,可直接运行

2018-05-08

空空如也

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

TA关注的人

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