1.一般在添加HAL层的时候,都会写到JNI 层(namespace android) ,如果形参对应不上,或者JNINativeMethod格式写的  不对就会导致开机无法进入主界面,以下是终端重复打印信息内容;

[   16.010285] D1:camsys_extdev_deregister(331): Extdev(dev_id: 0x2000000) is deregister success
[   16.010307] D1:camsys_irq_disconnect(664): All thread disconnect camsys_marvin irq success!
[   16.010320] D1:camsys_mipiphy_clkin_cb(36): camsys_marvin mipi phy clk in turn off
[   16.010329] D1:camsys_mipiphy_clkin_cb(36): camsys_marvin mipi phy clk in turn off
[   16.010338] D1:camsys_release(763): camsys_marvin(deaa1510) is closed
[   16.021091] D1:camsys_mipiphy_clkin_cb(34): camsys_marvin mipi phy clk in turn on
[   16.021109] D1:camsys_mipiphy_clkin_cb(34): camsys_marvin mipi phy clk in turn on
[   16.021118] D1:camsys_open(739): camsys_marvin(deaa1510) is opened!
[   16.021231] E:camsys_extdev_register(239): Request RK30_PIN2_PB6(70) failed
[   16.021240] D1:camsys_extdev_register(243): Get RK30_PIN2_PB6(70) gpio(active: 1) for dev_id 0x1000000 success!
[   16.021257] D1:camsys_extdev_register(243): Get RK30_PIN0_PC1(17) gpio(active: 1) for dev_id 0x1000000 success!
[   16.021267] D1:camsys_mrv_iomux_cb(92): marvin pinctrl select: isp_dvp10bit
[   16.021375] D1:camsys_extdev_register(268): Extdev(dev_id: 0x1000000  dev_name: OV2659) register success
[   16.026568] D1:camsys_mrv_clkout_cb(394): camsys_marvin clock out(rate: 24000000Hz) turn on
[   16.027682] D1:camsys_sysctl_extdev(362): Sysctl 11 success, gpio(17) set 1
[   16.028762] E:camsys_sysctl_extdev(369): Sysctl 8 failed, because gpio is NULL!
[   16.029839] D1:camsys_sysctl_extdev(366): Sysctl 7 success, gpio(70) set 0
[   16.035357] E:camsys_i2c_write(78): i2c write dev(addr:0x60) failed!
[   16.035478] D1:camsys_sysctl_extdev(362): Sysctl 7 success, gpio(70) set 1
[   16.037545] E:camsys_sysctl_extdev(369): Sysctl 8 failed, because gpio is NULL!
[   16.038634] D1:camsys_sysctl_extdev(366): Sysctl 11 success, gpio(17) set 0
[   16.039748] D1:camsys_mrv_clkout_cb(406): camsys_marvin clock out turn off
[   16.046004] D1:camsys_extdev_deregister(331): Extdev(dev_id: 0x1000000) is deregister success
[   16.046031] D1:camsys_irq_disconnect(664): All thread disconnect camsys_marvin irq success!
[   16.046048] D1:camsys_mipiphy_clkin_cb(36): camsys_marvin mipi phy clk in turn off
[   16.046057] D1:camsys_mipiphy_clkin_cb(36): camsys_marvin mipi phy clk in turn off
[   16.046067] D1:camsys_release(763): camsys_marvin(deaa1510) is closed
[   16.053446] D1:camsys_mipiphy_clkin_cb(34): camsys_marvin mipi phy clk in turn on
[   16.053464] D1:camsys_mipiphy_clkin_cb(34): camsys_marvin mipi phy clk in turn on
[   16.053475] D1:camsys_open(739): camsys_marvin(deaa1510) is opened!
[   16.053581] D1:camsys_extdev_register(243): Get RK30_PIN2_PA0(56) gpio(active: 0) for dev_id 0x2000000 success!
[   16.053594] D1:camsys_mrv_iomux_cb(92): marvin pinctrl select: default
[   16.053626] D1:camsys_extdev_register(268): Extdev(dev_id: 0x2000000  dev_name: GS8604) register success
[   16.058861] D1:camsys_mrv_clkout_cb(394): camsys_marvin clock out(rate: 24000000Hz) turn on
[   16.059947] E:camsys_sysctl_extdev(369): Sysctl 11 failed, because gpio is NULL!
[   16.061038] D1:camsys_sysctl_extdev(366): Sysctl 8 success, gpio(56) set 1
[   16.062113] E:camsys_sysctl_extdev(369): Sysctl 7 failed, because gpio is NULL!
[   16.067930] E:camsys_i2c_write(78): i2c write dev(addr:0x20) failed!
[   16.069162] E:camsys_i2c_write(78): i2c write dev(addr:0x20) failed!
[   16.069287] E:camsys_sysctl_extdev(369): Sysctl 7 failed, because gpio is NULL!
[   16.071372] D1:camsys_sysctl_extdev(362): Sysctl 8 success, gpio(56) set 0
[   16.072448] E:camsys_sysctl_extdev(369): Sysctl 11 failed, because gpio is NULL!
[   16.073552] D1:camsys_mrv_clkout_cb(406): camsys_marvin clock out turn off
[   16.092091] D1:camsys_extdev_deregister(331): Extdev(dev_id: 0x2000000) is deregister success
[   16.092128] D1:camsys_irq_disconnect(664): All thread disconnect camsys_marvin irq success!
[   16.092146] D1:camsys_mipiphy_clkin_cb(36): camsys_marvin mipi phy clk in turn off
[   16.092156] D1:camsys_mipiphy_clkin_cb(36): camsys_marvin mipi phy clk in turn off
[   16.092165] D1:camsys_release(763): camsys_marvin(deaa1510) is closed
[   16.096348] D1:camsys_mipiphy_clkin_cb(34): camsys_marvin mipi phy clk in turn on
[   16.096364] D1:camsys_mipiphy_clkin_cb(34): camsys_marvin mipi phy clk in turn on
[   16.096372] D1:camsys_open(739): camsys_marvin(deaa1510) is opened!
[   16.096449] D1:camsys_extdev_register(243): Get RK30_PIN2_PB7(71) gpio(active: 0) for dev_id 0x2000000 success!
[   16.096463] D1:camsys_extdev_register(243): Get RK30_PIN0_PC1(17) gpio(active: 1) for dev_id 0x2000000 success!
[   16.096502] rockchip_gpio_set:GPIO7-13 level = 1
[   16.096507] rockchip_gpio_direction_output:set GPIO7-13 level 1
[   16.096517] rk32_iomux_bit_op:GPIO7-13,reg=0x70,data=0xc000000,result=0x1
[   16.096525] rockchip_pmx_gpio_set_direction:gpio_direction for pin 229 as gpio7-13 to output,data=0x3024,result=0x3024
[   16.096532] D1:camsys_mrv_iomux_cb(92): marvin pinctrl select: isp_mipi_fl
[   16.096557] D1:camsys_extdev_register(268): Extdev(dev_id: 0x2000000  dev_name: IMX214) register success
[   16.101717] D1:camsys_mrv_clkout_cb(394): camsys_marvin clock out(rate: 24000000Hz) turn on
[   16.102795] D1:camsys_sysctl_extdev(362): Sysctl 11 success, gpio(17) set 1
[   16.103861] E:camsys_sysctl_extdev(369): Sysctl 8 failed, because gpio is NULL!
[   16.104932] D1:camsys_sysctl_extdev(366): Sysctl 7 success, gpio(71) set 1
[   16.110255] E:camsys_i2c_write(78): i2c write dev(addr:0x20) failed!
[   16.111458] E:camsys_i2c_write(78): i2c write dev(addr:0x20) failed!
[   16.111572] D1:camsys_sysctl_extdev(362): Sysctl 7 success, gpio(71) set 0
[   16.113642] E:camsys_sysctl_extdev(369): Sysctl 8 failed, because gpio is NULL!
[   16.114731] D1:camsys_sysctl_extdev(366): Sysctl 11 success, gpio(17) set 0
[   16.115836] D1:camsys_mrv_clkout_cb(406): camsys_marvin clock out turn off
[   16.122016] D1:camsys_extdev_deregister(331): Extdev(dev_id: 0x2000000) is deregister success
[   16.122035] D1:camsys_irq_disconnect(664): All thread disconnect camsys_marvin irq success!
[   16.122045] D1:camsys_mipiphy_clkin_cb(36): camsys_marvin mipi phy clk in turn off
[   16.122053] D1:camsys_mipiphy_clkin_cb(36): camsys_marvin mipi phy clk in turn off
[   16.122060] D1:camsys_release(763): camsys_marvin(deaa1510) is closed

2.JNINativeMethod  方法格式一定要写对!!!!

下面给出一段案例:

#include "jni.h"
#include "JNIHelp.h"
#include "android_runtime/AndroidRuntime.h"
#include <utils/misc.h>
#include <cutils/log.h>
#include <hardware/hardware.h>
#include <hardware/iic.h>
#include <stdio.h>  namespace android
{    struct iic_device *iic_dev = NULL;static void iic_setVal(JNIEnv* env, jobject clazz, jint slaveAddr, jint regAddr, jint databuf) {if(!iic_dev) {ALOGE("iic JNI: device is not open.");    }iic_dev->iic_write(iic_dev,slaveAddr,regAddr,databuf);}static jint iic_getVal(JNIEnv* env, jobject clazz,jint slaveAddr, jint regAddr) {unsigned char data[1] = {0};iic_dev->iic_read(iic_dev,slaveAddr,regAddr,data);if(!iic_dev) {ALOGE("iic JNI: device is not open.");} return data[0];}/*通过硬件模块ID来加载指定的硬件抽象层模块并打开硬件*/    static jboolean iic_init(JNIEnv* env, jclass clazz) {iic_module_t *module;int err;err = hw_get_module(IIC_HARDWARE_MODULE_ID,(const struct hw_module_t**)&module);if (err != 0) {ALOGE("Error acquiring iic hardware module: %d", err);return 0;}err = iic_open(&(module->common), &iic_dev);if (err != 0) {ALOGE("Error opening iic hardware module: %d", err);return 0;}  ALOGE("iic device is opening...");    return 1;         }/*JNI方法表*/    static const JNINativeMethod method_table[] = {    {"init_native", "()Z", (void*)iic_init},{"setVal_native", "(III)V", (void*)iic_setVal},{"getVal_native", "(II)I", (void*)iic_getVal},};/*注册JNI方法*/    int register_android_server_IICService(JNIEnv *env) {    return jniRegisterNativeMethods(env, "com/android/server/IICService", method_table, NELEM(method_table));    }
};

static jboolean iic_init(JNIEnv* env, jclass clazz);=  {"init_native", "()Z", (void*)iic_init},

static void iic_setVal(JNIEnv* env, jobject clazz, jint slaveAddr, jint regAddr, jint databuf);= {"setVal_native", "(III)V", (void*)iic_setVal},

static jint iic_getVal(JNIEnv* env, jobject clazz,jint slaveAddr, jint regAddr);=  {"getVal_native", "(II)I", (void*)iic_getVal},

各种形参类型一定要对应上,以及JNI字段描述符(JavaNative Interface FieldDescriptors);只要写错一点点,都会导致无法进入主界面,或者app 不正常!!!!!

RK3288 android添加HAL 层导致无法进入主界面原因分析,重复打印 camsys_marvin(deaa1510) is closed相关推荐

  1. Android P HAL层添加HIDL实例(详细实现步骤)

    Android P HAL层添加HIDL实例 本文是参照 https://www.jianshu.com/p/b80865c61d8e 教程介绍实现,原理请参考原作者. 本文将介绍如何在P OS上添加 ...

  2. android音频hal层简介

    如下图为android音频hal层所处的位置: 从上图可以看出,HAL层下面使用TiniAlsa(Android下一个简约的Alsa版本).HAL层分为两部分,一部分为各种音频设备,每种音频设备由一个 ...

  3. Android 10 HAL 层添加HIDL实现过程

    本文以跑步机为假想场景介绍如何在Android Q(10)上添加HIDL,内容涉及HAL.HIDL进程间通讯.多线程以及串口操作,涵盖了标准的Android硬件服务的主要技术.编写时参考了两篇博客(见 ...

  4. 【Android】HAL层浅析

    一.HAL层的前世今生 二.HAL层的通用结构剖析 三.一个例子 四.击破Audio HAL Module 五.小的总结 一.HAL层的前世今生 HAL(Hardware Abstraction La ...

  5. 未知的错误代码在应用程序安装:110 android,应用在华为P9手机上安装失败原因分析 (错误码:-110)...

    问题描述: 应用在之前的华为手机上都能正常安装,但是在华为P9手机上安装失败,提示错误为: 失败原因: 系统问题导致安装失败(错误码:-110) 原因分析: 开始怀疑是android的版本问题,后来看 ...

  6. 华大 MCU 之七 DMA 导致 SPI 异常停止的原因分析、DMA 配置的那些坑

    缘起   在最近的项目测试中发现,SPI 通信总是莫名其妙的失败,查看寄存器发现 SPI 已经被停止了.根据手册,SPI 在异常情况下会被强制停止(SPI 的使能为被清零),而根据波形显示通信过程没有 ...

  7. Android 4.X 系统加载 so 失败的原因分析

    1 so 加载过程 so 加载的过程可以参考小米的系统工程师的文章loadLibrary动态库加载过程分析 2 问题分析 2.1 问题 年前项目里新加了一个 so库,但发现native 方法的找不到的 ...

  8. python项目运行,导致内存越来越大的原因分析

    内存越来越大的原因分析 问题描述: 程序运行现象分析: 尝试解决: 原因分析: 解决方法: 问题描述: 目前遇到的问题是这样的,爬虫程序部署到K8S服务器上运行,但是会过几个小时之后,程序就会被主动杀 ...

  9. Windows 7 自动更新失败导致无法进系统解决方案

    故障现象:自动更新后,重启电脑,提示: (配置Windows update 失败 还原更改 请勿关闭计算机), 而计算机一直停留该界面,如果半个小时以上都无反应.此时,就不要再继续等待了.可采取以下办 ...

最新文章

  1. JVM解读-性能调优实例
  2. DiscuzNT改造-远程内容自动采集-DNT2.5(定时采集、源码下载)
  3. u3d:动态的用代码调节材质球的属性
  4. BookMarklet:瑞士军刀你用了吗?
  5. WireShark抓DNS请求和回复数据报的分析
  6. Object-C中self和super的区别
  7. 数据结构和算法之排序一:归并排序
  8. nsga2代码解读python_python自动化办公系列 | python操作pdf—— PyPDF2 和 pdfplumber模块(1)...
  9. [UWP小白日记-9]页面跳转过度动画(二)
  10. 360安全卫士对于易量安装打包的可执行程序进行病毒误报
  11. storm32云台说明书_STorM32 BGC三轴增稳云台驱动下载
  12. FreeTextBox使用详解(FTBv3-1-6)
  13. 浪潮ssr服务器安全加固系统贵吗,浪潮SSR加固服务器安全
  14. python与开源gis_Python与开源GIS:SpatiaLite简介
  15. 批量识别PDF文件(图片类型)中的文字
  16. 排队问题解题思路_有关排队问题的排列组合题解法举例
  17. 网页设计语言html做思维导图,web网页实现思维导图展示
  18. 入坑张银奎老师研发的GDK7
  19. 理解 alter table nologging
  20. c语音程序加密题(字母后加四位)

热门文章

  1. SELinux权限问题解决
  2. 【高通SDM660平台 Android 10.0】(21) --- 高通Camera persist使用手册
  3. Vue3中如何进行页面局部刷新,组件刷新
  4. Word中,页眉-编辑页眉中,“链接到前一节页眉”呈灰色,不可点击?
  5. 喾哲~ (八月最佳)
  6. 补肾健脑的中药有哪些?
  7. uni-app -- 改变页面背景颜色
  8. 平板电脑win10 android比较好,华为MateBook名不副实!Win10平板电脑最合适
  9. uni-app 上传图片到阿里云oss
  10. 顶配梧桐树金玉满堂增额终身寿险,对抗“资产荒”的高增长神器