RK平台 2926 3168项目中遇到的问题及解决方案

项目中遇到的问题及解决方案


1、RK3066中lvds屏三分之一显示正常,其他显示不正常

            -->初始化代码中前后肩和工作模式配置不正确,改动后正常工作

2、RK3066中camera调试中模糊不清
            -->摄像头在板子上偏置了90°,而在代码中是只能偏转0°或者180°

3、RK2926中LCD不能正常显示
            -->(1)检查GPIO口在其他文件中是否复用,
                (2)模块是否供上电,用万用表测量电压,
                (3)GPIO口是否已使能控制,
                (4)I2C是否通讯上,从地址是否匹配

4、RK2926中修改DV的分辨率
            -->out\target\product\rk29sdk\system\etc\media_profiles.xml
               --> device\rockchip\rk29sdk\media_profiles.xml

5、更改屏幕放置apk宽度大小
            -->将\packages\apps\Launcher2\res\layout-sw720dp\workspace.xml  拷贝到  packages\apps\Launcher2\res\layout-sw720dp-port\ (横屏)和 packages\apps\Launcher2\res\layout-sw720dp-land(竖屏)下,添加代码如下:
    launcher:defaultScreen="2"
    launcher:cellCountX="4"  //放置apk个数  
    launcher:cellCountY="7"
    launcher:pageSpacing="@dimen/workspace_page_spacing">

6、屏幕的启动方向相反,触摸屏上报数据正常
            --> 要求硬件工程师调换屏的上下拉电阻

7、查找文件中的内容
            -->grep "..." 文件路径 -rin

8、TP上有触摸按键,添加按键驱动代码
            -->1、在TP驱动程序中添加触摸键盘驱动代码,驱动中按下按键应该添加在触摸屏down状态下,而释放按键应该添加在触摸屏被释放状态下;
                      注意:input_report_key( input_dev , BTN_TOUCH , 1);    // pressed
                                input_report_key( input_dev , BTN_TOUCH , 0);    // realse     
                2、根据input_dev名字(如FT5X0X_KEY) 在\device\rockchip\rk2928sdk目录下添加FT5X0X_KEY.kl 文件(此文件是上报给上层对应的键值)
                3、修改\device\rockchip\rk2928sdk目录下的device.mk文件,添加代码如下:
                         PRODUCT_COPY_FILES += \
                                    .........
                      device/rockchip/$(TARGET_PRODUCT)/rk29-keypad.kl:system/usr/keylayout/rk29-keypad.kl \
                      device/rockchip/$(TARGET_PRODUCT)/FT5X0X_KEY.kl:system/usr/keylayout/FT5X0X_KEY.kl

9、USB充电控制(RK方案测试)
            --> 因为电脑USB 口最大供电电流为500mA,而火牛供电电流要大于800mA,所以我们分不同情况充电:
                1、当使用DC充电时,电池低电压(充电电流为400mA);电池不低电压(充电电流为800mA);
                2、当usb连接电脑时,Usb连接状态(不充电);Usb断开状态(充电电流为400mA);
                3、当usb处于串口调试状态时,我们也可给400mA的充电电流。
                      检测DC 还是 PC:int get_gadget_connect_flag(void),(火牛:返回0)(P C:返回 1)

10、Android上层Gsensor的x、y、z接口函数(RK2926)
            -->\hardware\rk29\sensor\mid\mmasensor.cpp中的下列函数:
                void MmaSensor::processEvent(int code, int value);先确定Z轴的方向是Gsensor哪一轴上报上去的,然后再来调整x、y的方向。
                

11、修改开机Logo
            -->1、在Linux下将bmp图片转换为ppm格式   
                     $bmptoppm pic.bmp > temp1.ppm //生成ppm
 $ppmquant 224 temp1.ppm > temp2.ppm  //转换成224颜色
 $pnmnoraw temp2.ppm > logo.ppm   //转换成ascii格式
                2、将kernel\drivers\video\logo文件夹下的图片替换为logo.ppm,并删除相应的.c和.o文件,再重新编译

12、压缩文件夹和在该文件夹下有不需要压缩的文件命令
            -->tar -zcvf *.tar.gz --exclude=不需要压缩文件名  文件名

13、隐藏设置菜单中的HDMI格式
            -->修改packages\apps\Settings\res\xml\settings_headers.xml的代码
   
        android:id="@+id/hdmi_settings"
        android:icon="@drawable/ic_settings_hdmi"
        android:fragment="com.android.settings.HdmiControllerActivity"
        android:title="@string/hdmi_settings"
        android:visibility="gone" />
           或者
             -->frameworks\base\core\java\android\provider\OEMConfig.java文件中的IS_HAVE_HDMI设为false或true
                    packages\apps\Settings\src\com\android\settings\Setting.java中添加代码:
                            import android.provider.OEMConfig;
                                    。。。。。。
                                private boolean hasHdmiFeature(){
//add by zhangguoji
  if(!OEMConfig.IS_HAVE_HDMI){
     return false;
   }
//end
                    File file30=new File("/sys/class/display/HDMI/enable");

14、修改DDR频率
            -->修改kernel\arch\arm\plat-rk\Kconfig文件内容
config DDR_SDRAM_FREQ
int "DDR SDRAM frequence (in MHz)
default 400

15、修改ro.hardware 字符名 adb  
            -->\system\core\init\init.c
             //property_set("ro.hardware", hardware);
    property_set("ro.hardware", "Luna TAB474");

16、修改盘符卷标大小写及卷标名称
            -->\system\core\toolbox\newfs_msdos.c
            原因分析:当USB设备插入到PC电脑上后,盘符全是大写,如下函数在上报前进了转行,将所有的小写全转换成大写了。为了保存不改变原来的值,做如下处理,将字符串转换函数去掉即可!
mklabel(u_int8_t *dest, const char *src)
{
    int c, i;
    for (i = 0; i < 11; i++) {
//c = *src ? toupper(*src++) : ' ';
c = *src ? (*src++) : ' ';
*dest++ = !i && c == '\xe5' ? 5 : c;
    }
}
            -->device\rockchip\rk2928sdk\init.rc
                    on boot
# basic network init
    ifup lo
    hostname localhost
    domainname localdomain
    setprop UserVolumeLabel "RockChips"

你可能感兴趣的:(RK平台 2926 3168项目中遇到的问题及解决方案)