<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[kerrycat1986的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/kerrycat1986</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; kerrycat1986]]></copyright><item><title><![CDATA[linux内核中GPIO口重复申请导致进入安全模式的问题解决过程]]></title><link>https://blog.youkuaiyun.com/kerrycat1986/article/details/151652460</link><guid>https://blog.youkuaiyun.com/kerrycat1986/article/details/151652460</guid><author>kerrycat1986</author><pubDate>Sat, 13 Sep 2025 16:26:40 +0800</pubDate><description><![CDATA[摘要：在调试sp9832e安卓11的GPIO按键驱动时，配置11个按键后系统开机进入安全模式。通过分析kernel log发现GPIO冲突，具体是gpio131被sunwave指纹模块和按键同时使用。排查发现dts文件中使用&quot;//&quot;注释sunwave-fp节点无效，导致gpio131仍被占用。最终采用/* */方式完整注释sunwave-fp节点，保留ko模块编译但避免GPIO冲突，解决了安全模式问题。该案例展示了dts文件注释方式的重要性及GPIO资源冲突的排查方法。]]></description><category></category></item><item><title><![CDATA[几个好用的adb关机，adb重启，adb进入刷机模式等命令]]></title><link>https://blog.youkuaiyun.com/kerrycat1986/article/details/151157005</link><guid>https://blog.youkuaiyun.com/kerrycat1986/article/details/151157005</guid><author>kerrycat1986</author><pubDate>Wed, 03 Sep 2025 21:02:00 +0800</pubDate><description><![CDATA[2. adb shell setprop sys.powerctl shutdown 手机执行关机,adb命令关机，执行后，手机关机，如果线一直插着，则会进入关机充电模式。1. adb shell setprop sys.powerctl reboot 手机直接会重启，这个命令相当于adb reboot。展锐平台下面，如果不知道下载按键是哪个，在能连得上adb情况下，可用如下命令，让设备进入刷机模式。然后，在工具上设置好下载，并点下载按钮之后，就自动下载了。]]></description><category></category></item><item><title><![CDATA[Ov7251摄像头，修改反180度和提高帧率的方法]]></title><link>https://blog.youkuaiyun.com/kerrycat1986/article/details/151153830</link><guid>https://blog.youkuaiyun.com/kerrycat1986/article/details/151153830</guid><author>kerrycat1986</author><pubDate>Wed, 03 Sep 2025 17:30:03 +0800</pubDate><description><![CDATA[摘要：介绍OV7251摄像头在高帧率应用中的配置方法，包括图像方向调整和帧率修改。通过修改sensor_ov7251_mipi_raw.h文件中的寄存器值：1)调整3820/3821寄存器值可解决图像180度反转问题；2)修改帧长度参数（如从1724改为516）可将帧率从30fps提升至100fps，需同时更新380e/380f和3c0e/3c0f寄存器中的16进制数值。适用于扫描笔等需要高速摄像的产品开发。]]></description><category></category></item><item><title><![CDATA[插2pin充电线提示充电反应慢，插4pin的USB线正常的问题]]></title><link>https://blog.youkuaiyun.com/kerrycat1986/article/details/151152728</link><guid>https://blog.youkuaiyun.com/kerrycat1986/article/details/151152728</guid><author>kerrycat1986</author><pubDate>Wed, 03 Sep 2025 16:49:01 +0800</pubDate><description><![CDATA[摘要：展锐SC9820E平台设备在深度休眠状态下存在充电唤醒延迟问题：使用2pin充电头连接时需5-6秒唤醒（user版本默认log等级下），而USB连接仅需1秒。问题难点在于debug版本无此现象，且高log等级时问题消失。通过分析log发现2pin充电时系统可能误入USB处理流程，导致多次唤醒尝试。最终通过在musb_sprd.c驱动中添加5秒唤醒锁（wake_lock_timeout）强制延长唤醒状态，成功解决问题。该方案通过阻止系统过早休眠，确保充电检测流程正常完成。]]></description><category></category></item><item><title><![CDATA[OTG配置 OTG驱动 展锐智能机平台]]></title><link>https://blog.youkuaiyun.com/kerrycat1986/article/details/151151319</link><guid>https://blog.youkuaiyun.com/kerrycat1986/article/details/151151319</guid><author>kerrycat1986</author><pubDate>Wed, 03 Sep 2025 16:36:06 +0800</pubDate><description><![CDATA[OTG功能实现主要有两种方式：1. IDDIG中断检测方式，适用于早期平台如sc9820e，需外接升压IC（如fan54015）提供5V电压，并在驱动中实现OTG升压功能；2. Type-C接口方式，通过CC脚5.1K下拉电阻检测，适用于sl8541e等新平台，需配置Type-C PHY驱动。两种方式都需要在dts中正确配置USB节点、打开CONFIG_USB_MUSB_DUAL_ROLE宏控，并确保PMIC能提供5V输出。配置完成后，插入OTG设备可在内核日志中看到设备识别信息。]]></description><category></category></item><item><title><![CDATA[展锐智能机平台配置不同类型的按键方法 按键配置]]></title><link>https://blog.youkuaiyun.com/kerrycat1986/article/details/150930388</link><guid>https://blog.youkuaiyun.com/kerrycat1986/article/details/150930388</guid><author>kerrycat1986</author><pubDate>Wed, 27 Aug 2025 18:00:14 +0800</pubDate><description><![CDATA[本文详细介绍了展锐智能机平台中三种按键（矩阵按键、AP_GPIO按键和中断按键）的配置方法及注意事项。矩阵按键需配置支持硬件扫描的GPIO口，注意不同安卓版本dts格式差异；AP_GPIO按键需在dts中定义GPIO号和触发电平，u-boot中必须添加BIT_PIN_SE标识；中断按键需设置为EXTINT模式，要注意AF配置和触发电平设置。文中通过sc9820e和sc9863a平台的具体实例，对比了不同安卓版本的配置差异，并强调了深度休眠时的引脚状态设置问题，避免按键报值错乱。三种按键的配置方法各有特点，需]]></description><category></category></item><item><title><![CDATA[展锐智能机平台如何查看射频是否校准 标志位 校准位]]></title><link>https://blog.youkuaiyun.com/kerrycat1986/article/details/122171685</link><guid>https://blog.youkuaiyun.com/kerrycat1986/article/details/122171685</guid><author>kerrycat1986</author><pubDate>Mon, 27 Dec 2021 14:48:42 +0800</pubDate><description><![CDATA[出于某种原因，比如手机4G信号差，GPS定位不到，客户想确认出货给他的机器射频是否校准好等原因，人们想确认下当前手机的射频是否校准，若是展锐平台的机器，则可使用如下方法来确认。

另外：在MMI测试里面的Test Info里面CFT项目无法作为是否校准的位置 ，因为有些主板只是射频校准了，但没有综测，所以Test Info里面CFT的标志伴还是UnTested的状态。

这里截图是以sl8541e 安卓8.1的机器为例进行截图说明。

先进入MMI测试模式（一般是在拔号盘按*#*#83789#*#*就可进入]]></description><category></category></item><item><title><![CDATA[安卓user版本默认开启debug模式，默认adb能连接]]></title><link>https://blog.youkuaiyun.com/kerrycat1986/article/details/121396736</link><guid>https://blog.youkuaiyun.com/kerrycat1986/article/details/121396736</guid><author>kerrycat1986</author><pubDate>Thu, 18 Nov 2021 11:25:04 +0800</pubDate><description><![CDATA[亲测有效! 在展锐sl8541e android8.1代码包上面测试，只需修改两点

1.默认为debug打开模式,默认ro.debuggable=1（默认允许debug）


build/make/core/main.mk

ifeq (true,$(strip $(enable_target_debugging)))
   INCLUDE_TEST_OTA_KEYS := true
 else # !enable_target_debugging
   # Target is less debuggab]]></description><category></category></item><item><title><![CDATA[androidR或 android11 修改代码关闭selinux或seandroid的方法 展锐平台验证OK]]></title><link>https://blog.youkuaiyun.com/kerrycat1986/article/details/120468519</link><guid>https://blog.youkuaiyun.com/kerrycat1986/article/details/120468519</guid><author>kerrycat1986</author><pubDate>Sat, 25 Sep 2021 10:40:52 +0800</pubDate><description><![CDATA[比如在展锐sc9863a平台（其它芯片平台应该也是这个地方的这个文件）修改文件为：

system/core/init/selinux.cpp，增加//add this line 部分的内容


bool IsEnforcing() {

             return false; //add this line
    {
        int fd(open("/mboot/selinux", O_RDONLY | O_CLOEXEC | O_BINARY));
        if (fd]]></description><category></category></item><item><title><![CDATA[在android8.1 展锐 关闭系统的selinux seandroid]]></title><link>https://blog.youkuaiyun.com/kerrycat1986/article/details/120460731</link><guid>https://blog.youkuaiyun.com/kerrycat1986/article/details/120460731</guid><author>kerrycat1986</author><pubDate>Fri, 24 Sep 2021 18:21:52 +0800</pubDate><description><![CDATA[有时候遇到一些selilnux或是seandroid的avc报错，很难解。对于对安全性要求不高的设备来说，可以用更简单的大招，即关闭此功能的方法来实现 ，具体方法是修改：

system\core\init\init.cpp

将return true改成return false,修改之后如下：


static bool selinux_is_enforcing(void)
{
    if (ALLOW_PERMISSIVE_SELINUX) {
        return selinu...]]></description><category></category></item><item><title><![CDATA[安卓系统adb调试时打开多个调试窗口，前一个adb 窗口断开连接adb server is out of date. killing...的问题解决]]></title><link>https://blog.youkuaiyun.com/kerrycat1986/article/details/120436643</link><guid>https://blog.youkuaiyun.com/kerrycat1986/article/details/120436643</guid><author>kerrycat1986</author><pubDate>Thu, 23 Sep 2021 15:57:39 +0800</pubDate><description><![CDATA[如题所述，有时候会遇到想打开第二个窗口时，前一个adb调试窗口又断开连接了，导致无法多窗口adb调试，这对于某些无屏项目需要一边用投屏工具比如vysor,total controller操作界面，另一个调试窗口需要抓取安卓log，或是查看adb shell进去里面的一些属性值变化时，是很难办的。这时候需要解决这个窗口断开adb连接的问题。



如上截图中的的adb工具是比较新的，能解决不能同时开多个adb 调试窗口的问题

这个问题的缘由很多情况下是由于所使用的adb 工具版本太旧引起的，可...]]></description><category></category></item><item><title><![CDATA[安卓11（AndroidR）展锐 sc9863a驱动调试笔记1]]></title><link>https://blog.youkuaiyun.com/kerrycat1986/article/details/120353782</link><guid>https://blog.youkuaiyun.com/kerrycat1986/article/details/120353782</guid><author>kerrycat1986</author><pubDate>Fri, 17 Sep 2021 18:06:06 +0800</pubDate><description><![CDATA[1.先来看下新代码包的所使用的文件所在：

Source和lunch 58之后（58. s9863a1h10_go_32b_2g-userdebug-native），配置了一些环境变量：


============================================

PLATFORM_VERSION_CODENAME=REL

PLATFORM_VERSION=11

TARGET_PRODUCT=s9863a1h10_go_32b_2g

TARGET_BUILD_VARIANT=user]]></description><category></category></item><item><title><![CDATA[安卓11（Android R），lunch后编译时可选择的选项]]></title><link>https://blog.youkuaiyun.com/kerrycat1986/article/details/120353470</link><guid>https://blog.youkuaiyun.com/kerrycat1986/article/details/120353470</guid><author>kerrycat1986</author><pubDate>Fri, 17 Sep 2021 17:36:01 +0800</pubDate><description><![CDATA[这里测试的是展锐平台sc9863a,可操作的选项一般有

chipram

bootloader

sml

trusty

bootimage

dtboimage

recoveryimage

systemimage

sockoimage

odmkoimage

superimage

vendorimage

Vbmetaimage

比如修改了kernel部分的.c或.h要编译bootimage文件来下载到手机来看，则使用编译命令：

make bootimage 2&gt;&amp;1 | ]]></description><category></category></item><item><title><![CDATA[安卓调试时遇到 logcat: Unexpected EOF!]]></title><link>https://blog.youkuaiyun.com/kerrycat1986/article/details/120353293</link><guid>https://blog.youkuaiyun.com/kerrycat1986/article/details/120353293</guid><author>kerrycat1986</author><pubDate>Fri, 17 Sep 2021 17:26:51 +0800</pubDate><description><![CDATA[在安卓平台调试，用adb logcat抓logcat时命令行会提示unexpected EOF!并断开了

这是因为有些平台设置的Logbuffer太小了，一般是256KB，通过adb logcat -g可以查询到

解决办法就是要加大这个buffer，有两种办法，这里只介绍第一种办法

用cmd命令行直接设置的，这种办法比较常用：

C:\Users\Administrator&gt;adb logcat -G 4m

C:\Users\Administrator&gt;adb logcat -g

ma]]></description><category></category></item><item><title><![CDATA[linux 中dts或dtsi中两个删除关键字及用法举例]]></title><link>https://blog.youkuaiyun.com/kerrycat1986/article/details/118756513</link><guid>https://blog.youkuaiyun.com/kerrycat1986/article/details/118756513</guid><author>kerrycat1986</author><pubDate>Thu, 15 Jul 2021 12:03:47 +0800</pubDate><description><![CDATA[1、删除Node

删除节点的语法如下：

/delete-node/ 节点名；

以一个例子介绍如何删除设备节点。

sc2721.dtsi中


&amp;adi_bus {

pmic: pmic@0 {

...省略..

pmic_flash: flash@2a8 {

compatible = "sprd,sc2721-flash";

reg = &lt;0x2a8&gt;;

};

...省略..

};

};

在sl8541e-1h10-gofu.dts中删除该节点，注意要将该结点.]]></description><category></category></item><item><title><![CDATA[展锐平台sl8541e驱动 dts配置好却难以在驱动代码跑进probe的问题分析与解决]]></title><link>https://blog.youkuaiyun.com/kerrycat1986/article/details/118756183</link><guid>https://blog.youkuaiyun.com/kerrycat1986/article/details/118756183</guid><author>kerrycat1986</author><pubDate>Thu, 15 Jul 2021 12:00:32 +0800</pubDate><description><![CDATA[这套代码包中比如lunch使用

89. sl8541e_1h10_gofu_osea-userdebug

则该工程用默认使用的是ocp8037的摄像头闪光灯，现在我的项目不使用这种外置的i2c设备闪光灯，要在软件上切换回来改为使用PMIC提供的闪光灯通路，即闪光灯的负极接到PMIC2721G的FLASH_IB引脚（L11）.

说完原理图连接方式，就开始改软件。

首先在deconfig文件中打开

kernel\arch\arm\configs\sprd_sharkle_defconf...]]></description><category></category></item><item><title><![CDATA[展锐智能机平台sc9820e调试pwm背光所遇问题小结]]></title><link>https://blog.youkuaiyun.com/kerrycat1986/article/details/118440398</link><guid>https://blog.youkuaiyun.com/kerrycat1986/article/details/118440398</guid><author>kerrycat1986</author><pubDate>Sat, 03 Jul 2021 16:35:18 +0800</pubDate><description><![CDATA[在展锐sc9820e的代码包中，有些没有在用的代码模块功能是不确定是否OK的，比如这里的PWM模块，在默认的代码里的配置是有问题的，需要花不少时间来调试，才能把功能调正常。

    默认的背光是使用PMIC sc2721g的IB0~IB2,最大能输出83mA的总电流，但有些要求更大电流的话，内部PMIC就无能为力了，需要借用外部背光IC了，这里是讲由内部PMIC的改为PWM方式的背光方式。本文讲述的PWM使能引脚选用的是GPIO131/PWMBG1,可以看到该GPIO口的PWM模式为...]]></description><category></category></item><item><title><![CDATA[图片转换成代码的小工具Image2Lcd使用说明]]></title><link>https://blog.youkuaiyun.com/kerrycat1986/article/details/117166003</link><guid>https://blog.youkuaiyun.com/kerrycat1986/article/details/117166003</guid><author>kerrycat1986</author><pubDate>Sat, 22 May 2021 17:01:19 +0800</pubDate><description><![CDATA[图片转换成代码的小工具Image2Lcd使用说明前言一、转换步骤二、引用示例


前言
在调试屏的过程中，有时候需要显示某一张图片的内容，而代码是直接识别的到十六进制的，而无法识别bmp,jpg,png等图片的内容。若一张图片我们想让它显示在屏上，而不需要通过上层刷下来，则可在驱动层直接调用刷屏函数刷图片的内容。而这个内容，则需要一个小工具来转换成一个数组，以便让代码可以直接使用。
例如：转换一个128x160的bmp图片，转换成RGB565的格式，则转换出来的数组大小应为40960，这里转换出来的图片就没]]></description><category></category></item></channel></rss>