![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
-----Rockchip------
文章平均质量分 54
KrisFei
工作记录.
展开
-
[RK3399][Android7.1] 调试笔记 --- 三颗以上USB Camera的支持
Platform: RK3399OS: Android 7.1Kernel: v4.4.83需求需要支持三个USB Camera,系统默认支持的是两颗。解决方法:以下是rockchip给的patch,不过是有缺失的:diff --git a/CameraHal/CameraHal_Module.cpp b/CameraHal/CameraHal_Module.cppindex 2...原创 2020-03-27 17:34:36 · 3487 阅读 · 1 评论 -
[RK3399][Android7.1] 调试笔记 --- 显示画面出现mirror的问题
Platform: RK3399OS: Android 7.1Kernel: v4.4.83现象:添加好LVDS屏幕之后,显示画面mirror.解决方法:diff --git a/drivers/gpu/drm/rockchip/rockchip_drm_vop.c b/drivers/gpu/drm/rockchip/rockchip_drm_vop.cindex 087034...原创 2019-11-13 15:05:23 · 2856 阅读 · 1 评论 -
[RK3288][Android6.0] 调试笔记 --- DVP Camera旋转预览和回调数据
Platform: RK3288OS: Android 6.0Kernel: 3.10.92需求:摄像头安装之后预览和预览回调画面是倒着的,需要旋转180°。现象:通过修改camera_board.xml中的参数<SensorOrientation orientation="0"></SensorOrientation>,发现只有预览画面正常,而预览回调数据还...原创 2019-11-12 11:08:35 · 1554 阅读 · 0 评论 -
[RK3288][Android6.0] MIPI DSI显示屏(768*1024)添加
Platform: RK3288OS: Android 6.0Kernel: 3.10.92说明:还是按照老流程调试屏幕:DTS改成DSI 配置配置屏GPIO配置屏的init cmds(这次有150多条,把我写死了)测量GPIO电瓶和输出时钟和数据波形如果还不行就使用BIST模式(屏幕自己显示出场设置的显示画面)验证Mipi cmd有没有写到屏里面去了,rk3288平台的读ds...原创 2019-11-07 15:03:33 · 2992 阅读 · 19 评论 -
[RK3288][Android6.0] 调试笔记 --- DVP摄像头OV5640预览异常
Platform: RK3288OS: Android 6.0Kernel: 3.10.92现象:配置好摄像头之后可以打开预览,但是显示画面异常,如下:解决方法:cam_board_rk3288.xml<SensorPhy phyMode="CamSys_Phy_Cif" sensor_d0_to_cif_d ="2" cif_num="0" sensorFmt="CamS...原创 2019-11-07 14:21:36 · 1389 阅读 · 0 评论 -
[RK3288][Android6.0] DVP接口摄像头OV5640添加
Platform: RK3288OS: Android 6.0Kernel: 3.10.92DVP或者MIPI接口直接在camera board文件中改动就可以。cam_board_rk3288.xml:<?xml version="1.0" ?><BoardFile> <BoardXmlVersion version="v0.0xf.0">...原创 2019-11-07 14:03:48 · 1562 阅读 · 0 评论 -
[笔记分享] [SD] SD读写测试程序
读写1M或者1K所花时间测试,测试文件默认放在/sdcard/sd.test(由于sdcard目录是fuse产生的,性能会收到影响,见下一篇文章 [RK3288][Android6.0] Fuse将被SDCardFS替换 ,所以建议换个目录)/* * Copyright (C) 2010 The Android Open Source Project * * Licensed under th原创 2017-08-15 22:55:54 · 1488 阅读 · 0 评论 -
[笔记分享] [SD] SD卡种类介绍
MMC:Multimedia card.7 pin。分MMC和SPI两种工作模式。SPI是MMC协议的一个子集,主要用于低数据传输率的系统,可以减少cost. RS-MMC:只是小型号的MMC。SD:Secure Digital Card. 数据传送和物理规范由MMC发展而来,比MMC稍微厚一点,与MMC兼容。 相对MMC增加了2 Pin作为数据线。 有CPRM功能(数据加密)。 SD1原创 2017-08-13 22:29:58 · 6061 阅读 · 0 评论 -
[RK3288][Android6.0] 调试笔记 --- 开机视频无法播放
Platform: Rockchip OS: Android 6.0 Kernel: 3.10.92之前在平台调试版本实现了开机播放mp4 video,在release的时候发现播放不了。 一直朝开机加载顺序和调试版本不一致的思路去研究这个问题,后来发现是ffplayer播放文件没有权限,真是醉了。log如下:01-01 08:04:22.760 212 427 I RockFFPla原创 2017-09-04 10:41:14 · 3345 阅读 · 1 评论 -
[RK3288][Android6.0] 调试笔记 --- 开机动画时间的确定
Platform: Rockchip OS: Android 6.0 Kernel: 3.10.92之前有在 [RK3288][Android6.0] 调试笔记 — 开机动画支持播放mp4视频功能 实现了播放mp4,那么视频的时间多少才合适呢?开机动画的退出是靠property即 #define EXIT_PROP_NAME "service.bootanim.exit" 来判断的,见函数c原创 2017-08-02 16:35:31 · 2768 阅读 · 5 评论 -
[RK3288][Android6.0] 调试笔记 --- 开机动画支持播放mp4视频功能
Platform: RockchipOS: Android 6.0Kernel: 3.10.92kris@:~/rk3288/frameworks/base/cmds/bootanimation$ g dfdiff --git a/cmds/bootanimation/BootAnimation.cpp b/cmds/bootanimation/BootAnimation.cp原创 2017-06-12 13:19:55 · 3445 阅读 · 0 评论 -
[RK3288][Android6.0] 调试笔记 --- tts语音无法播放
Platform: Rockchip OS: Android 6.0 Kernel: 3.10.92现象: 有一台机器之前被摔过,之后tts语音就无法出声音了,tts用的dtmf stream type.原因: 系统开机默认识别有wiredheadset,导致声音从headset而不是speaker出来,而headset又没有接。开机Log:WiredAccessoryManager: in原创 2017-09-04 17:10:10 · 2175 阅读 · 0 评论 -
[RK3288][Android6.0] 调试笔记 --- 下载进入MSC设备
Platform: Rockchip OS: Android 6.0 Kernel: 3.10.92现象:同样的板子处于Rockusb状态时,有些PC显示为rockusb设备,但有个别却显示是MSC设备,如下图:原因:没有Source code,rk也没给具体是什么原因引起。目前只知道MSC指的是大容量存储设备。 之前在Qualcomm上面调试也有这个模式,可以按键进入,而且也可以down原创 2017-08-31 17:42:06 · 2968 阅读 · 2 评论 -
[RK3288][Android6.0] 有线耳机插拔事件监听小结
Platform: Rockchip OS: Android 6.0 Kernel: 3.10.92WiredAccessoryObserver用来处理kernel通知耳机插拔事件。WiredAccessoryObserver继承自UEventObserver, UEventObserver用于接收Uevent的一个类,内部维护一个线程,用于接收UEvent事件,通过调用它的StartObser原创 2017-09-05 16:14:05 · 2686 阅读 · 0 评论 -
[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 · 2139 阅读 · 4 评论 -
[RK3288][Android6.0] TS-ADC驱动流程小结
Platform: RK3288OS: Android 6.0Kernel: 3.10.92RK3288使用TSADC(Temperature-Sensor ADC)来测量CPU温度,支持两种模式:用户自定义模式: 主动控制读取温度.自动模式: 自动检测温度,达到阀值就自动报告.rk3288.dtsi中的device配置:tsadc: tsadc@ff280原创 2017-02-13 11:01:19 · 5658 阅读 · 12 评论 -
[RK3288][Android6.0] 按键(MediaButton)控制音乐播放功能
Platform: Rockchip OS: Android 6.0 Kernel: 3.10.92在看music后台自动播放的问题时因为对这块不了解,以为开机默认打印的这条log会有关系 ActivityManager: Start proc 978:com.android.music/u0a29 for broadcast com.android.music/.MediaButtonInt原创 2017-08-23 17:52:21 · 1762 阅读 · 3 评论 -
[RK3288][Android6.0] AUDIO_BECOMING_NOISY作用
Platform: Rockchip OS: Android 6.0 Kernel: 3.10.92系统中有个广播:public static final String ACTION_AUDIO_BECOMING_NOISY = "android.media.AUDIO_BECOMING_NOISY";它的作用是用来通知所有媒体播放应用程序声音将要从speaker播放了,因此大部分情况下应用原创 2017-09-05 17:04:51 · 2960 阅读 · 0 评论 -
[RK3288][Android6.0] 耳机插拔处理两种方式
Platform: Rockchip OS: Android 6.0 Kernel: 3.10.92系统对耳机插拔处理的方式有两种,一种是UEvent直接上报,另一种是通过Input模块来处理。对应配置frameworks\base\core\res\res\values\Config.xml <!-- When true use the linux /dev/input/event原创 2017-09-05 17:24:17 · 2351 阅读 · 0 评论 -
[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 · 2247 阅读 · 0 评论 -
[RK3288][Android6.0] 调试笔记 --- pmu(rk818)寄存器读写
Platform: Rockchip OS: Android 6.0 Kernel: 3.10.92rk的pmu模块只提供了每次单个寄存器的读写,驱动提供了这个节点供使用:/sys/rk818/rk818_test 举例:读取:echo r 0x23 > /sys/rk818/rk818_test: 读取地址 0x23 的值,r 表示读;写入:echo w 0x23 0x7f > /s原创 2017-08-08 16:55:56 · 3516 阅读 · 3 评论 -
[RK3288][Android6.0] 调试笔记 --- 低电压引起的关机问题
Platform: Rockchip OS: Android 6.0 Kernel: 3.10.92由于电池电源的输出会经过一个二极管,遇到个别机器使用会出现偶尔关机现象,这个功能是在pmu rk818中控制的。对应的寄存器描述: 也就是说可控制电压的范围是在2.8 ~ 3.5V,比如设置3V,那么当电压掉到3V时,可触发两种行为中的一种:直接关机发中断交由cpu决定如何处理代码:原创 2017-08-04 17:13:34 · 3340 阅读 · 0 评论 -
[RK3288][Android6.0] PMIC之RK818驱动小结
Platform: RK3288OS: Android 6.0Kernel: 3.10.92Uboot: v2014.10uboot部分:pmic_init -> power_rockchip.c pmic_rk818_init -> pmic_rk818.c rk818_parse_dt -> fd原创 2016-11-28 10:47:29 · 5365 阅读 · 2 评论 -
[RK3288][Android6.0] PMIC之RK818配置说明
Platform: ROCKCHIPOS: Android 6.0Kernel: 3.10.92rk818对应dts文件是rk3288/kernel/arch/arm/boot/dts/rk818.dtsi&rk818 { compatible = "rockchip,rk818"; regulators { #addres原创 2016-11-24 16:38:33 · 4590 阅读 · 2 评论 -
[RK3288][Android6.0] PMIC之RK818硬件部分小结
电源分类:主要分两种: DC/DC 和 LDO, 两种特性如下:DC/DC: 即直流变压器.分buck(降压),boost(升压),buck-boost(升降压).效率高,成本高,大电流使用,不过有纹波问题.LDO: 即低压差线性稳压器, 只能降压. 效率低,成本低, 纹波较小.DC/DC的电源输出大小可以通过PWM或者PFM控制.PWM控制型效率高并具有良好的输出电压纹波原创 2016-11-24 14:02:14 · 8966 阅读 · 7 评论 -
[RK3288][Android6.0] 移植笔记 --- RK818配置不正确导致无法开机调试
Platform: ROCKCHIPOS: Android 6.0Kernel: 3.10.92现象:在成功Download之后又遇到了无法开机的问题,kernel打印几条log就停住了.log如下:Starting kernel ...[ 0.000000] Booting Linux on physical CPU 0x500[ 0.00原创 2016-11-17 18:54:35 · 5957 阅读 · 11 评论 -
[RK3288][Android6.0] RTC驱动的上层调用流程
Platform: Rockchip OS: Android 6.0 Kernel: 3.10.92说明:RTC驱动在注册的时候提供了两个字符设备给用户空间供操作。 1. /dev/alarm, android特有设备,为了提高平台无关性而加入,这里不关注闹钟的设置。 2. /dev/rtcx, 原始linux操作字符设备的方法。通过alarm节点操作:上层的操作最终都是通过alarm节点来原创 2017-06-28 10:53:58 · 3945 阅读 · 0 评论 -
[RK3288][Android6.0] 调试笔记 --- date命令无法修改日期和时间
Platform: Rockchip OS: Android 6.0 Kernel: 3.10.92现象: 移植好RTC驱动后之后,发现无法用date命令去设置日期。 用的命令是 #date -s "0627154217" //mmddhhmmyy调试: date命令用的是toybox工具编译出来的, 在 external/toybox/toys/posix/date.c中。 跟踪发原创 2017-06-27 15:49:19 · 4215 阅读 · 0 评论 -
[RK3288][Android6.0] RTC模块RX8010SJ驱动添加及改动
Platform: Rockchip OS: Android 6.0 Kernel: 3.10.92在网上的其他branch上找到一份RX8010SJ的驱动,但是有点问题,先贴代码,再说明修改部分。设备部分: 比较简单,确定I2C端口以及设备地址就行。 &i2c1 { status = “okay”; rx8010: rx8010@32 { compat原创 2017-06-26 20:25:48 · 5437 阅读 · 0 评论 -
[RK3288][Android6.0] RTC模块RX8010SJ硬件部分概要
Platform: Rockchip OS: Android 6.0 Kernel: 3.10.92背景特性框图硬件连接注意事项上电过程初始化过程I2C地址参考背景:系统自带的pmic电源管理芯片rk818虽然有rtc功能,但是由于它需要大容量电池,而项目只能放纽扣电池,所以另外添加了一颗时钟模块RX8010SJ.特性:框图:硬件连接: 使用的I2C1,IRQ1和IRQ2分别用原创 2017-06-26 19:49:40 · 4273 阅读 · 2 评论 -
[RK3288][Android6.0] 调试笔记 --- 开机默认选择24小时制时间格式
Platform: RockchipOS: Android 6.0Kernel: 3.10.92系统默认使用的是12小时制时间格式.当触摸设置的24小时格式时,会有如下调用:packages/apps/Settings/src/com/android/ettings/DateTimeSettings.javaonPreferenceTreeClick ->原创 2017-04-18 17:10:35 · 2483 阅读 · 14 评论 -
[RK3288][Android6.0] 调试笔记 --- 让cpu占用率达到100%
Platform: Rockchip OS: Android 6.0 Kernel: 3.10.92有时候要测试CPU为100%的case,比如测试满载时cpu的温度,其实只要写个脚本做个死循环就可以了。#!/system/bin/shwhile truedodone注意: 1. 循环中间家echo会引起sleep,导致cpu使用率会降低 2. 一个脚本控制一个cpu,所以多个cpu原创 2017-08-15 16:43:19 · 3243 阅读 · 0 评论 -
[RK3288][Android6.0] DeviceTree中的status属性使用规则
Platform: Rockchip OS: Android 6.0 Kernel: 3.10.92有看到网友在讨论device tree中的status到底该如何设置,默认状态是什么,知识点如下。默认情况下不设置status属性的话表示此节点的功能是enable的如果要设置status,那么值必须是”okay”或者”ok”dts里的status属性值会覆盖dtsi中的值(编译dtb的时候原创 2017-07-14 17:31:44 · 2106 阅读 · 0 评论 -
[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 · 2419 阅读 · 0 评论 -
[RK3288][Android6.0] 调试笔记 --- 系统识别不同硬件版本方法
Platform: RockchipOS: Android 6.0Kernel: 3.10.92需求:硬件版本不一样,通过几个gpio的高低电平来表示不同版本,u-boot/kernel/hal/framework/app层都需要用到,那么可以使用系统自身的参数传递机制以及property API来实现.以一个gpio为例.改动:u-bootdiff原创 2017-04-18 11:36:00 · 1771 阅读 · 2 评论 -
[RK3288][Android6.0] 调试笔记 --- user版本固件升级无法开机问题
Platform: ROCKCHIPOS: Android 6.0Kernel: 3.10.92user版sd固件升级启动之后开机出现如下error log:[ 3.036440] rockchip_i2c ff150000.i2c: i2c is not in idle(state = 3)[ 3.036451] ov5640_front_3(rk_cam原创 2017-04-14 14:41:42 · 5647 阅读 · 9 评论 -
[RK3288][Android6.0] 调试笔记 --- 通用GPIO驱动控制LED
Platform: ROCKCHIPOS: Android 6.0Kernel: 3.10.92由于板子没有lcd无法得知sd卡升级是否完成,因此使用LED显示.Recovery中升级完成后控制GPIO输出高电平点亮LED.系统自带GPIO控制驱动:内核已经自带了通用GPIO驱动,可以直接在用户空间操作.路径: /sys/class/gpioroot@r原创 2017-04-07 15:04:03 · 14286 阅读 · 10 评论 -
[RK3288][Android6.0] ION 驱动流程小结
Platform: RK3288OS: Android 6.0Kernel: 3.10.92之前Qualcomm平台有分析过ION, 可参考http://blog.csdn.net/kris_fei/article/details/8588661和http://blog.csdn.net/kris_fei/article/details/8618587因此这里就走下原创 2017-02-09 09:24:07 · 3621 阅读 · 4 评论 -
[RK3288][Android6.0] 调试笔记 --- 伪电池驱动添加
Platform: ROCKCHIPOS: Android 6.0Kernel: 3.10.92由于电池部分是用户空间Service从另外一颗MCU获取,而Android需要显示电量,所以按照电池驱动框架做了一个伪电池驱动, 主要是使用它的充电状态和电池电量这两个property, 代码如下:/* drivers/power/rk3288_battery.c *原创 2016-12-21 15:11:13 · 3569 阅读 · 1 评论 -
[RK3288][Android6.0] 移植笔记 --- Touch IC GSL5680添加
Platform: RK3288OS: Android 6.0Kernel: 3.10.9213.3寸eDP对应的Touch IC型号是GSL5680,分辨率为1920*1080.Touch原理图连接:1. 电源是用的是VLDO2,开机后就有了.2. I2C用的是4, 中断和复位脚dts里需要配置下.3. Touch I2C 地址是0x40.dts配置:&i2c4 { status ...原创 2016-11-21 15:00:12 · 5297 阅读 · 47 评论