<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[Schedule Plus]]></title><description><![CDATA[]]></description><link>https://blog.csdn.net/memory01</link><language>zh-cn</language><generator>https://blog.csdn.net/</generator><copyright><![CDATA[Copyright &copy; memory01]]></copyright><item><title><![CDATA[【TIPS】Ubuntu安装 Visual Studio Code / VSCode]]></title><link>https://blog.csdn.net/memory01/article/details/134951294</link><guid>https://blog.csdn.net/memory01/article/details/134951294</guid><author>memory01</author><pubDate>Tue, 12 Dec 2023 15:45:39 +0800</pubDate><description><![CDATA[【代码】【TIPS】Ubuntu安装 Visual Studio Code / VSCode。]]></description><category></category></item><item><title><![CDATA[Ubuntu 使用 create_ap 开启 wifi 热点]]></title><link>https://blog.csdn.net/memory01/article/details/114317155</link><guid>https://blog.csdn.net/memory01/article/details/114317155</guid><author>memory01</author><pubDate>Wed, 03 Mar 2021 15:20:18 +0800</pubDate><description><![CDATA[1. create_ap 获取/安装
git clone https://github.com/oblique/create_ap.git
cd create_ap
sudo make install

2. 获取 wlan/wireless 名字
$ ifconfig

enp0s31f6: flags=4163&lt;UP,BROADCAST,RUNNING,MULTICAST&gt;  mtu 1500
        inet 10.192.86.102  netmask 255.255.252.0]]></description><category></category></item><item><title><![CDATA[[Linux] 编译模块出现 "./include/linux/kernel.h:6:20: fatal error: stdarg.h: No such file or directory" 错误]]></title><link>https://blog.csdn.net/memory01/article/details/105094136</link><guid>https://blog.csdn.net/memory01/article/details/105094136</guid><author>memory01</author><pubDate>Wed, 25 Mar 2020 14:26:16 +0800</pubDate><description><![CDATA[问题现象
在ubuntu 编译一个第三方的驱动 .ko 时，遇到 “./include/linux/kernel.h:6:20: fatal error: stdarg.h: No such file or directory” 报错
原因
缺少的头文件gcc需要
Makefile 如下
obj-m := awusb.o
KDIR_1 := /lib/modules/$(shell uname -...]]></description><category></category></item><item><title><![CDATA[Android 快速获取App的包名和 Activity名字]]></title><link>https://blog.csdn.net/memory01/article/details/100564390</link><guid>https://blog.csdn.net/memory01/article/details/100564390</guid><author>memory01</author><pubDate>Thu, 05 Sep 2019 18:24:00 +0800</pubDate><description><![CDATA[1. 已安装的 APP
假设这个app是安装到Android 设备上了, 以diskinfo这个app为例
查找包名
adb shell pm list packages

这样会列出一大堆，检索一下会更清晰，一般包名都会包含app的名字
adb shell pm list packages | grep diskinfo
结果如下
package:me.kuder.diskinfo

查找 Ma...]]></description><category></category></item><item><title><![CDATA[高通平台GPU动态调频DCVS . 篇3 . 一个无法调频问题的解决过程]]></title><link>https://blog.csdn.net/memory01/article/details/97390969</link><guid>https://blog.csdn.net/memory01/article/details/97390969</guid><author>memory01</author><pubDate>Fri, 26 Jul 2019 15:13:48 +0800</pubDate><description><![CDATA[之所以会相对系统地总结GPU DCVS，是因为前段时间遇到一个GPU频率一直无法调节的问题
1. 问题现象
从 /sys/class/kgsl/kgsl-3d0/clock-mhz 获取GPU频率，结果一直维持在624MHz，该芯片的最高频率
无论做场景切换还是轻重载都是624MHz
2. 初步分析
无论是CPU还是GPU一般出现频率固定无法调频的时候，可能性有

governor设置成了user...]]></description><category></category></item><item><title><![CDATA[高通平台GPU动态调频DCVS . 篇2 . Framework & Procedure]]></title><link>https://blog.csdn.net/memory01/article/details/97273453</link><guid>https://blog.csdn.net/memory01/article/details/97273453</guid><author>memory01</author><pubDate>Thu, 25 Jul 2019 17:00:06 +0800</pubDate><description><![CDATA[1. 高通平台 GPU DCVS架构
GPU DCVS是基于Linux Devfreq来实现

高通的kgsl(kernel-graphics-support-layer)作为devfreq device
msm-adreno-tz 作为devfreq governor

简单的架构如下

如上图所示

首先 KGSL 作为device，msm-adreno-tz 作为governor注册到dev...]]></description><category></category></item><item><title><![CDATA[高通平台GPU动态调频DCVS . 篇1 . Interface]]></title><link>https://blog.csdn.net/memory01/article/details/97272031</link><guid>https://blog.csdn.net/memory01/article/details/97272031</guid><author>memory01</author><pubDate>Thu, 25 Jul 2019 16:29:23 +0800</pubDate><description><![CDATA[高通平台的GPU内核驱动架构趋于稳定，代码和接口都具备通用性，故分析整理出来以供快速参考
高通平台GPU内核驱动框架全称是 Kernel-Graphics-Support-Layer KGSL
1. KGSL kernel interface
kgsl驱动所暴露出来的GPU相关常规控制接口位于 /sys/class/kgsl/kgsl-3d0 路径下
/sys/class/kgsl/kgsl-3d...]]></description><category></category></item><item><title><![CDATA[[Android] [Linux] 修改defconfig之后如何快速生成内核config文件]]></title><link>https://blog.csdn.net/memory01/article/details/91895740</link><guid>https://blog.csdn.net/memory01/article/details/91895740</guid><author>memory01</author><pubDate>Thu, 13 Jun 2019 21:06:14 +0800</pubDate><description><![CDATA[做Android bsp开发经常会遇到改了内核config需要快速验证的情况，如果用最简单的编译bootimage方式会很费时
肯定存在更简单的方法
以arm64位的芯片bsp包为例
cd KERNEL_PATH
$ export ARCH=arm64
/*如果你是目标defconfig是 "arch/arm64/msm8150_defconfig" */
$ make msm8150_defco...]]></description><category></category></item><item><title><![CDATA[[Android] 编译出现 xxx is not clean, please run 'make mrproper']]></title><link>https://blog.csdn.net/memory01/article/details/91893380</link><guid>https://blog.csdn.net/memory01/article/details/91893380</guid><author>memory01</author><pubDate>Thu, 13 Jun 2019 20:37:35 +0800</pubDate><description><![CDATA[在kernel目录进行过make menuconfig之后，再编译整包出现 xxx is not clean, please run 'make mrproper'报错
但是根据提示在kernel路径下执行 make mrproper，依旧出现错误
这时候去根据提示内容，去找相应的Makefile，看看设么条件下会报这样的错
Makefile位于kernel的根目录下
# prepare3 is ...]]></description><category></category></item><item><title><![CDATA[Systrace分析游戏卡顿问题之王者荣耀CPU资源不足]]></title><link>https://blog.csdn.net/memory01/article/details/83796804</link><guid>https://blog.csdn.net/memory01/article/details/83796804</guid><author>memory01</author><pubDate>Wed, 07 Nov 2018 00:54:12 +0800</pubDate><description><![CDATA[写在最前
在18年以前，王者荣耀这款游戏对手机性能的需求很高，只有少数旗舰处理器才能流畅60帧运行，主要原因是游戏本身绝大部分任务集中在一个叫UnityMain的线程中，这个重负载的线程常常会因为CPU没办法满足其性能需求，导致一帧的处理时间超出16ms，进而表现出帧率波动/掉帧。
18年开始游戏方普及了多线程版本，也就是把原来的一个UnityMain拆分成了两个线程，对于CPU的最大性能需求降低...]]></description><category></category></item><item><title><![CDATA[Android系统功耗优化之Alarm - 从AlarmManager到Linux kernel]]></title><link>https://blog.csdn.net/memory01/article/details/83244444</link><guid>https://blog.csdn.net/memory01/article/details/83244444</guid><author>memory01</author><pubDate>Sun, 21 Oct 2018 19:50:25 +0800</pubDate><description><![CDATA[1 Overview
对于功耗优化时长可以看到alarm唤醒频繁，或者alarm timer持锁时间过长的问题，对于这样的情况Android的各个版本也都有持续性的优化，对于alarm来说，简而言之都是加强管控，尽可能减少唤醒，集中批量处理。
2 AlarmManager
AlarmManager提供接口供应用根据自己的需求，来设置alarm以及对应的处理方法
frameworks/base/co...]]></description><category></category></item><item><title><![CDATA[Android系统功耗优化之CPU - CPU功耗和频率的关系]]></title><link>https://blog.csdn.net/memory01/article/details/82972166</link><guid>https://blog.csdn.net/memory01/article/details/82972166</guid><author>memory01</author><pubDate>Mon, 08 Oct 2018 18:58:27 +0800</pubDate><description><![CDATA[现在的处理器都支持DVFS - 动态频率电压调整，我们都知道DVFS的设计是为了low power，那么CPU频率和功耗之间的关系如何，运行在相同频率处理A任务和B任务功耗就一样吗？
同任务不同频率
在某Android平台，在单线程运行dhrystone的情况下， 可以看到随着DMIPS的增加(其实也就是频率的增加)，Power数据前期相对平缓，后面就变陡了，越高频率功耗增加的越多

关于CPU功...]]></description><category></category></item><item><title><![CDATA[Linux内核通知链 使用和简析]]></title><link>https://blog.csdn.net/memory01/article/details/81943386</link><guid>https://blog.csdn.net/memory01/article/details/81943386</guid><author>memory01</author><pubDate>Wed, 22 Aug 2018 14:20:27 +0800</pubDate><description><![CDATA[1. 使用简述

通知链表是一个函数链表，链表上的每一个节点都注册了一个处理函数。当该chain对应的事件发生时(call chain)，链表上所有节点对应的函数就会被执行。



定义


1 定义notifier head 
通知链是一个链表，需要有一个链表头，后续的元素就可以陆续添加到这个链表中去




static RAW_NOTIFIER_HEAD(hello_chain);


2 ...]]></description><category></category></item><item><title><![CDATA[Linux DEVFREQ - 通用DVFS Framework]]></title><link>https://blog.csdn.net/memory01/article/details/81628131</link><guid>https://blog.csdn.net/memory01/article/details/81628131</guid><author>memory01</author><pubDate>Mon, 13 Aug 2018 13:21:26 +0800</pubDate><description><![CDATA[概述

DEVFREQ: generic DVFS framework with device-specific OPPs， devfreq是来自三星的MyungJoo Ham myungjoo.ham@samsung.com

一个具有OPPs的设备（Operating Performance Points）一般具有多个档位的频率和电压集合。因而系统就会面临需要从这些可调节档位中选择一个的问题。...]]></description><category></category></item><item><title><![CDATA[Android O 绑定SurfaceFlinger到大核]]></title><link>https://blog.csdn.net/memory01/article/details/81346557</link><guid>https://blog.csdn.net/memory01/article/details/81346557</guid><author>memory01</author><pubDate>Wed, 01 Aug 2018 19:19:13 +0800</pubDate><description><![CDATA[Android O 绑定SurfaceFlinger到大核

目前的平台是big.LITTLE 架构，遇到一个卡顿问题，怀疑和小核上中断过于频繁有关，所以想把SF绑定到大核看看


首先top获取SurfaceFlinger的pid 
 
707 system       -2 -20  98M  24M 6.8M S 17.0   0.4 541:00.94 surfaceflinger 

通...]]></description><category></category></item><item><title><![CDATA[Android系统-性能评估-2-了解systrace]]></title><link>https://blog.csdn.net/memory01/article/details/81177488</link><guid>https://blog.csdn.net/memory01/article/details/81177488</guid><author>memory01</author><pubDate>Tue, 24 Jul 2018 02:05:00 +0800</pubDate><description><![CDATA[systrace是一个分析Android性能问题的基础工具，但其本质上是其他某些工具的封装，包括：在host侧的封装atrace，在device端的可执行文件（用于控制用户空间的tracing和配置ftrace,即Linux内核中的主要跟踪机制）。Systrace使用atrace来enable tracing，然后读取ftrace的buffer，并且把它重新转换成HTML格式。（虽然较新的内核支持...]]></description><category></category></item><item><title><![CDATA[Android系统-性能评估-1-概述]]></title><link>https://blog.csdn.net/memory01/article/details/81161228</link><guid>https://blog.csdn.net/memory01/article/details/81161228</guid><author>memory01</author><pubDate>Mon, 23 Jul 2018 02:09:57 +0800</pubDate><description><![CDATA[在性能方面，有两项用户可见指标：

可预测、可察觉的性能。界面是否掉帧或始终以 60 帧/秒的帧速率渲染？音频在没有软件工件或弹出的情况下会播放吗？用户在触摸屏幕后要多久显示屏上才会显示相应结果？ 
耗时操作所需的时间长短（如打开应用）。 
前者比后者更显而易见。用户通常会注意到卡顿情况，但分辨不出 500 毫秒和 600 毫秒应用启动时间的差别，除非将两台设备并排进行对比。触摸延迟立刻就能被发现...]]></description><category></category></item><item><title><![CDATA[Android开发技术周报]]></title><link>https://blog.csdn.net/memory01/article/details/81160983</link><guid>https://blog.csdn.net/memory01/article/details/81160983</guid><author>memory01</author><pubDate>Mon, 23 Jul 2018 00:09:19 +0800</pubDate><description><![CDATA[这是一个外部链接，记下来防止迷路

Android开发技术周报]]></description><category></category></item><item><title><![CDATA[CRC校验的精彩介绍（A PAINLESS GUIDE TO CRC ERROR DETECTION ALGORITHMS）]]></title><link>https://blog.csdn.net/memory01/article/details/6161767</link><guid>https://blog.csdn.net/memory01/article/details/6161767</guid><author>memory01</author><pubDate>Sun, 08 Jul 2018 23:53:47 +0800</pubDate><description><![CDATA[&lt;br /&gt; 水平有限，不敢翻译，亵渎了好文章&lt;br /&gt;A PAINLESS GUIDE TO CRC ERROR DETECTION ALGORITHMS&lt;br /&gt;
Contents:&lt;br /&gt; [Sub-ToC
] for this document
 | Main [Table 'O Contents
]
1
.  Preface  1.1)  About the Author &amp; Copyright  1.2)  Abstract2
. ]]></description><category></category></item><item><title><![CDATA[Linux CPU 拓扑结构之调度域 | 调度组 - 以8核ARM big.Little架构处理器为例]]></title><link>https://blog.csdn.net/memory01/article/details/80964142</link><guid>https://blog.csdn.net/memory01/article/details/80964142</guid><author>memory01</author><pubDate>Sun, 08 Jul 2018 23:41:58 +0800</pubDate><description><![CDATA[CPU拓扑结构简介


SMT Level 
超线程处理器的一个核心
MC Level 
多核CPU的一个核心
DIE Level 
一个物理CPU的晶片（注意不是package，package是封装好了的，肉眼看到的CPU处理器）


cpu最小级别的就是超线程处理器的一个smt核，次小的一级就是一个多核cpu的核，然后就是一个物理cpu封装，再往后就是cpu阵列，根据这些cpu级别的不同，Li...]]></description><category></category></item></channel></rss>