自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Kris Fei's blog

让分享成为一种习惯

  • 博客(77)
  • 资源 (12)
  • 收藏
  • 关注

原创 [RK3288][Android6.0] 用户空间对音频寄存器的控制

Platform: Rockchip OS: Android 6.0 Kernel: 3.10.92Audio HAL控制驱动中的寄存器是通过kcontrol结构实现的,kcontrol有多种类型,如mixer, mux等,由struct snd_kcontrol_new表示。简单型控件: 只有一个控制量,比如一个开关。如:static const struct snd_kcontrol_n

2017-09-29 17:28:49 1736

原创 [RK3288][Android6.0] 调试笔记 --- RT5640的ctl name列表

Platform: Rockchip OS: Android 6.0 Kernel: 3.10.92 Codec: RT5640在查看录音通路的ctl config列表时发现有找不到的ctrl name, 例如:const struct config_control rt3261_main_mic_capture_controls[] = { { .ctl_nam

2017-09-29 08:50:27 2905 7

原创 [RK3288][Android6.0] 调试笔记 --- RT5640录音时的Codec寄存器列表

Platform: Rockchip OS: Android 6.0 Kernel: 3.10.92 Codec: RT5640此文给调试RT5640播放无声音的朋友做参考。RT5640用的是RT3261的驱动.MIC接的是MIC1通路正常播放走main mic, 对应config配置在hardware/rockchip/audio/tinyalsa_hal/codec_config/r

2017-09-28 09:52:15 3643

原创 [RK3288][Android6.0] 调试笔记 --- RT5640播放时的Codec寄存器列表

Platform: Rockchip OS: Android 6.0 Kernel: 3.10.92RT5640用的是RT3261的驱动.speaker接的HPOL和HOPR. 正常播放走speaker, 对应config配置在hardware/rockchip/audio/tinyalsa_hal/codec_config/rt3261_config.h中.const struct conf

2017-09-28 09:39:18 4141 10

原创 [RK3288][Android6.0] 系统的ANR(Application Not Responding)

Platform: Rockchip OS: Android 6.0 Kernel: 3.10.92定义: 如果应用程序一段时间内不响应,系统会向用户显示一个对话框,这个对话框叫应用程序无响应.这种行为就叫ANR(Application Not Responding)触发原因: UI线程做耗时操作.例如不能处理到来的input event事件.系统主要通过Activity Manager

2017-09-27 10:01:17 709

原创 [RK3288][Android6.0] 调试笔记 --- 命令行录音方法

Platform: Rockchip OS: Android 6.0 Kernel: 3.10.92录制wav文件: 使用tinycap root@rk3288:/ # tinycap /data/test.wavtinycap用法:录制mp3文件使用系统自带的录音机 root@rk3288:/ #am start -n com.android.soundrecorder/co

2017-09-27 09:25:47 3900

原创 [RK3288][Android6.0] 调试笔记 --- 命令行播放音乐方法

Platform: Rockchip OS: Android 6.0 Kernel: 3.10.92播放wav文件可以使用tinyplay tinyplay /data/test.wavtinyplay用法 root@rk3288:/ # tinyplay Usage: tinyplay file.wav [-D card] [-d device] [-p period_size

2017-09-27 08:59:09 1914 9

原创 [RK3288][Android6.0] 移植笔记 --- RT5640 Audio Codec添加

Platform: Rockchip OS: Android 6.0 Kernel: 3.10.92之前平台用的RT5631, 由于此IC将要停产,所以需要替换为RT5640.RT5640和RT3224在硬件和软件上完全兼容, 而RK配置RT3224时用是RT3261的驱动,有点绕.以下是添加步骤: 1. 开启对应宏 kernel/arch/arm/configs/rockchip_defc

2017-09-26 15:48:48 6269 5

原创 [RK3288][Android6.0] 调试笔记 --- Camera动态热插拔支持

Platform: Rockchip OS: Android 6.0 Kernel: 3.10.92原生Google代码只在开机的时候加载一次Camera 的配置, 当开机之后再去插USB Camera, 虽然USB模块能枚举成功USB Camera,但是Camera HAL 和 Camera Service是无法得知此事件的.因此思维逻辑就是在每次APP初始化获取Camera信息的时候重新加载

2017-09-25 17:05:26 3772 81

原创 [RK3288][Android6.0] 调试笔记 --- AndroidTool低格无效问题

Platform: Rockchip OS: Android 6.0 Kernel: 3.10.92现象: 之前文章  [RK3288][Android6.0] 调试笔记 — AndroidTool两种低格方式 介绍了低格方式.在使用Android Tool去做低格发现重启后系统还是能正常开机.原因: 低格命令对eMMC无效.解决方法: 使用工具带的擦除Flash命令.

2017-09-25 14:46:05 1253 2

原创 [RK3399][Android6.0] 系统重启支持恢复出厂设置参数

Platform: Rockchip OS: Android 6.0 Kernel: 3.10.92reboot的boot flag请看文章  [RK3399][Android6.0] 系统支持的重启模式 注意到boot mode table中有对wipe data的支持(BOOT_WIPEDATA)enum { BOOT_NORMAL = 0, /* normal boot */

2017-09-25 14:26:32 2218

原创 [RK3399][Android6.0] 系统支持的重启模式

Platform: Rockchip OS: Android 6.0 Kernel: 3.10.92系统重启过程可参考  [RK3399][Android6.0] 系统重启调用过程小结而重启时android系统是支持带参数重启的. rk平台上定义的boot mode如下:enum { BOOT_NORMAL = 0, /* normal boot */ BOOT_LOADER,

2017-09-25 13:25:42 2045

原创 [RK3288][Android6.0] 系统关机调用过程小结

Platform: Rockchip OS: Android 6.0 Kernel: 3.10.92关机方法调用的是命令: #reboot -p因此用户空间调用过程以及系统调用都是和前文  [RK3288][Android6.0] 系统重启调用过程小结 一致的,差异就在于后面的参数引起最终调用的流程不同.流程如下: KEYWORD(powerctl, COMMAND,...

2017-09-25 11:12:31 2863

原创 [RK3288][Android6.0] 系统重启调用过程小结

Platform: Rockchip OS: Android 6.0 Kernel: 3.10.92reboot方式有两种: 1. 通过命令行 2. code中调用reboot().命令行调用: 命令调用对应的源文件: system/core/reboot/reboot.c本质上是通过property中的sys.powerctl来触发init进程调用 property_...

2017-09-25 10:01:17 2913 6

原创 [RK3399][Android7.1] 新调度策略Energy Aware Scheduling

在看rk3399的cpu freq文档有看到一个新的调度策略,叫做Energy Aware Scheduling (EAS).EAS由一系列不同组件组成,由ARM和Linaro一起开发.默认情况下CPU Frequency governor, CPU Idle governor, CPU Scheduler 它们都是独立工作的,可是他们的变化对相互之间都有影响.EAS 的目的就是结...

2017-09-22 16:03:12 2810

原创 [RK3288][Android6.0] 调试笔记 --- 播放GIF动画卡顿问题

Platform: Rockchip OS: Android 6.0 Kernel: 3.10.92现象: 偶发会遇到播放GIF动画会卡顿.原因一: CPU开启了温度检测,过热会导致CPU降频. 解决方法: 物理降温,如加散热片,风扇.原因二: GPU DVFS降频.可以看到中间有一次降到200M了. root@rk3288:/ # cat /sys/devices/ffa3000

2017-09-22 15:27:06 2210

原创 [RK3288][Android6.0] 调试笔记 --- Camera丢帧检测

Platform: Rockchip OS: Android 6.0 Kernel: 3.10.92rk在camera hal提供了计算实际fps的接口,默认注释掉了.static void debugShowFPS(){ static int mFrameCount = 0; static int mLastFrameCount = 0; static nsecs_t

2017-09-22 09:48:17 3297

原创 [RK3288][Android6.0] GPU DVFS控制策略小结

Platform: Rockchip OS: Android 6.0 Kernel: 3.10.92mali_device_driver 分为两个部分 : platform_dependent_part 和 common_parts, 参见 mali_kbase_config_rk.c 开头部分的注释.gpu dvfs核心控制在mali_kbase_dvfs.c中.s_mali_dvfs_lev

2017-09-22 09:31:51 2425 1

原创 [RK3288][Android6.0] 调试笔记 --- GPU DVFS的控制开关

Platform: Rockchip OS: Android 6.0 Kernel: 3.10.92GPU的DVFS不是在dts而是在驱动中直接控制并且默认打开的.DVFS控制核心函数是mali_dvfs_event_proc(), 放在队列中处理,而队列是否开启受变量dvfs->is_enabled的控制.int kbase_platform_dvfs_event(struct kbase_d

2017-09-21 17:17:28 3606

原创 [RK3288][Android6.0] 调试笔记 --- 温度对GPU频率的影响

Platform: Rockchip OS: Android 6.0 Kernel: 3.10.92有两处温度设定会对GPU有影响:rk3288.dtsi clk_gpu_dvfs_table: clk_gpu { operating-points = < /* KHz uV

2017-09-21 16:54:23 2949

原创 [RK3288][Android6.0] Mali GPU基本知识

Platform: Rockchip OS: Android 6.0 Kernel: 3.10.92Mali GPU的前身是Falanx,是挪威一家公司, 后来被ARM收购. 目前除了做GPU以外,Mali还做Camera, Video Processor, Display Processor.收购后的第一款产品是Mali 200, 后面是Mali 400系列, 属于Utgard架构. 后面

2017-09-21 14:08:22 5311 3

原创 [RK3288][Android6.0] 调试笔记 --- Recovery执行脚本方法

Platform: Rockchip OS: Android 6.0 Kernel: 3.10.92sh在system/bin/下,需要挂载/system脚本可以在device/rockchip/rk3288下完成拷贝这里因为要copy apk到data/app下,所以也挂载了/datakris@eco:~/rk3288/bootable/recovery$ g df e2cc9927e

2017-09-20 17:04:44 2071 4

原创 [RK3288][Android6.0] 调试笔记 --- Ubuntu下重新签名apk方法

Platform: Rockchip OS: Android 6.0 Kernel: 3.10.92拷贝签名文件/signapk.jar和apk到同一目录下.签名文件: rk3288/build/target/product/security/platform.pk8 rk3288/build/target/product/security/platform.x509.pem jar文件

2017-09-20 16:49:36 997

原创 [RK3288][Android6.0] 调试笔记 --- 禁止导航栏中的home key

Platform: Rockchip OS: Android 6.0 Kernel: 3.10.92之前 [RK3288][Android6.0] 调试笔记 — 屏蔽Home/Back Key 一文是屏蔽硬件的home key, 这里指的是屏蔽Navigation Bar上的虚拟home key.kris@eco:~/rk3288/frameworks/base$ g df 65f22bb72

2017-09-20 16:47:17 1059

原创 [RK3288][Android6.0] 调试笔记 --- 恢复出厂设置掉电保护

Platform: Rockchip OS: Android 6.0 Kernel: 3.10.92Recovery在做清data的时候, 会做一个掉电保护,如果在wipe data中途中掉电,那么下一次重启还是 会进入recovery模式重新做wipe data动作.比如当前使用命令恢复出厂设置: echo –wipe_data > /cache/recovery/command

2017-09-19 15:04:23 1871

原创 [RK3288][Android6.0] 调试笔记 --- AndroidTool两种低格方式

Platform: Rockchip OS: Android 6.0 Kernel: 3.10.92低格实现的功能是擦除固件所在分区的数据(parameter 分区及其后的所有分区)。第一种方式选择工具的低格,然后用分散文件烧写,用的分区表是AndroidTool中的parameter.txt 第二种方式是直接download update.img, 里面包含分区表, 下载之前会先默认低格.

2017-09-19 11:31:03 3025

原创 [RK3288][Android6.0] 调试笔记 --- Recovery log重定向

Platform: Rockchip OS: Android 6.0 Kernel: 3.10.92默认谷歌Recovery代码的log是输出到cache, rk在此基础上扩展了其功能. 支持输出到: 1. 外部sd卡 2. cache分区 3. UART定义选择在 bootable/recovery/Android.mk:#redirect to SDCARD、CACHE、UART

2017-09-19 10:45:03 2345 33

原创 [RK3288][Android6.0] 调试笔记 --- CPU使用的频率表

Platform: Rockchip OS: Android 6.0 Kernel: 3.10.92系统中有三张CPU相关的频率表:1. rockchip-cpufreq.c:/* Frequency table index must be sequential starting at 0 */static struct cpufreq_frequency_table default_freq

2017-09-19 10:31:14 4131 1

原创 [RK3288][Android6.0] 调试笔记 --- 读取GPU当前频率方法

Platform: Rockchip OS: Android 6.0 Kernel: 3.10.92 root@rk3288:/ # cat /sys/devices/ffa30000.gpu/clock current_gpu_clk_freq : 416666 KHz available_freqs : 99000, 198000, 297000, 417000, 48000

2017-09-18 14:57:26 5779 1

原创 [RK3288][Android6.0] CPU频率调度策略小结

Platform: Rockchip OS: Android 6.0 Kernel: 3.10.92CPU的频率调节模式: 1. Performance. 不考虑耗电,只用最高频率。 2. Interactive. 直接上最高频率,然后看CPU负荷慢慢降低。 3. Powersave. 通常以最低频率运行,流畅度会受影响,一般不会用这个吧! 4. Userspace. 可

2017-09-18 11:03:38 5908

原创 [RK3288][Android6.0] 调试笔记 --- CPU温度降频控制

rk3288平台关于温度调节cpu频率有个bug. 在rk3288.dtsi中,有:temp-limit-enable = <1>;target-temp = <80>;min_temp_limit = <48>;当温度升到超过80°时,随着温度升高,cpu频率最终会降到min_temp_limit的值,每次降的level按照下表执行 ...

2017-09-15 13:38:28 10461 7

原创 [RK3288][Android6.0] 调试笔记 --- CPU默认调度策略

Platform: Rockchip OS: Android 6.0 Kernel: 3.10.92CPU的频率调节策略: 1. Performance. 不考虑耗电,只用最高频率。 2. Interactive. 直接上最高频率,然后看CPU负荷慢慢降低。 3. Powersave. 通常以最低频率运行,流畅度会受影响,一般不会用这个吧! 4. Userspace. ...

2017-09-14 16:49:50 4519

原创 [RK3288][Android6.0] 调试笔记 --- 温度检测中断不会触发

Platform: Rockchip OS: Android 6.0 Kernel: 3.10.92之前在 [RK3288][Android6.0] TS-ADC驱动流程小结 一文中测试温度传感器设定65°,但是到了70°之后也没触发中断。利用IO工具([RK3288][Android6.0] 通用访问系统寄存器) 测试读取发现中断控制寄存器并没有使能中断,再回去检查代码。发现意见比较坑的事情:

2017-09-13 15:29:43 2234

原创 [RK3288][Android6.0] 调试笔记 --- 开机动画画面偏移

Platform: Rockchip OS: Android 6.0 Kernel: 3.10.92现象:增加开机播放mp4动画方案后,发现动画画面整体会往右偏移。而进入系统之后播放此视频是正常的。调试:  利用系统自带的dumpsys命令查看播放时的分辨率。其中 mCurrentCrop=[0,0,992,600] 表示当前播放的是992*600,而视频的分辨率是1024*600, 说明被裁

2017-09-13 14:31:53 2119 4

原创 [RK3288][Android6.0] 通用访问系统寄存器

Platform: Rockchip OS: Android 6.0 Kernel: 3.10.92由于系统寄存器映射到内存的固定地址,如下:比如我现在要访问TSADC想看看ADC的值是多少,dts中有tsadc address定义0xff280000表示起始地址,map表中也能看到。 0x100表示寄存器总共length.另外每个寄存器size是4, 那么就可以利用工具io来读取寄存器的值#

2017-09-12 17:45:58 2259 4

原创 [RK3288][Android6.0] 调试笔记 --- 命令行恢复出厂设置

Platform: Rockchip OS: Android 6.0 Kernel: 3.10.92 echo –wipe_data > /cache/recovery/command reboot recovery

2017-09-12 16:43:40 3656

原创 [笔记分享] [RPM] RPM sleep debug

例子:

2017-09-11 20:39:24 598

原创 [笔记分享] [RPM] RPM debug log

RPM概念: debug log:

2017-09-11 20:36:01 505

原创 [笔记分享] [RPM] msm8610 RPM 流程

platform: msm8610

2017-09-11 20:12:53 767

原创 [笔记分享] [RPM] RPM T32 dump方法

本文主要描述在gadget平台(msm8610)如何在rpm 进vdd min的时候用T32来dump clk/gpio/pmic。

2017-09-11 20:04:51 741

serial port test sample

测试范例,用于测试SerialPort JNI。 接收部分已经确认正常,发送还未作验证。

2018-08-31

camera preview test sample

1.打开就预览 2. button用于控制是开启preview callback并保存为jpg

2018-06-01

face++人脸搜索API测试用例

返回的数据解析没有全部做好,Post部分经过测试都是可以的。

2018-05-25

okHttpClient test sample

之前此工程是用于测试webView的,所以工程名不是叫okHttpClient. Server之前文章已经有提到如何搭建了,见 [Windows上Apache服务器的下载和安装](https://blog.csdn.net/kris_fei/article/details/80229735) 流程是从apache server读取一个文件json文件,然后解析显示到屏幕上,源代码中还有http的测试例子。okHttp的测试分同步和异步两种。

2018-05-11

WebSocketServer test sample

利用okHttp中自带的mock web server在AndroidStudio测试WebSocketServer 注意: 1.只能在本机回环测试 2. 端口号每次都是随机变化,client端每次都需要更改端口号才可以使用。

2018-05-11

WebSocketClient test sample

利用okHttp中的WebSocket功能在AndroidStudio测试WebSocketClient, 其中Server是使用okHttp中的moc web server搭建的,所以在同一台机器上测试的(moc只能在本机上测试),如果没有搭server, 可以换成“ws://echo.websocket.org”测试。

2018-05-11

apktool_and_dex2jar(ubuntu)

版本号:v2.3.2 如果apktool和dex2jar太旧,可以直接去https://ibotpeaches.github.io/Apktool/install/下载。

2018-04-26

jd-gui(ubuntu)

反编译得到Jar文件之后,使用此工具直接可以查看源代码。 版本号: v0.3.1

2018-04-26

toolbox elf文件

toolbox elf文件

2016-03-18

ION基本概念.docx

ION是Google的下一代内存管理器,用来支持不同的内存分配机制,如CARVOUT(PMEM),物理连续内存(kmalloc), 虚拟地址连续但物理不连续内存(vmalloc), IOMMU等。

2013-06-29

new work queue in linux 2.3.36

个人对Linux新的work queue机制的分析,如有不对的地方请交流,谢谢!

2012-08-10

c语言编程要点.pdf

根据自己看了一些书和编程经验总结的,希望对刚入门的学习有帮助。

2011-05-11

空空如也

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

TA关注的人

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