MTK Camera Debug,adb 读写寄存器操作

server/2024/10/18 8:24:18/

在Camera BringUp阶段,遇到问题的时候,我们有时需要读取或者写入某个寄存器的值来进行debug。在mtk 平台,通过adb命令就能实现。

一、读取/写入 某个寄存器地址的值

下面的例子,针对主摄camera sensor进行操作。操作节点是/proc/driver/camsensor,其它camera sensor类推。

设备先adb root。

1)读取寄存器地址的值

/proc/driver # echo "0x0a34" > camsensor && dmesg |grep -i a34

2)往寄存器地址写值

/proc/driver # echo "0x3304 0x66” > camsensor && dmesg |grep -i 3304

操作示例打印:XXX:/proc/driver # echo "0x3304 0x66" > camsensor && dmesg |grep -i 3304
[  361.519092] (1)[3166:sh]write_cmos_sensor 3304
[  361.519351] (1)[3166:sh]read_cmos_sensor 3304
[  361.519369] (1)[3166:sh][imgsensor]write addr = 0x00003304, data = 0x00000066

调试读写操作,对应驱动代码打印:

case SENSOR_FEATURE_SET_REGISTER:LOG_INF("SENSOR_FEATURE_SET_REGISTER");write_cmos_sensor(sensor_reg_data->RegAddr,sensor_reg_data->RegData);break;case SENSOR_FEATURE_GET_REGISTER:LOG_INF("SENSOR_FEATURE_GET_REGISTER");sensor_reg_data->RegData =read_cmos_sensor(sensor_reg_data->RegAddr);break;
二、相关代码逻辑在:

kernel-4.19/drivers/misc/mediatek/imgsensor/src/common/v1_1/imgsensor_proc.c

1261cffb1f3ec812168bfdcf0eca8d2f.jpeg

2cddea48fccbe3f94bc80fdd1e71416e.png

《Android Camera开发入门》、《Camx初认识》已经上架,可以点击了解 -> 小驰成长圈 |期待见证彼此的成长 cc35c044c23120e80109f5bc82bfddf2.png

ddb538e890f1946796f5cc989a517a86.png

觉得不错,点个赞呗 9490a3ce91d7fdbc7a46e317b8d1564c.png


http://www.ppmy.cn/server/110693.html

相关文章

Qt-初始Qt

1. Qt背景介绍 1.1 什么是Qt Qt是⼀个跨平台的C图形⽤⼾界⾯应⽤程序框架。它为应⽤程序开发者提供了建⽴艺术级图形界⾯所需的所有功能。它是完全⾯向对象的,很容易扩展。Qt为开发者提供了⼀种基于组件的开发模式,开发者可以通过简单的拖拽和组合来实现…

开学要买什么?出门少不了续电神器充电宝!性价比超高充电宝

宝子们,开学季又来啦!新的学期,新的开始,大家是不是都在忙着准备各种学习用品和生活好物呢?在众多开学必备物品中,有一个东西可千万不能忘记,那就是我们的续电神器 —— 充电宝!出门…

TCP的连接与断开

三次握手 主动发起连接建立的应用进程叫做客户端(client)。被动等待连接建立的应用进程叫做服务器(server)。 第一次握手:Client将同步比特SYN置为1(表示这是一个连接请求或连接接受报文),并发送初始报文段序号seq x&#xff0…

解决 启动模拟器出现 未开启Hyper-V 的问题

~~ 解决 启动模拟器出现 未开启Hyper-V 的问题 ~~ 如果在启动模拟器时出现 未开启Hyper-V 的问题 解决方案: 1.打开控制面板–>点击 程序和功能 2.点击左侧:启用或关闭Windows功能 3.找到虚拟机平台–> 打对勾√ -->确定 (注意…

C++:控制电脑状态控制

以下是一个控制计算机关机、重启、注销和休眠的程序。程序首先输出一个菜单,让用户选择要执行的操作。用户输入数字后,程序会根据用户的选择执行相应的操作。 关机:用户可以选择立即关机、设定定时关机任务或取消定时关机任务。如果选择立即关…

【运维】解决Ubuntu 22.04 desktop版本打不开终端

问题 我是在Visual Box中创建的虚拟机,基于Ubuntu 22.04.4 desktop amd64版本。创建之后,在应用列表中打开terminal,并没有启动,过一会,程序自动退出 解决 这种一般都是语言和地区设置的不一致 比如:地区…

Golang | Leetcode Golang题解之第381题O(1)时间插入、删除和获取随机元素-允许重复

题目: 题解: type RandomizedCollection struct {idx map[int]map[int]struct{}nums []int }/** Initialize your data structure here. */ func Constructor() RandomizedCollection {return RandomizedCollection{idx: map[int]map[int]struct{}{},}…

数据集不够用?3DGS助力生成带标注的全新扩展数据!

作者主页:https://louiszengcn.github.io/ 论文标题: Realistic Surgical Image Dataset Generation Based On 3D Gaussian Splatting 导读: 近年来,随着AI技术的飞速发展,数据量的增加为数据驱动的神经网络提供了更强…