- 博客(69)
- 收藏
- 关注
转载 主机字节序与网络字节序的转换函数:htonl、ntohl、htons、ntohs
Part 1: htons函数具体解释 在Linux和Windows网络编程时需要用到htons和htonl函数,用来将主机字节顺序转换为网络字节顺序。 在Intel机器下,执行以下程序int main()...{ printf("%d /n",htons(16)); return 0;}得到的结果是4096,初一看感觉很怪。 解释如下,...
2018-08-23 14:18:38 16507
转载 Android-partition分析
android的存储分为两种 一种叫做RAM,如emmc标准的ddr3/4,容量比较小 一种叫做ROM,rom大小比较大,如8G/16G/32G/64G/128G。我们给手机刷机,是把system.img/recovery.img/userdata.img等按照分区表烧写在对应地址的ROM上,这部分叫系统部分,如16G的手机,开机后只有11G,其中5G被这些分区占据了,用户能使用的...
2018-08-22 16:55:14 897
转载 中断上下文
一、中断下半部-工作队列1、中断 先看一下宋宝华先生的《linux设备驱动开发详解》里面对中断的描述吧。这本书个人感觉 写的比较好,从开始学驱动到现在,还能从中得到不少知识。 设备的中断会打断内核中进程的正常调度和运行,系统对更高吞吐率的追求势必要求中断服务程序尽可能地短小精悍。但是,这个良好的愿望往往与现实并不吻合。在大多数真实...
2018-08-21 17:15:50 8590 2
转载 TP问题现象分析和解决方法汇总
No.1现象描述:进入浏览器,网页放大和缩小效果差原因分析:由于TP抖动导致该问题。解决方法:有抖动导致放大缩小不稳定,需要开启防抖功能,在最后主动丢掉2~3个点。 开启防抖会降低报点率,需要结合用户效果体验测试来决定防抖功能舍弃几个点。 No.2现象描述:TP下边缘划线测试80%几率出现断线原因分析:由于LCD显示区域和T...
2018-08-21 16:24:41 5884
转载 MTK pump express 快速充电原理分析
VBUS:USB正极在讲正文之前,我们先看一个例子。 对于一块电池,我们假设它的容量是6000mAh,并且标称电压是3.7V,换算成Wh(瓦时)为单位的值是22.3Wh(6000mAh*3.7V);普通的充电器输出电压电流是5V2A(10W),理想状态下充满这块电池需要2.23小时(22.3Wh/10W)。现在我们假设充电器调整输出电压电流为10V2A(20W),那么充满同样的一...
2018-08-21 14:39:40 3056
转载 采用Fuel Gauge可能出现的几种电量现象及解释
首先应该熟悉两个变量,bat_volt_check_point是UI上面显示的值。gFG_capacity_by_C,库仑计计算的电量值.也等于SOC的值.公式 DOD1 = DOD0 + (-Car/Qmax).DOD1对应当前的电量值.DOD0对应初始的电量值.Car 为t时间内, 流过Rfg电阻电流的电量.Qmax为电池的容量.下面几种情况会更新DOD0的值,1.开机头...
2018-08-21 14:38:58 4362
转载 库伦法-锂电池容量计量
锂离子电池容量计量之"库仑计"法;库伦容量计量方法涉及的电池方面的知识,同时还有一部分集成IC方面的知识.这篇关于库仑计的文章分成四个部分. 1.基本概念介绍,就是引出为什么要用库仑计来计量电池容量.2.库仑计简单说明,讲得比较浅适合一般的用户.3.库仑计进阶说明,详细补充库仑计的工作原理. 4.有关库仑计在手机上使用的各种现象解释,特别是拥有爱立信手机的机友,不妨参...
2018-08-20 16:47:27 19315 3
转载 信号量、互斥锁、自旋锁
一、互斥锁struct mutex my_mutex;//定义mutexmutex_init(&my_mutex);//初始化mutexmutex_lock(&my_mutex);//获取mutex... //对临界资源的操作mutex_unlock(&my_mutex);//释放mutex二、自旋锁spinlock_t lock;spin_...
2018-08-20 15:39:28 493
转载 Camera调试总结
Camera驱动的调试过程与方法总结根据以往调试Camera驱动,总结的一些小经验:1、首先对照电路图,检查Camera的电路连接是否正确;2、用万用表量Camera的电源管脚,查看Camera的供电是否正常,确定是否需要我们在程序中进行电源控制;3、查看Camera的Spec文档,检查PWDN和RESET的管脚触发是否正常,是否需要在程序中进行控制;4、在Camera的Dat...
2018-08-20 15:07:53 2684 1
转载 SPI 总线介绍
SPI(Serial Peripheral Interface,串行外设接口)是Motorola公司提出的一种同步串行数据传输标准,在很多器件中被广泛应用。1. 接口SPI接口经常被称为4线串行总线,以主/从方式工作,数据传输过程由主机初始化。如图1所示,其使用的4条信号线分别为:1) SCLK:串行时钟,用来同步数据传输,由主机输出;2) MOSI:主机输出从机输入数据线;3...
2018-08-18 14:50:31 1184
转载 TP出现跳点原因总结
触摸屏(TP)乱跳原因总结导致触摸屏乱跳的原因大概分为5类:(1) 触摸屏硬件通道损坏 (2)触摸屏固件版本太低 (3) 触摸屏工作电压异常 (4) 射频干扰 (5)触摸屏校准异常硬件通道损坏1.现象:点击TP的某块区域,无反应,但是该区域周围被感应到,产生了触摸事件2.问题分析:TP的感应区域是由一条条的感应通道组成的,若某几条感应通道坏了,那么点击该区...
2018-08-18 10:26:34 2559
转载 RAW数据格式解析
RAM数据格式解析Raw格式是sensor的输出格式,是未经处理过的数据,表示sensor接受 到的各种光的强度。Raw数据在输出的时候是有一定的顺序的,一般为以下四种:00: GR/BG01: RG/GB10: BG/GR11: GB/RG为什么每种情况里有两个G分量呢?这时因为人的眼睛对绿色比较敏感,所以增加了对绿色的采样。其中每个分量代表一个piexl。所以GR/BG...
2018-08-18 10:22:37 8918
转载 MTK Fuel Gauge算法分析
Battery 架构简析MTK 平台 Battery 软件架构基本如上图所示。具体过程:硬件 ADC 读取 Battery 的各路信息:包括温度,电压等。MTK 开发的电量算法分析得到的数据。Kernel 层将电量信息通过写文件节点的方式更新,并通过 UEVENT 通知上层。上层 Service 开启 UEVENT LISTENER,监听到 UEVENT 后,读取 batte...
2018-08-15 14:48:45 4503
转载 Android SDK下载安装及配置教程
转载自:http://blog.csdn.net/dr_neo/article/details/49870587Android开发环境搭建可以分为以下四步:第一步、安装JDK;第二步、安装Eclipse;第三步、下载并安装AndroidSDK;第四步、为Eclipse安装ADT插件 下面详细介绍。第一步、安装JDKAndroid开发工具要求必须安装JDK(Jav...
2017-12-07 13:33:32 13415 7
转载 JDK下载与安装教程
http://blog.csdn.net/u012934325/article/details/73441617学习JAVA,必须得安装一下JDK(java development kit java开发工具包),配置一下环境就可以学习JAVA了,下面是下载和安装JDK的教程: 1.JDK下载地址: http://www.oracle.com/technetwork/java/javas...
2017-11-27 08:21:05 841
转载 android 4.4 电池电量显示分析(低电量提醒与电池图标)Java 层
转自http://blog.csdn.net/daweibalang717/article/details/40615453 先贴一张类与类之间的关系图: android开机过程中会加载系统BatteryService ,说一下电池电量相关的,本文主要讲述关于JAVA 层代码。文件路径:\frameworks\base\services\java\com\android\se...
2017-11-21 15:29:45 2285
转载 android 4.4 电池电量管理底层分析(C\C++层)
转自http://blog.csdn.net/daweibalang717/article/details/41446993 参考文献:http://blog.csdn.net/wlwl0071986/article/details/38778897 简介:Linux电池驱动用于和PMIC交互、负责监听电池产生的相关事件,例如低电报警、电量发生变化、高温报警、USB插拔等等。A...
2017-11-21 15:25:50 995
原创 Android在一个应用中启动另一个应用
Android 开发有时需要在一个应用中启动另一个应用,针对这种情况,如果我们知道另一个应用的包名和MainActivity的名字之后便可以直接通过如下代码来启动:{ Intent intent = new Intent(Intent.ACTION_MAIN); intent.addCategory(Intent.CATEGORY_LAUNCHER); ComponentNam...
2017-11-14 14:32:04 1021
转载 Android中Battery电量上报流程整体架构拆解
http://blog.csdn.net/qq759981398/article/details/73155782本文进行第一层分解,将整个电池电量上报的过程分解到Android的不同层次。 先上一幅图,对电量上报的流程有个整体的概念,后续对该图的各个部分进行讲解。如图中所述,整个电量上报过程分为4个层次:1. Kernel 层本层属于电池的驱动部分,负责与硬件进行交互...
2017-11-14 14:28:57 2112
转载 Android获取屏幕状态的方式
http://blog.csdn.net/manjianchao/article/details/78033466在这里记录Android获取当前屏幕状态的方式。一、通过Display类中的getState方法获得,代码如下WindowManager windowManager = (WindowManager) mContext.getSystemService(WINDOW_SE...
2017-11-14 14:07:11 2489
转载 Android获取电池充电状态的方式
http://blog.csdn.net/manjianchao/article/details/78286151我需要知道当前设备是否在充电,如何实现?1、注册电池更改广播ACTION_BATTERY_CHANGED接收器。实现代码如下: IntentFilter filter = new IntentFilter(); filter.addActio...
2017-11-14 13:58:56 1151
转载 Android7.0 BatteryService
BatteryService与PMS之间的关系比较密切,提供接口用于获取电池信息、充电状态等。 为了对Android的功耗控制有更深入的了解,我们有必要分析一下BatteryService。一、启动过程 BatteryService与系统中的许多服务一样,是由SystemServer启动的。 我们一起看看SystemServer中相关的代码:..............//PMS...
2017-11-13 15:25:28 682
转载 Android 电池管理系统
一、Android 电池服务Android电池服务,用来监听内核上报的电池事件,并将最新的电池数据上报给系统,系统收到新数据后会去更新电池显示状态、剩余电量等信息。如果收到过温报警和低电报警,系统会自动触发关机流程,保护电池和机器不受到危害。Android电池服务的启动和运行流程:Android电池服务的源码结构 Framework\base\servic...
2017-11-13 15:23:58 684
转载 Android Battery 架构
Android电源android中和电源相关的服务有两个他们在/frameworks/base/services/core/java/com/android/server/一个是BatteryService.java,另一个是在目录powe下的PowerManagerService.java。电源管理架构Android电源管理主要通过Wakelock机制来管理系统的状态,整个a...
2017-11-13 15:21:01 3335
转载 android 读写文件
在android中的文件放在不同位置,它们的读取方式也有一些不同。本文对android中对资源文件的读取、数据区文件的读取、SD卡文件的读取及RandomAccessFile的方式和方法进行了整理。供参考。 一、资源文件的读取:apk中资源文件1) 从resource的raw中读取文件数据:try{ //得到资源中的Raw数据流 InputS...
2017-08-30 18:04:38 356
转载 JAVA JNI 数据传递
Android开发中,经常会在Java代码与Jni层之间传递数组(byte[]),一个典型的应用是Java层把需要发送给客户端的数据流传递到Jni层,由Jni层的Socket代码发送出去,当然,Jni层也需要把从Socket接收到的数据流返回给Java层。我简单地总结了一下,从Java层到Jni层,从Jni层到JAVA层,各有3种传递方式,下面用代码示例简单地介绍一下。 示例代码的主要文件...
2017-08-30 17:58:16 859 1
转载 JNI学习记录
1、frameworks/base/services/jni com_android_server_AlarmManagerService.cpp \ com_android_server_BatteryService.cpp \ com_android_server_InputApplicationHandle.cpp \ com_android_server_...
2017-05-22 21:35:35 385
转载 android开机充电及画面显示
转载自http://blog.csdn.net/xubin341719/article/details/8498580一、android正常开机流程、关机充电流程1、正常开机流程,按开机键。可大致分成三部分(1)、OS_level:UBOOT、kenrel、init这三步完成系统启动;(2)、Android_level:这部分完成android部的初始化;(3)、Home ...
2017-03-12 10:42:12 2839
原创 信息记录
http://blog.csdn.net/Luoshengyang/article/list/2 // Androidhttp://shyluo.blog.51cto.com/ http://blog.csdn.net/somyjun/article/category/1818943 // 虚拟化http://support.h...
2016-08-31 14:15:44 659
转载 open流程分析
open系统调用在内核中的流程分析 分三步走,力求讲得比较清楚。 一)驱动注册open函数都干了些什么? register_chrdev -> cdev_add -> kobj_map file: fs/char_dev.c int register_chrdev(unsigned ...
2016-08-25 16:09:28 826
转载 open系统调用
open()系统调用的服务例程为sys_open()函数,该函数接收的参数为:要打开的文件的路径名filename、访问模式的一些标志flags,以及如果该文件被创建所需要的许可位掩码mode。如果该系统调用成功,就返回一个文件描述符,也就是指向文件对象的指针数组current-> files-> fd_array或者current-> files-> fdtable.fd...
2016-08-25 15:55:56 2277
转载 usb触摸屏驱动 - usbtouchscreen
驱动编译:目前的kernel中都是自带了usbtouchscreen驱动的,我的版本3.1.10源码位于:/kernel/drivers/input/touchscreen/usbtouchscreen.c从这个路径可以看出所属驱动分支,我这边平台本身是没放开的,并没有编译进kernel,谁会想到触摸电视呢~可以在make menuconfig之后,通过Device Drivers...
2016-08-22 17:12:11 8785
原创 libusb简要记录
大致意思:libusb是kernel借助usbfs对usb的支持,主要是让application可直接透过usbfs对device发出usb transfer,实做于devio .c, inode.c, and devices.c 等三个kernel sources.in libusb-0.1.12:: :usb_urb_transfer() usb_urb_transfer() ...
2016-08-18 15:19:51 4115
原创 uvc驱动记录
Linux uvc驱动分析一、ioctl调用流程1.common/drivers/media/video/uvc/uvc_driver.cmodule_init(uvc_init);static int __init uvc_init(void){ result = usb_register(&uvc_driver.driver);}struct uvc_dri...
2016-08-17 14:16:58 692
转载 没有公钥,无法验证下列签名
新安装的Ubuntu在使用sudo apt-get update更新源码的时候出现如下错误:[plain] view plain copy print?W: GPG 错误:http://ppa.launchpad.net precise Release: 由于没有公钥,无法验证下列签名: NO_PUBKEY 3EE66BD3F599ACE3 W: GPG 错误:http:...
2016-08-04 09:39:02 1543
转载 常用 Git 命令清单
一般来说,日常使用只要记住下图6个命令,就可以了。但是熟练使用,恐怕要记住60~100个命令。下面是我整理的常用 Git 命令清单。几个专用名词的译名如下。Workspace:工作区 Index / Stage:暂存区 Repository:仓库区(或本地仓库) Remote:远程仓库一、新建代码库# 在当前目录新建一个Git代码库$ git init...
2016-08-03 15:12:05 327
转载 关于container_of和list_for_each_entry 及其相关函数的分析
Linux代码看的比较多了,经常会遇到container_of和list_for_each_entry,特别是list_for_each_entry比较多,因为Linux经常用到链表,虽然知道这些函数的大概意思,但一旦出现一个类似的函数比如list_for_each_entry_safe就又会感到头大,所以下定决心分析总结一下这些函数的用法,以后再看到这些面孔的时候也会轻松很多,读Li...
2016-07-22 15:55:51 476
转载 KVM+QEMU学习笔记
1 QEMU和KVM的关系: 现在所说的虚拟化,一般都是指在CPU硬件支持基础之上的虚拟化技术。KVM也同hyper-V、Xen一样依赖此项技术。没有CPU硬件虚拟化的支持,KVM是无法工作的。 准确来说,KVM是Linux的一个模块。可以用modprobe去加载KVM模块。加载了模块后,才能进一步通过其他工具创建虚拟机。但仅有KVM模块是 远远不够的,因为用户...
2016-07-14 17:41:36 2761
转载 qemu源码架构
前言:本文主要概括了QEMU的代码结构,特别从代码翻译的角度分析了QEMU是如何将客户机代码翻译成TCG代码和主机代码并且最终执行的过程。并且在最后描述了QEMU和KVM之间联系的纽带。申明:本文前面部分从qemu detailed study第七章翻译而来。 1.代码结构如我们所知,QEMU是一个模拟器,它能够动态模拟特定架构的CPU指令,如X86,PPC,ARM等等...
2016-07-14 15:36:21 1223
转载 hid-multitouch驱动源代码分析
Hid驱动代码(kernel/drivers/hid/hid-multitouch.c)。[cpp] view plain copystatic int __init mt_init(void) { return hid_register_driver(&mt_driver); } 这里面主要是调用了一个hid_register_dri...
2016-07-07 16:53:14 2421
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人