RK3288 android添加HAL 层导致无法进入主界面原因分析,重复打印 camsys_marvin(deaa1510) is closed
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相关推荐
- Android P HAL层添加HIDL实例(详细实现步骤)
Android P HAL层添加HIDL实例 本文是参照 https://www.jianshu.com/p/b80865c61d8e 教程介绍实现,原理请参考原作者. 本文将介绍如何在P OS上添加 ...
- android音频hal层简介
如下图为android音频hal层所处的位置: 从上图可以看出,HAL层下面使用TiniAlsa(Android下一个简约的Alsa版本).HAL层分为两部分,一部分为各种音频设备,每种音频设备由一个 ...
- Android 10 HAL 层添加HIDL实现过程
本文以跑步机为假想场景介绍如何在Android Q(10)上添加HIDL,内容涉及HAL.HIDL进程间通讯.多线程以及串口操作,涵盖了标准的Android硬件服务的主要技术.编写时参考了两篇博客(见 ...
- 【Android】HAL层浅析
一.HAL层的前世今生 二.HAL层的通用结构剖析 三.一个例子 四.击破Audio HAL Module 五.小的总结 一.HAL层的前世今生 HAL(Hardware Abstraction La ...
- 未知的错误代码在应用程序安装:110 android,应用在华为P9手机上安装失败原因分析 (错误码:-110)...
问题描述: 应用在之前的华为手机上都能正常安装,但是在华为P9手机上安装失败,提示错误为: 失败原因: 系统问题导致安装失败(错误码:-110) 原因分析: 开始怀疑是android的版本问题,后来看 ...
- 华大 MCU 之七 DMA 导致 SPI 异常停止的原因分析、DMA 配置的那些坑
缘起 在最近的项目测试中发现,SPI 通信总是莫名其妙的失败,查看寄存器发现 SPI 已经被停止了.根据手册,SPI 在异常情况下会被强制停止(SPI 的使能为被清零),而根据波形显示通信过程没有 ...
- Android 4.X 系统加载 so 失败的原因分析
1 so 加载过程 so 加载的过程可以参考小米的系统工程师的文章loadLibrary动态库加载过程分析 2 问题分析 2.1 问题 年前项目里新加了一个 so库,但发现native 方法的找不到的 ...
- python项目运行,导致内存越来越大的原因分析
内存越来越大的原因分析 问题描述: 程序运行现象分析: 尝试解决: 原因分析: 解决方法: 问题描述: 目前遇到的问题是这样的,爬虫程序部署到K8S服务器上运行,但是会过几个小时之后,程序就会被主动杀 ...
- Windows 7 自动更新失败导致无法进系统解决方案
故障现象:自动更新后,重启电脑,提示: (配置Windows update 失败 还原更改 请勿关闭计算机), 而计算机一直停留该界面,如果半个小时以上都无反应.此时,就不要再继续等待了.可采取以下办 ...
最新文章
- JVM解读-性能调优实例
- DiscuzNT改造-远程内容自动采集-DNT2.5(定时采集、源码下载)
- u3d:动态的用代码调节材质球的属性
- BookMarklet:瑞士军刀你用了吗?
- WireShark抓DNS请求和回复数据报的分析
- Object-C中self和super的区别
- 数据结构和算法之排序一:归并排序
- nsga2代码解读python_python自动化办公系列 | python操作pdf—— PyPDF2 和 pdfplumber模块(1)...
- [UWP小白日记-9]页面跳转过度动画(二)
- 360安全卫士对于易量安装打包的可执行程序进行病毒误报
- storm32云台说明书_STorM32 BGC三轴增稳云台驱动下载
- FreeTextBox使用详解(FTBv3-1-6)
- 浪潮ssr服务器安全加固系统贵吗,浪潮SSR加固服务器安全
- python与开源gis_Python与开源GIS:SpatiaLite简介
- 批量识别PDF文件(图片类型)中的文字
- 排队问题解题思路_有关排队问题的排列组合题解法举例
- 网页设计语言html做思维导图,web网页实现思维导图展示
- 入坑张银奎老师研发的GDK7
- 理解 alter table nologging
- c语音程序加密题(字母后加四位)
热门文章
- SELinux权限问题解决
- 【高通SDM660平台 Android 10.0】(21) --- 高通Camera persist使用手册
- Vue3中如何进行页面局部刷新,组件刷新
- Word中,页眉-编辑页眉中,“链接到前一节页眉”呈灰色,不可点击?
- 喾哲~ (八月最佳)
- 补肾健脑的中药有哪些?
- uni-app -- 改变页面背景颜色
- 平板电脑win10 android比较好,华为MateBook名不副实!Win10平板电脑最合适
- uni-app 上传图片到阿里云oss
- 顶配梧桐树金玉满堂增额终身寿险,对抗“资产荒”的高增长神器