自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Change

良好的经验来自失败的教训

  • 博客(154)
  • 资源 (2)
  • 收藏
  • 关注

原创 Ubuntu14.04中使用repo时遇到无readline模块问题的总结

首先错误内之容:File "/home/lin.yuan/bin/repotcl", line 92, in <module> import readlineImportError: No module named readline

2021-05-31 16:09:11 749 1

原创 Ubuntu 18 系统中对openssl进安降级安装方法总结

1.下载openssl下载链接:https://www.openssl.org/source/snapshot/里边是当前仍支持版本的快照;同版本不同日期内容可能不同的,所以下载一般下对应版本的最新快照;安装出错则尝试另一个快照。解压后的文件夹下有INSTALL和README等文件。2.安装以root身份执行:openssl version #查看安装前openssl版本tar -zxf openssl-1.0.2-stable-SNAP-20160915.tar..

2021-05-08 18:04:52 4657

原创 adb卸载自带应用

adb shell pm uninstall -k --user 0 com.baidu.input_huawei 卸载自带应用

2020-10-24 15:22:45 1187

原创 虚拟机无法联网的方法

版本:vmware10.0.0 物理机:win8 虚拟机:rhel6.3问题:无法将 Ethernet0 连接到虚拟网络“VMnet8”。有关更多信息,请参见 vmware.log 文件。解决方法汇总:1.在 vmware“编辑->虚拟网络设置"里面,点击最下端“恢复默认”,再尝试重启。2.接通电源前在虚拟机设置里-网络-选nat3.开机启动项里有几个vmware的服务程序不能禁掉4.在window的管理工具--服务--开启VMware NAT Service服务...

2020-10-24 09:41:56 572 2

原创 android手机停用或卸载自带app方法

在手机上调出开发者模式:方法:多次点击关于手机--->系统版本号如:再到系统中可以看到开发人员先项,进入该先项,如:最后连接电脑,会出现:确定之后,就可以操作手机了。操作如下命令:adbshell pm list packages -[opition] > applist.txt如:adb shell pm list packages -d //只输出禁用的包adb shell pm list packages -e //只输出...

2020-08-03 15:37:30 2933

原创 Notepad++中使用正则表达式替换字符串

表达式 说明\t 制表符.\n 新行.. 匹配任意字符.| 匹配表达式左边和右边的字符. 例如, "ab|bc" 匹配 "ab" 或者 "bc".[] 匹配列表之中的任何单个字符.例如, "[ab]" 匹配 "a" 或者 "b". "[0-9]" 匹配任意数字.[^] 匹配列表之外的任何单个字符. 例如, "[^ab]" 匹配 ...

2020-04-27 16:13:42 544

原创 一种基于电池电压计算电池电量的算法的分析总结

这种算法应用在低成本的无界面的移动产品上,不依于赖库伦计,纯电压计算电压的方法。首先,设置一些基本的变量:struct capacity { int capacity; int min; int max; int offset; int hysteresis;};struct battery_capacity { struct capacity *tables; i...

2020-03-10 17:55:14 10423 14

原创 关于C语言中定义static变量的解释

在C语言中static类型的变量的意思其实和它的本意差不多,表示“静态”或者“全局”的意思,用来修饰变量和函数。经static修饰过后的变量或者函数的作用域或者存储域会发生变化,而由static修饰的变量在初始值方面也会表现出static关键字的优势。C语言中程序的内存分布: 1)正文段——CPU执行的机器指令部分;一个程序只有一个副本;只读,防止程序由于意外事故而修改...

2020-03-07 11:39:55 4723 1

原创 Linux中Input的设备驱动框架结构

先看框架图:再看看代码中的结构:分析一下Input_dev结构(include/linux/input.h):struct input_dev { const char *name; //设备名 const char *phys; //设备系统层的物理路径 const char *uniq; struct input_id id; //输入设备ID 总线类型;厂商编...

2020-03-06 16:58:55 332

原创 Android中getevent获取Input事件的用法

getevent 指令用于获取android系统中 input 输入事件,比如获取按键上报信息、获取触摸屏上报信息等。具体的代码目录:/system/core/toolbox/getevent.c。先看看效果:查看getevent -h获得相关信息:msm8909w:/ $ getevent -hgetevent -hUsage: getevent [-t] [-n] [-...

2020-03-06 15:46:09 2854

原创 Shell中at命令的使用总结

at 命令允许指定Linux系统何时运行脚本。at命令会将作业提交到队列中,指定shell何时动行该作业。at的守护进程atd会以后台的模式运行,检查作业队列来运行作业。 atd 守护进程会检查系统上的一个特殊目录(通常位于/var/spool/at)来获取用at命令提交的作业。默认情况下,atd守护进程每60秒检查一下这个目录。有作业时,atd守护过程会检查作业设...

2020-03-05 14:55:55 4996

原创 关于零指针、NULL、空指针、vold*指针和野指针的总结

1.零指针零值指针,是值为0的指针,可以是任何一种指针类型,可以是通用变体类型void*,也可以是char*,int*等等。在C++里面,任何一个概念都要以一种语言内存公认的形式表现出来,例如std::vector会提供一个empty()子函数来返回容器是否为空,然而对于一个基本数值类型(或者说只是一个类似整数类型的类型)我们不可能将其抽象成一个类(当然除了auto_ptr等只能指针)来...

2019-12-20 18:19:01 2085

原创 关于零长度数组的理解

零长度数组(柔性数组),一般用于可变结构体中,如:struct Packet{ int state; int len; char cData[0]; //这理是一个零长度数组};用途 : 长度为0的数组的主要用途是为了满足需要变长度的结构体用法 : 在一个结构体的最后, 申明一个长度为0的数组, 就可以使得这个结构体是可变长的. 对于编译器来说, 此时长度...

2019-12-20 18:11:47 678

原创 关于kobj与kset的总结

kobj/kset作为统一设备模型的基础,是Linux驱动中重要的部分,首先看kobj的结构体组成:struct kobject { const char *name; struct list_head entry; struct kobject *parent; struct kset *kset; struct kobj_type *ktype; struct kern...

2019-12-20 16:48:02 365

原创 git下载代码的相关操作总结

1.设置自己的ssh gitconfig --global user.name "your name" git config --global user.email "[email protected]"2.生成ssh密钥 ssh-keygen -t rsa -C "[email protected]"Tips:ssh-keygen命令...

2019-12-16 16:06:08 482

原创 container_of的函数用法总结

首先看看函数的原型:#define container_of(ptr, type, member) ({ \ const typeof( ((type *)0)->member ) *__mptr = (ptr); \ (type *)( (char *)__mptr - offsetof(type,member) )...

2019-12-09 17:17:46 718

原创 shell中清除编译产生的*.log或*.txt文件方法

使用脚本编译文件时,会产生一些编译的log或txt文件,在重新编译时会导致无法进行第二次编译,故在写编译脚本时,需要在编译前进行编译log文件的清除操作。一般使用如下操作:if [ -e *.log ]; thenrm *.logfi此时如果文件不存在,则不报错误。但如果有多个.log文件存在,则报错。这显然不满足要求的。在上述if[ -e *.log ]操作...

2019-11-25 10:53:34 965

原创 shell中让脚体自动输入sudo密码方法

在所编写的脚本文件中,使用echo "passwd" | sudo-Scommand使用-S是:使得sudo从标准输入读取密码而非终端sudo的命令选项:Options: -A, --askpass use a helper program for password promptin...

2019-11-25 09:46:22 1148

原创 三种不同组网方式,组建WIFI全覆盖

应用场景用多台无线路由器串联,主要是为扩大原有的无线覆盖范围,或者在原来局域网IP段下面构建新的IP段网络(子网段)。一般会在以下情况用到多台路由器串联:自家宽带已有无线路由器提供wifi信号:但有的地方信号弱,为了扩大无线信号覆盖,但考虑房间整体美观,不想拉网线过去,用无线路由器进行无线信号增强;自家宽带已有无线路由器提供wifi信号:但有的地方没有信号,没法桥接需要拉条网线过去并接无线...

2019-11-06 16:37:21 41221 5

转载 VMWare中Ubuntu设置固定IP上网

操作系统有很多种,通常我们首先接触的是Windows,因为Windows有很好的交互桌面,易于使用,但是很多时候,我们同样需要学习其他的操作系统,如Linux,但是我们一般不再自己的电脑上装多个系统,那样会导致电脑运行比较慢,所以一般使用虚拟机软件装虚拟机,常用的虚拟机软件一般有VMWare和VirtualBox,这里使用VMWare和Ubuntu来做例子。通常在Linux中,命令行使用比较多...

2019-11-06 09:51:40 240

转载 socket工作原理深入分析

本节目录一 iso七层模型 二 什么是socket 三 如何标识socket实例 四 socket接口一 iso七层模型看到这里相信大家对iso七层模型已经有所了解了,如果没有了解,赶紧去恶补一下啦~~直接上图:iso七层模型图片二 什么是socket首先我们python基础部分已经学完了,而socket是我们基础进阶的课程,也就是说,你自己...

2019-10-10 08:38:17 1013 1

原创 Android平台如何确定deconfig及dtsi的总结

1.在android目录下,使用source build/envsetup.sh2.再lunch之后:3.lunch msm8909w-userdebug之后:可以看到TARGET_PRODUCT=msm8909w4.在android目录下搜msm8909w:5.可以进入该目录下,查询AndroidBoard.mk文件。6.在AndroidBoard.mk文件...

2019-10-08 15:41:08 2713 2

原创 高通平台power_supply 框架下添加第三方充电IC的驱动方法

1.power_supply电源框架介绍:power supply framework在kernel/drivers/power/下。内核抽象出来power supply子系统为驱动提供了统一的框架。功能包括:1.抽象PSY设备的共性,向用户空间提供统一的API;2.为底层PSY驱动的编写,提供简单、统一的方式,同时封装并实现公共逻辑。power supply class位于d...

2019-08-16 16:13:53 9889 3

原创 IE浏览器高通网站打不开dump分析选择目录总结

首先需要安装jdk与jre最新版本安装之后配置好路径,重启电脑如果浏览器提示:Unable to load Java Applet. Please make sure JRE is updated.就如下图进行操作:在浏览器设置->安全->去掉ActiveX筛选的前面的√当死机之后,会有相应的log,QPST configuration 软件之后就...

2019-08-16 15:36:29 684 1

原创 高通平台电池充电的JEITA温升控制策略总结

JEITA规范将锂电池分为cold,cool,good,warm,hot,一般划分如下:temp < 0 ℃ :cold0 ℃ < temp < 10 ℃ :cool10 ℃ < temp < 45 ℃ :good45 ℃ < temp < 55 ℃ :warmTemp > 55 ℃ :hotJEI...

2019-08-16 15:19:23 11093 4

原创 高通平台充电驱动文件中添加延时工作队列

一.在相关的驱动结构体中添加相关的声明,如下:二.在驱动函数的probe中进行定义和初始化:在这里使用create_singlethread_workqueue进行创建,而不是使用create_workqueue,主要是前者是单CPU的,后者是在每个CPU上都会创建工作队列。调用INIT_DELAYED_WORK是进行工作队列的任务初始化,即延时工作队列chg_delay_wo...

2019-08-16 14:41:20 682 3

转载 Android 电池管理系统

一、Android 电池服务Android电池服务,用来监听内核上报的电池事件,并将最新的电池数据上报给系统,系统收到新数据后会去更新电池显示状态、剩余电量等信息。如果收到过温报警和低电报警,系统会自动触发关机流程,保护电池和机器不受到危害。Android电池服务的启动和运行流程:Android电池服务的源码结构 Framework\base\services\ja...

2019-05-31 08:43:56 654 1

原创 关于Linux内核内存申请的三种方式(kmalloc,kzalloc,vmalloc)的一点总结

最近在面试过程中,会问到Linux中申请内存的方式有哪些的问题,经过我查找书籍以及其他网络资料对其进行总结如下: 我们都知道在用户空间动态申请内存用的函数是 malloc(),这个函数在各种操作系统上的使用是一致的,对应的用户空间内存释放函数是 free()。注意:动态申请的内存使用完后必须要释放,否则会造成内存泄漏,如果内存泄漏发生在内核空间,则会造成系统崩溃。  那么,在内核...

2019-05-30 10:16:42 8068 2

原创 Android Init Language语法介绍

init.rc简介init.rc文件由系统第一个启动的init程序进行解析.它由”Android Init Language”语言编写而成.init.rc文件可以在你android设备根目录下找到.还记得我们上次编译的Android源码么?如果你已经编译过源码了,那么可以在out/target/generic/root/目录下找到该文件.要想读懂init.rc文件,首先要掌握Android...

2019-03-26 16:32:25 912

原创 句柄的理解,与指针的区别

Handle(句柄)在Windows中的含义很广泛,以下关于谈到的Handle除非特别说明,将仅限于进程、线程的上下文中。1、先来谈谈HandleHandle本身是一个32位的无符号整数,它用来代表一个内核对象。它并不指向实际的内核对象,用户模式下的程序永远不可能获得一个内核对象的实际地址(一般情况下)。那么Handle的意义何在?它实际上是作为一个索引在一个表中查找对应的内核对象的实际...

2019-03-26 13:43:14 1375

转载 深入讲解Android Property机制

1概述Android系统(本文以Android 4.4为准)的属性(Property)机制有点儿类似Windows系统的注册表,其中的每个属性被组织成简单的键值对(key/value)供外界使用。我们可以通过在adb shell里敲入getprop命令来获取当前系统的所有属性内容,而且,我们还可以敲入类似“getprop属性名”的命令来获取特定属性的值。另...

2019-03-26 11:11:05 9260 6

原创 解决Ubuntu中firefox无法显示中文界面的问题

 首先火狐ftp下载对应的中文语言包(https://addons.mozilla.org/en-US/firefox/addon/chinese-simplified-zh-cn-la/reviews/?src=api),安装。 地址栏输入 about:config 右键新建一个string,name设为intl.locale.requested,值为zh-CN 重启浏览器,完成注:...

2018-11-03 13:38:48 2748 1

原创 static关键字 与 volatile关键字的介绍

1.static关键字当一个进程的全局变量为static之后,它就变成了静态全局变量,静态全局变量和其他的全局变量的存储地点并没有区别,都在.data段(已初始化)或者.bss段(未初始化)内,但是它只在定义它的源文件内有效,其他源文件无法访问它。这样的static函数与普通函数的区别是:用static修饰的函数,限定在本源码文件中,不能被本源码文件以外的代码文件调用。而普通的函数,默认是...

2018-11-02 23:12:42 4292

转载 MTK pump express 快速充电原理分析

VBUS:USB正极 在讲正文之前,我们先看一个例子。       对于一块电池,我们假设它的容量是6000mAh,并且标称电压是3.7V,换算成Wh(瓦时)为单位的值是22.3Wh(6000mAh*3.7V);普通的充电器输出电压电流是5V2A(10W),理想状态下充满这块电池需要2.23小时(22.3Wh/10W)。现在我们假设充电器调整输出电压电流为10V2A(20W),那么充满同样的一...

2018-09-21 18:00:09 870

转载 USB Power Delivery快速充电通信原理

 本篇文章讲的快速充电是指USB论坛所发布的USB Power Delivery快速充电规范(通过VBUS直流电平上耦合FSK信号来请求充电器调整输出电压和电流的过程),不同于本人发布的另一篇文章所讲的高通Quick Charger 2.0规范,因为高通QC2.0是利用D+和D-上的不同的直流电压来请求充电器动态调整输出电压和电流实现快速充电的过程。 USB PD的通信是将协议层的消息调制...

2018-09-21 17:57:36 9777

转载 Android系统启动流程——解析init进程启动过程

最近主要是在看android关机充电流程,对android启动有些迷惑,结合网上博客专家的文章,加一些自己的理解。1.init简介init进程是Android系统中用户空间的第一个进程,作为第一个进程,它被赋予了很多极其重要的工作职责,比如创建zygote(孵化器)和属性服务等。init进程是由多个源文件共同组成的,这些文件位于源码目录system/core/init。2.引入init...

2018-08-28 13:53:16 431

转载 I2C的基础概念和框架

一、IIC 基础概念       IIC(Inter-Integrated Circuit)总线是一种由PHILIPS公司开发的两线式串行总线,用于连接微控制器及其外围设备。IIC总线产生于在80年代,最初为音频和视频设备开发,如今主要在服务器管理中使用,其中包括单个组件状态的通信。例如管理员可对各个组件进行查询,以管理系统的配置或掌握组件的功能状态,如电源和系统风扇。可随时监控内存、硬盘、网络、...

2018-06-28 23:31:33 595

转载 MTK Fuel Gauge算法分析

Battery 架构简析 MTK 平台 Battery 软件架构基本如上图所示。具体过程: 硬件 ADC 读取 Battery 的各路信息:包括温度,电压等。MTK 开发的电量算法分析得到的数据。Kernel 层将电量信息通过写文件节点的方式更新,并通过 UEVENT 通知上层。上层 Service 开启 UEVENT LISTENER,监听到 UEVENT 后,读...

2018-06-28 19:03:15 1217

原创 Ubuntu系统装Virtualbox中Windows7虚拟机中U盘不识别问题

Ubuntu16.04 的系统中安装Virtualbox运行Windows7,在Windows7 中Virtualbox的增强功能已经安装完成,同时也在vbox中安装好了“Oracle VM VirtualBox Extension Pack”识别不了U盘的主要原因是当前用户无权限,没有将USB加入用户组的原因造成的。解决方法:         1)、添加usbfs 用户组(virtualbox ...

2018-06-09 18:03:48 1669

转载 LTF散热框架软件实现_结合MTK6797平台

一. LTF热管理框架简介 LTF(Linux Thermal Framework),主要位于BSP kernel模块,LTF抽象出两种类型的设备,热区设备TZD[Thermal Zone Device] 和冷却设备[Cooling Device]。热区设备主要负责获取和上报从热传感器读取的转换温度值[单位毫摄氏度]。冷却设备通过开关某一个特定的处理函数,来给绑定的热区设备组件降温。一个热区设备最...

2018-06-07 18:11:15 1874

空空如也

空空如也

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

TA关注的人

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