自定义博客皮肤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

让分享成为一种习惯

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

原创 [RK3288][Android6.0] Audio中的period_size使用规则

Platform: RockchipOS: Android 6.0Kernel: 3.10.92关于period_size的概念,之前有提过了,表示DMA一次传输的数据量:http://blog.csdn.net/kris_fei/article/details/72780656用户空间对period_size的设置:struct pcm_config pcm_co

2017-05-31 17:24:14 7789 7

原创 [RK3288][Android6.0] 调试笔记 --- Audio驱动层判断录音数据是否异常

Platform: RockchipOS: Android 6.0Kernel: 3.10.92之前有提到上层可以通过dump pcm数据查看波形来确定录音采样的数据是否正常,这里给出驱动层查看方法。http://blog.csdn.net/kris_fei/article/details/72763579当一次传输完成后会调用dmaengine_pcm_dma_c

2017-05-31 14:19:33 3248

原创 [RK3288][Android6.0] 调试笔记 --- USB Camera旋转图像方法

Platform: RockchipOS: Android 6.0Kernel: 3.10.92HAL层修改:int camera_get_number_of_cameras(void){......if (ptr != NULL) {   ptr++;   camInfoTmp[cam_cnt&0x01].facing_info.orientation

2017-05-31 13:20:23 5203 4

原创 [RK3288][Android6.0] 调试笔记 --- 录音音量从HAL到APP层会变小问题

Platform: RockchipOS: Android 6.0Kernel: 3.10.92现象:录音使用1K正弦波作为数据源做测试,然后比较HAL和APP层dump出来的pcm数据,发现到APP层之后相对HAL层的音量会小很多。原因:后来发现是因为在HAL层有个叫SPEEX的降噪算法,它会固定的信号有衰减,因此音量变小了。RK文档其实也做了说明了:

2017-05-27 18:43:29 2475

原创 [RK3288][Android6.0] 调试笔记 --- Volume up键改成Back键

Platform: RockchipOS: Android 6.0Kernel: 3.10.92kris@ecovacs:~/rk3288/device/rockchip/common$ g df d5f98d92d23d2c6318ba334a9b4dc6c10e9ce664 4be51a6277ea87764da776a07b9ad9eebc7a5d27diff -

2017-05-27 16:50:22 2256

原创 [RK3288][Android6.0] Audio的frame/period_size/bps_rate

Platform: RockchipOS: Android 6.0Kernel: 3.10.92Alsa Project上有篇文章,http://www.alsa-project.org/main/index.php/FramesPeriods觉得不错,简单地翻译了下:FramesPeriodsA frame is equivalent of one sam

2017-05-27 13:38:15 3814

原创 [RK3288][Android6.0] 调试笔记 --- 屏蔽系统下拉菜单显示

Platform: RockchipOS: Android 6.0Kernel: 3.10.92kris@:~/rk3288/frameworks/base/packages/SystemUI$ g df 3e38d54b49a34a1e923b7a3508f96cee73539576 8121135dc99e6864b09171a5fd71618181e26401di

2017-05-26 10:33:46 2124 2

原创 [RK3288][Android6.0] 调试笔记 --- Audio录音PCM数据抓取

Platform: RockchipOS: Android 6.0Kernel: 3.10.92当录音异常时需要把数据dump出来判断问题出在哪一层,RK虽然在HAL层已经提供了dump方法,但有点问题:static ssize_t read_frames(struct stream_in *in, void *buffer, ssize_t frames){.....

2017-05-26 09:50:20 4515 7

原创 [RK3288][Android6.0] Audio的DMA调用实例流程

Platform: RockchipOS: Android 6.0Kernel: 3.10.92dma engigne使用流程请看以前的一篇文章:http://blog.csdn.net/kris_fei/article/details/51305299此文关注点在Audio 对DMA的实例调用申请channel:soc_new_pcm -> soc-pcm.c

2017-05-24 17:22:52 4184 11

原创 [RK3288][Android6.0] Audio的ASOC驱动及数据结构

Platform: RockchipOS: Android 6.0Kernel: 3.10.92系统使用ASOC来处理Audio部分,可分为三大部分: Machine, Codec以及Platform.其中Codec分codec driver以及codec dai driver,Platform分platform driver以及CPU dai driver.rk_

2017-05-24 13:51:47 1302

原创 [RK3288][Android6.0] ALSA的buffer指针更新(hw_ptr)

Platform: RockchipOS: Android 6.0Kernel: 3.10.92借用网友的一张图,刚开始看code的时候,存在了误区,以为系统分配了n个buffer_size的buffer,后来才发现图里这么多buffer_size在code中其实都只是模拟一个循环buffer,读写指针的数值一直增大,这样他们俩理论上不会遇到,也就是没有圆形循环bu

2017-05-23 17:30:37 2534

原创 [RK3288][Android6.0] ALSA的DMA buffer读写位置更新

Platform: RockchipOS: Android 6.0Kernel: 3.10.92刚开始我以为走的是下面的通路一,后来调试发现根本没更新,而是在后面提到的通路二中更新了,不过通路一也提一下吧!通路一:以录音为例:snd_pcm_lib_read1 -> pcm_lib.c    snd_pcm_update_hw_ptr ->

2017-05-23 16:35:38 1857 8

原创 [RK3288][Android6.0] ALSA中的DMA buffer分配

Platform: RockchipOS: Android 6.0Kernel: 3.10.92 DMA(Direct Memory Access,直接内存存取),顾名思义,不占用cpu资源,从一个硬件存储区域把一部分连续的数据复制到另一个硬件存储区域。这里的用例就是:录音时,把录音数据从I2S搬运到驱动内存。放音时,把驱动里的播放数据搬到I2S。 DMA buff...

2017-05-22 18:14:07 3984

原创 [RK3288][Android6.0] Tinycap录音程序源代码浅析

Platform: RockchipOS: Android 6.0Kernel: 3.10.92源代码位于:external/tinyalsa/tinycap.cint main(int argc, char **argv){ FILE *file; struct wav_header header; //默认使用第一个录音设备,双通道

2017-05-22 10:30:18 4536

原创 [RK3288][Android6.0] Display中的2D Rendering机制

Platform: RockchipOS: Android 6.0Kernel: 3.10.922D rending都是通过Surface来实现的,路径如下:也就是说,有两条路径来做rendering:1. 通过hwui: 默认处理方式,也就是我们所说的硬件加速。2. 通过skia: 软件rendering engine.hwui的禁止可以细分到每个view

2017-05-19 16:56:30 1006

原创 [RK3288][Android6.0] Display中的Composition机制

Platform: RockchipOS: Android 6.0Kernel: 3.10.92系统有很多层layer,Composition就是要需要将不同layer组成一层,然后显示,如图:而compose有两条路径:1. 通过HWC,也就是通过硬件显示模块完成,这里是RGA模块。2. 通过GPU,需要传到DDR再处理,相对会增加功耗。RK对compos

2017-05-19 14:42:16 3672 2

原创 [RK3288][Android6.0] 调试笔记 --- 播放搜狐视频会Crash问题

Platform: RockchipOS: Android 6.0Kernel: 3.10.92现象:通过adb安装搜狐视频之后打开apk没进入界面之后系统就Crash,导致Android重启。Crash Log:--------- beginning of crash01-21 19:31:22.786   174   174 F libc    : Fata

2017-05-19 09:39:18 1892 13

原创 [RK3288][Android6.0] 调试笔记 --- 通过adb安装APK时间很长问题

Platform: RockchipOS: Android 6.0Kernel: 3.10.92使用adb安装apk[kris@:~/Downloads]$ adb install souhushipin_6500.apk要耗时40s,log如下:01-21 17:39:26.210  2011  2011 D AndroidRuntime: >>>>>> START

2017-05-16 09:54:53 8538

原创 [RK3288][Android6.0] ART虚拟机对APK的优化知识点小结

Platform: RockchipOS: Android 6.0Kernel: 3.10.92Android 4.4之后, Google使用了ART无缝地代替了Dalvik虚拟机,无缝是指接口相同,只是替换了库而已,ART和Dalvik的使用可以通过property persist.sys.dalvik.vm.lib.2来选择.#getprop [persist.sy

2017-05-15 19:02:47 1789

原创 [RK3288][Android6.0] Audio中的HW Params设置流程

Platform: RockchipOS: Android 6.0Kernel: 3.10.92这部分内容比较繁琐,,先从初始化开始了解里面参数意义,以period size这个参数为线索来追终代码流程.pcm_native.csnd_pcm_hw_constraints_init():int snd_pcm_hw_constraints_init(stru

2017-05-15 12:11:58 3145

原创 [RK3288][Android6.0] Audio录音HAL层的数据读取流程分析

Platform: RockchipOS: Android 6.0Kernel: 3.10.92用原生SoundRecoder apk为例,以sample rate, channel及buffer size这些参数为线索来跟踪,,流程如下:openRecord_l ->    AudioSystem::getInputForAttr ->        aps->get

2017-05-12 10:52:31 7632 33

原创 [RK3288][Android6.0] Audio录音HAL层的初始化流程分析

Platform: RockchipOS: Android 6.0Kernel: 3.10.92以采样率和buffer size为线索来跟踪开机时Audio Hal第一次初始化:AudioPolicyManager ->    ConfigParsingUtils::loadAudioPolicyConfig -> AUDIO_POLICY_CONFIG_FILE是/sys

2017-05-12 10:06:21 4911 6

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

Platform: RockchipOS: Android 6.0Kernel: 3.10.92ddr和gpu的clock都受dvfs模块管控, 所以只要执行:root@rk3288:/ # cat /sys/dvfs/dvfs_tree kernel log中打印出来:[ 2264.928913] DVFS TREE:[ 2264.928977] |[ 2

2017-05-11 16:07:02 7937 9

原创 [RK3288][Android6.0] 调试笔记 --- 移除uboot和kernel开机logo

Platform: RockchipOS: Android 6.0Kernel: 3.10.92diff --git a/arch/arm/boot/dts/rk3288-b.dts b/arch/arm/boot/dts/rk3288-b.dtsindex ad3bc1a..f000e29 100644--- a/arch/arm/boot/dts/rk3288-b.dts+++ b/arch/...

2017-05-11 09:41:11 9053 9

原创 [RK3288][Android6.0] AT24C02驱动分析及功能增加小结

Platform: RockchipOS: Android 6.0Kernel: 3.10.92Spec:网上很多,如https://wenku.baidu.com/view/0020131fff00bed5b8f31d05.html驱动:文件: kernel/drivers/misc/eeprom/at24.c支持at24cxx所有系列,当然也支持at

2017-05-10 13:11:24 2449

原创 [RK3288][Android6.0] 调试笔记 --- I2C通信失败问题

Platform: RockchipOS: Android 6.0Kernel: 3.10.92使用rk3288的i2c5读写时,会出现以下error log:root@rk3288:/ # cat /sys/bus/i2c/drivers/at24/5-0050/eeprom                                  [   24.297924]

2017-05-10 11:18:05 6944 12

原创 [RK3288][Android6.0] 调试笔记 --- 测试I2C设备正常传输方法

Platform: RockchipOS: Android 6.0Kernel: 3.10.92rk在驱动层做了一个通用i2c测试代码提供给上层快速测试i2c外设是否传输正常.测试使用方法:#echo [0-5] > /dev/i2c_detect    //0-5表示i2c number号,不过i2c5需要修改下驱动,默认只支持到i2c4.例如我的i2c2接的

2017-05-10 10:33:18 6715

原创 [RK3288][Android6.0] I2C默认传输速率及修改

RK对应的i2c controller驱动在kernel/drivers/i2c/busses/i2c-rockchip.c对应的传输函数是rockchip_i2c_xfer():static const struct i2c_algorithm rockchip_i2c_algorithm = { .master_xfer = rockchip_i2c_xf

2017-05-09 15:07:44 6448

原创 [RK3288][Android6.0] Audio录音frame rate设置流程小结

Platform: RockchipOS: Android 6.0Kernel: 3.10.92HAL:默认的配置在hardware/rockchip/audio/tinyalsa_hal/audio_hw.h:struct pcm_config pcm_config_in = {    .channels = 2,    .rate =44100,    //

2017-05-08 13:34:50 4461 1

原创 [RK3288][Android6.0] 调试笔记 --- 实时录音会有呲呲噪音问题

Platform: RockchipOS: Android 6.0Kernel: 3.10.92需求:APP按照16k, 16bit, 单声道去读取录音数据, 每100ms读取一次,也就是一次要读取3200字节,读取完之后写到网络发送到发送到PC.现象:经验证发现,如果读取之后直接写到文件,听到的声音不会有呲呲的噪音.而当写到网络发送缓冲时,因为耗时比写文件

2017-05-05 18:39:11 6086 2

原创 [RK3288][Android6.0] Wifi Service初始化流程小结

Platform: RockchipOS: Android 6.0Kernel: 3.10.92startOtherServices ->    SystemServer.java    mSystemServiceManager.startService(WIFI_SERVICE_CLASS); ->    WIFI_SERVICE_CLASS为 "com.android

2017-05-04 17:08:54 1305 2

原创 [RK3288][Android6.0] Wifi相关文件及类整理

Platform: RockchipOS: Android 6.0Kernel: 3.10.92由上往下相关路径:APP:packages/apps/Settings/src/com/android/settings/wifi    //Settings中看到的wifiFramework:frameworks/base/wifi    //wifimanager

2017-05-04 15:37:13 1022

原创 [RK3288][Android6.0] WiFi在Setting中的开启过程小结

Platform: RockchipOS: Android 6.0Kernel: 3.10.92当Setting选项中打开Wifi时, 调用流程如下,入口主要是setWifiEnabled()函数.onSwitchChanged ->    WifiEnabler.java  settings apk中.    mWifiManager.setWifiEnabled

2017-05-02 17:05:09 2515

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关注的人

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