- 博客(85)
- 资源 (22)
- 问答 (1)
- 收藏
- 关注

原创 各种“挤牙膏式” 优化android 功耗
文章目录1、底电流调试(Rock Bottom Current Optimization)1.1校准RF1.2飞行模式1.3使用perf_defconfig1.4移除debugging APKs1.5把应用尽量删除1.6去掉CPU占用高的进程1.7手动移除所有可以移除的外设1.8移除驱动模块1.9配置不用的GPIO1.10检查power相关的NV items1.11排查GPIO、LDO、总线对于L...
2020-07-04 14:29:52
1091
1

原创 从基本理解到深入探究 Linux动态频率调节系统cpufreq
文章目录基本理解cpufreq深入探究cpufreq2. 软件架构3. cpufreq_policy4. cpufreq_governor5. cpufreq_driver6. cpufreq notifiers核心(core)架构与API1. CPUFreq子系统的初始化2. 注册cpufreq_governor3. 注册一个cpufreq_driver驱动4. 为每个cpu建立频率调整策略(p...
2019-10-26 02:32:14
776
5

原创 从Bugreport 解读 Android电量统计原理
文章目录一. 电量值的获取和计算二. 应用功耗的计算方法第一部分:App耗电量统计:processAppUsage()三. 功耗问题分析定位及优化应用商店中关于电池管理的应用做的极其绚烂,可耗电应用排行、剩余时间计算、关闭耗电程序以节省电量等功能是如何实现的,遇到功耗高的问题从哪些方面入手分析和定位,这里简要总结如下。一. 电量值的获取和计算首先解释下各软硬件耗电量的计算。假设设备(如WI...
2019-03-07 19:52:54
3317
2

原创 集成电路的功率和能耗(课程总结)
集成电路的功耗 —— 功率和能耗一、功率与能耗:系统观点1.一个处理器需要的最大功率是多少2.持续功耗是多少3.能耗与能耗效率二、微处理器内部的能耗与功率1.动态功耗基本公式2.降功耗3.例题4.工艺改变,开关频率导致功耗高5.提高能耗效率(1)以逸待劳(2)动态电压频率调整(DVFS)(3)针对典型场景设计(4)超频6.静态功率(泄露电流)7.现代功耗评价指标
2018-11-18 23:41:31
4856
原创 healthd log 解读
文章目录healthd loglog打印来源log数据来源power_supply实现参考healthd logandroid kernel log中会打印出如下healthd log,这些log是什么意思?来自哪里?这篇文章为你解读。<12>[ 191.726280] .(4)[418:health@2.0-serv]healthd: battery l=4 v=3575 t=30.0 h=2 st=3 c=-248 fc=2946000 cc=1 chg=<12>[
2020-05-28 21:15:48
437
转载 Linux电源管理(6)_Generic PM之Suspend功能【重磅文章】-- wowo
文章目录1. 前言2. Suspend功能有关的代码分布1)PM Core2)Device PM3)Platform dependent PM3. suspend&resume过程概述4. 代码分析4.1 suspend入口4.2 pm_suspend & enter_state4.3 suspend_prepare4.4 suspend_devices_and_enter4.5 ...
2019-10-28 22:49:02
164
转载 Linux电源管理(1)_整体架构 -- wowo
1. 前言在这个世界中,任何系统的运转都需要能量。如树木依靠光能生长,如马儿依靠食物奔跑,如计算机系统依靠电能运行。而能量的获取是有成本的,因此如果能在保证系统运转的基础上,尽量节省对能量的消耗,就会大大提升该系统的生存竞争力。这方面,大自然已经做的很好了,如植物的落叶,如动物的冬眠Hibernate,等等。而在计算机的世界里(这里以运行Linux OS的嵌入式系统为例),称作电源管理(Powe...
2019-10-28 19:36:22
138
原创 在ubuntu系统运行linux内核相关函数demo
文章目录0. 概述1. 代码目录结构1.1 hello.c1.2 Makefile2. 操作过程2.1 make 编译模块2.2 生成文件2.3 安装模块2.4 卸载模块2.5 清除生成文件0. 概述我们编译linux驱动程序的函数代码都是Linux内核的函数,我们测试内核函数不能直接在用户层运行,需要借助ubuntu系统把内核函数放在模块,以模块形式插入ubuntu系统运行测试。1. 代码...
2019-02-25 17:00:22
253
原创 从基本理解到深入探究 Linux kernel 通知链(notifier chain)
文章目录基本理解Linux kernel 事件通知链深入探究Linux kernel 事件通知链基本理解Linux kernel 事件通知链linux/drivers/video/fb_notify.c一般人会使用这个几个接口就行了,若不想放弃请看下面深入探究Linux kernel 事件通知链。深入探究Linux kernel 事件通知链https://blog.csdn.ne...
2019-01-25 16:02:21
1675
原创 从基本理解到深入探究 Linux kernel container_of 宏
基本理解container_of 宏container_of,顾名思义就是某某某的容器,也就是说某某某成员变量所在的结构体是谁。在这里插入代码片一般人会使用这个宏接口就行了,若不想放弃请看下面深入探究container_of 宏。深入探究container_of 宏container_of 宏 版本一在这里插入代码片container_of 宏 版本二在这里插入代码片con...
2019-01-20 16:19:55
637
原创 《计算机体系结构:量化研究方法》5th 学习笔记
本书的目的权衡:成本-性能-功耗新平台:个人移动设备和仓库级计算机新体系结构:多核和GPU关于第五版两个极端:以移动电话和平板电脑到的个人移动设备PMD 为客户端,以提供云计算的仓库级计算机为服务器另一条主线:数据级并行DLP(许多数据项允许同时操作),任务级并行TLP(可以独立运行并很多程度上并行)指令级并行ILP向量体系结构和图像处理器GPU线程级并行仓库级计...
2018-11-18 23:32:33
4100
2
转载 Android Source 文档(微调-电耗-1概览)感谢Google.cn,附链接。
Android 官方网站是:https://www.android.com/其下的开发者网站是:https://developer.android.com/其下的源代码文档网站是:https://source.android.com/我相信作为正当上网的网民应该是打不开上面的网址的,后来在中国开通了google.cn,可以用了谷歌翻译(https://translate.google.c
2018-01-17 11:30:16
479
原创 信号量:整型、记录型信号量以及利用信号量实现进程互斥和前驱关系
整型信号量记录型信号量利用信号量实现同步利用信号量实现进程互斥利用信号量实现前驱关系分析进程同步和互斥问题的方法步骤信号量机构是一种功能较强的机制,可用来解决互斥与同步的问题,它只能被两个标准的原语wait(S)和signal(S)来访问,也可以记为“P操作”和“V操作”。原语是指完成某种功能且不被分割不被中断执行的操作序列,通常可由硬件来实现完成不被分割执行特性的功能。如前述的“Tes
2017-11-30 17:50:06
2491
2
原创 翻转链表算法和实现
写个翻转链表算法,刚开始想到一个不错的思路。这个思路运行效率不低,时间复杂度为O(n);可以不用分配额外的节点空间,空间复杂度为O(0)。现在把思路整理一下,并实现代码,测试运行结果。
2017-11-02 12:39:53
1053
原创 中断和异常的概念
中断Interruption 异常Exception在操作系统中引入核心态和用户态这两种工作状态后,就需要考虑这两种状态之间如何切换。操作系统内核工作在核心态,而用户程序工作在用户态。但系统不允许用户程序实现核心态的功能,而它们又必须使用这些功能。因此,需要在核心态建立一些“门”,实现从用户态进入核心态。在实际操作系统中,CPU运行上层程序时唯一能进入这些“门”的途径就是通过中断或异常。
2017-11-01 20:43:08
6532
原创 结构体struct、枚举enum、联合体union、位字段、自定义类型typedef、字节对齐
结构体struct1 结构体的基本知识2 结构体与函数3 结构体数组4 自引用结构体枚举变量enum联合体union位字段1 一般的方法定义屏蔽吗2 用位字段来定义屏蔽吗自定义类型typedef字节对齐pragma pachx 按x个字节对齐1.结构体struct1.1 结构体的基本知识#include <stdio.h>struct point{ int x
2017-10-24 21:57:15
1669
原创 C语言内存分配管理常见bug
标准C库提供了4个内存管理函数:malloc、calloc、realloc和free。bug1调用free释放p指向的内存块之后,p就是一个悬挂指针——指向逻辑上不存在的内存的指针。如果引用这个悬挂指针,会导致不可预见的错误。ElemType* p = (ElemType*)malloc(sizeof(ElemType) * NUM);...free(p);// p = NULL;...*p
2017-10-24 21:55:25
794
原创 C语言的静态库与共享库
1库的概念2静态库2-1 静态库的概念2-2 静态库的创建2-2-1 静态库创建的命令2-2-2 静态库创建的准备工作2-2-3 创建静态库的例子2-3 静态库的使用2-3-1 静态库使用的命令2-3-2 静态库使用的例子3共享库动态链接库3-1 共享库的概念3-2 共享库的创建3-2-1 共享库的创建命令3-2-2 共享库的创建例子3-3 共享库的使用3-3-1 共
2017-10-24 21:51:30
4008
1
原创 C语言编译流程
编译流程图示编译各阶段命令2-1预处理阶段2-2 编译阶段2-3 汇编阶段2-4 链接阶段1.编译流程图示我们在Linux环境下编译单个C文件时,最简单的方法是输入一条命令gcc hello.c就可以生成默认的可执行文件a.out,展开该命令可以看到实际流程如下。 (编译命令参数请看 link )预处理阶段 -&amp;gt; 编译阶段 -&amp;gt; 汇编阶段 -&amp;gt; 链接阶段2.编译各阶段命令预处理阶段编
2017-10-24 15:14:56
695
原创 gdb使用手册
设置断点和恢复命令常见命令高级命令查看源代码相关命令设置工作环境相关命令查看运行数据相关命令gdb core 使用找段错误gcc -g [option] [file]gdb 可执行文件设置断点和恢复命令1.常见命令l(list):查看载入的文件代码,如:l 10,l main;b(break):设置断点,如:b 10,b main;info b:查看断点信息;r(run):从
2017-10-22 11:59:05
847
原创 gcc使用手册
gcc [options] [filename]一般options-c :只编译不链接,生成目标文件.o;-S :只编译不汇编,生成汇编码;-E :只预处理;-g :生成调试信息;-o file:生成目标文件.o或可执行文件;-v:查看gcc版本;--std=name //name: c89, c90, c99, c1x, c11;-l dir 头文件;例子1gcc -o bin/he
2017-10-22 11:57:48
581
原创 学习IIC(I2C)原理
由于我本科专业是网络工程的,对代码比较敏感些,而对硬件相关原理比较陌生,现在来补回来中。。。**注意SDA和SCL两根总线需要上拉,使总线处于空闲状态。**
2017-10-17 19:01:14
3078
原创 Android系统各种稳定性问题所需要的log
Stability Type Log Requirement Catch Way 1.Crash Full crash dump 2.SystemReboot系统启动 Logcat, kmesg, tomestone 如下:1.Logcat logs(main, events, radio) 2.Dmesg/kernel logs 3.bugreport and
2017-09-28 13:14:07
1278
原创 抓log的各种方法和命令
单个c文件产生的logtest1adb rootadb shell "echo -n 'file mdss_dsi_panel.c +p' &gt; /sys/kernel/debug/dynamic_debug/control" cat /proc/kmsgcat /dev/kmsg |grep mdss_dsi_panel_bklt_dcs test2a...
2017-09-28 10:11:25
8260
原创 【编译错误解决方案】提示:“make mrproper”
【编译错误提示】当你不小心在kernel目录运行make编译命令,会出现一个棘手的问题:【解决思路过程】按提示先运行命令“make mrproper”,或者删除out目录,再编译,这也是无济于事的。 我们可以根据错误的输出在当前目录(.)递归(-r)搜索文本“make mrproper”,并显示行号(-n)。在./Makefile文件有一句和错误输出信息一致。 命令:grep –rn “make
2017-09-27 21:44:19
2086
1
原创 【ARM】Linux驱动移植
1驱动模块移植过程1模块的第一种编译方法改kconfig2模块的第二种编译方法Makefile2Linux驱动原理0从哪里切入1什么是注册2register_chrdev提交哪些数据21设备号为什么是23122设备名随便给23文件操作结构体怎么设置什么是THIS_MODULEOpencloseread这些都好理解3register_chrdev返回什么31 简洁而高效的go
2017-06-06 21:59:09
6241
1
原创 【ARM】ARM接口技术
0开发工具的使用1安装keil42运行MDK411EXE安装3选择好要安装的目的位置4安装完成并运行5安装JLink驱动6运行测试例程验证开发板是否OK1自己做一个例子1新建一个项目2选择与开发板对应的CPU型号3设置一个好的目标和组4配置目标5创建一个测试文件51创建mainc文件52建一个汇编文件53建立一个ini文件6设置参数7上板子调试2ARM接口原理1
2017-06-06 21:06:24
1521
原创 【ARM】移植linux kernel2.6.32注意事项
三个文件arm-linux-gcc v注意权限问题boorargs参数mkimage-lm 数学库etcexportsdev下没有fb0drawtree函数隐约有颗树搞定三个文件程老师(1209050967) 19:05:41 链接:http://pan.baidu.com/s/1pLg8V8J 密码:xu5r 程老师(1209050967) 19:06
2017-06-06 21:04:30
1104
原创 【ARM】制作Linux 文件系统
1从零开始由busybox 建立文件系统1文件系统在LINUX 中的结构图2编译好kernel3Uboot 状态下显示的环境设置信息4开始busybox 生成文件系统5完善文件系统第一步 init 会调用etcinittab 文件并根据其做相应的操作第二步可以手工做些设置第三步play MP3第四步添加Login修改inittab 为创造文件rcS2Linux
2017-06-06 21:03:03
2542
2
原创 【ARM】一步一步移植Linux Kernel 2.6.13到板子
1环境搭建所需材料2环境搭建所需材料之间的关系3所使用的开发板4译内核1修改makefile2拷贝配置文件3编译得到zImage4把zImage转成uImage5开发板串口连接6uboot设置7通过tftp服务器下载uImage8启动内核9先看挂载文件系统的样子10下面正式来操作1安装nfs-kernel-server2配置网络文件系统3配置内核里面的nfs选项11
2017-06-06 01:45:15
794
原创 虚拟机VMware Ubuntu系统与Windows文件共享的各种方法
1用VMware Tools2用samba共享Ubuntu目录1安装samba2编辑samba配置文件3添加samba用户4 在Windows访问共享文件夹Samba服务无法访问 网络名不再可用的问题3smb简单方法1ubuntu控制端设置2windows端设置4通过文件中转站连接到Ubuntu1在windows端设置2ubuntu控制端设置5SSH1ubu
2017-06-05 00:39:43
2786
原创 【ARM】使用J-Link下载u-boot到Mini2440开发板
1各种引导系统介绍1 bios12 Grub23 u-boot2下载u-boot过程31开发板设置为norflash启动2连好线后启动J-Flash ARM2Target-Connect3File-Open4Target-Auto即可自动烧写5烧写完成后关电取下j-link重新启动即可进入u-boot界面烧u-bootyfbin复位启动后界面烧光盘u-bootbin复位启动后
2017-05-26 00:21:31
1254
原创 Ubuntu16.04 通过源码编译安装 MySQL 5.7.17
参考: https://huoding.com/2013/08/20/279#comment-390716 http://blog.csdn.net/u010257584/article/details/51315438 http://blog.163.com/yumin_wang@126/blog/static/3629355020165237375714/ http://blog.csd
2017-03-05 15:27:30
4753
原创 在ubuntu Mysql 5.7 安装InnoDB Memcached 插件
在ubuntu Mysql 5.7 安装Memcached 插件参考:https://dev.mysql.com/doc/refman/5.7/en/innodb-memcached-setup.html MySQL 5.7 Reference Manual / The InnoDB Storage Engine / InnoDB memcached Plugin 15.20 I
2017-03-03 04:42:14
1528
原创 【Python爬虫9】Python网络爬虫实例实战
爬Google搜索引擎爬Facebook和Linkein1自动化登录Facebook2提取Facebook的API数据3自动化登录Linkedin爬在线商店Gap爬宝马官网爬取Google真实的搜索表单爬取依赖JavaScript的网站Facebook爬取典型在线商店Gap爬取拥有地图接口的宝马官网1.爬Google搜索引擎# -*- coding: utf-8 -*-impor
2017-02-17 13:17:35
11069
3
原创 【Python爬虫8】Scrapy 爬虫框架
安装Scrapy新建项目1定义模型2创建爬虫3优化设置4测试爬虫5使用shell命令提取数据6提取数据保存到文件中7中断和恢复爬虫使用Portia编写可视化爬虫1安装2标注3优化爬虫4检查结果使用Scrapely实现自动化提取1.安装Scrapy用pip命令安装Scrapy:pip install Scrapywu_being@ubuntukylin64:~/GitHu
2017-02-17 13:16:19
8149
原创 【Python爬虫7】验证码处理
获得验证码图片光学字符识别验证码用API处理复杂验证码1 9kw打码平台11 提交验证码12 请求已提交验证码结果12与注册功能集成验证码(CAPTCHA)全称为全自动区分计算机和人类的公开图灵测试(Completely Automated Public Turing test to tell Computersand Humans Apart)。从其全称可以看出,验证码用于测试用户是
2017-02-17 13:15:06
17443
原创 【Python爬虫6】表单交互
手工处理发送POST请求提交登录表单1分析表单内容2手工测试post请求提交表单3手工处理post请求登录的完整源代码从FF浏览器加载cookie登录网站1session文件位置2FF浏览器cookie内容3使用cookie测试加载登录4使用cookie登录源代码使用高级模块Mechanize自动化处理表单提交1用高级模块Mechanize自动化处理表单提交并支持登录后网页内容更
2017-02-17 13:13:36
7039
原创 【Python爬虫5】提取JS动态网页数据
动态网页示例对加载内容进行逆向工程1通过开发者工具的逆向工程2通过墨盒测试的逆向工程21搜索条件为空时22用号匹配时22用号匹配时渲染动态网页1使用WebKit渲染引擎2使用Selenium自定义渲染现在大部分的主流网站都用JavaScript动态显示网页内容,这样使得我们之前提取技术无法正常运行。本篇将介绍两种提取基于JS动态网页的数据。JavaScript逆向工程渲染Ja
2017-02-17 13:12:20
30124
原创 【Python爬虫4】并发并行下载
1一百万个网站1用普通方法解析Alexa列表2复用爬虫代码解析Alexa列表2串行爬虫3并发并行爬虫0并发并行工作原理1多线程爬虫2多进程爬虫4性能对比这篇将介绍使用多线程和多进程这两种方式并发并行下载网页,并将它们与串行下载的性能进行比较。1一百万个网站亚马逊子公司Alexa提供了最受欢迎的100万个网站列表(http://www.alexa.com/topsites ),我们也可
2017-02-17 13:08:36
5790
类似“极乐净土”代码字符做视频动画的c语言源码 BadApple.rar
2020-10-17
网络安全基础:应用与标准(第4版) 斯托林斯(William Stallings) (作者), 白国强 (译者), 等 (译者)
2014-08-24
思科网络技术学院教程(路由协议和概念)
2014-08-24
世界大学生程序设计竞赛(ACM.ICPC)高级教程:程序设计中常用的计算思维方式
2014-08-24
具体数学英文第二版
2014-08-17
linux-kernel-3.18.48
2017-10-30
apache-maven-3.3.9-bin.tar.gz
2016-06-30
alibaba-rocketmq-3.2.6
2016-06-30
tair-2.3.tar.gz
2016-06-30
4四阶龙格库塔公式推导(惠州学院13网络工程吴成兵)
2015-12-25
2015年下半年软件设计师真题和答案(下午)51CTO小任老师
2015-11-12
空空如也
ImportError: No module named pxssh
2017-02-09
TA创建的收藏夹 TA关注的收藏夹
TA关注的人 TA的粉丝