美文网首页
OTP调试笔记

OTP调试笔记

作者: 窝窝蜗牛 | 来源:发表于2021-02-24 11:05 被阅读0次
  1. OTP数据的获取方式
    可参数模组厂提供的OTPguide

  2. OTP数据的存储位置
    1)otp数据如果不大,为了节省成本,可以存储在sensor内部寄存器中。不过由于one time program,可能烧写出错,所以会有两到三组数据。
    2)数据量大的情况存储在外挂eeprom中,所以该器件有独立的iic地址,并且eeprom和sensor的寄存器并不是统一编址。
    在sensor端读取数据时有个读取规则,可能是需要配置sensor的当前工作模式什么的,eeprom没这么复杂,直接上电就可以读数据。

  3. OTP数据的正确性验证
    第一步 看kernel层打印


    image.png

    该日志打印位置,eeprom_parse_memory_map。读出来的值是烧录的原始otp数据,可以验证厂家烧录的值是否正确
    第二步 查看vendor打印
    vendor打印打印一般看驱动的打印就够了,format_calibration_data中会对读取到的otp解析计算,比如分解出模组厂商信息,模组生产日期,awb计算出R/G,B/G的值,最后才用这些数据做校准。


    image.png
  4. OTP的校准方式
    1)sensor端校准
    如果在sensor端校准,一般校准函数为NULL。
    2)平台端校准
    调用平台自带的校准函数分别对awb,lsc,af和pdaf做校准。

  5. 代码结构
    文件:module_sensor.c eeprom.c msm_eeprom.c
    OTP初始化步骤:
    入口函数:module_sensor_init_eeprom
    内核空间:
    (1)设备驱动匹配,跑msm_eeprom_platform_probe
    (2)解析设备树数据,保存
    (3)注册v4l2子设备
    vendor 用户空间:
    /* (1) Open the eeprom sub module */
    rc = func_tbl.open((void *)&s_bundle->eeprom_data,
    &s_bundle->subdev_info[SUB_MODULE_EEPROM]);
    /
    (2) Load eeprom library /
    eeprom_load_library(s_bundle->eeprom_data, bin_ctl.ctl.name_data.path);
    /
    (3) Powerup and parse the eeprom /
    func_tbl.process(s_bundle->eeprom_data, EEPROM_INIT, NULL);
    =>eeprom.c eeprom_init
    cfg.cfgtype = CFG_EEPROM_INIT;
    cfg.cfg.eeprom_info = eeprom_info;
    rc = ioctl(ectrl->fd, VIDIOC_MSM_EEPROM_CFG, &cfg);
    msm_eeprom.c :
    eeprom_init_config->
    msm_eeprom_power_up->eeprom_parse_memory_map->msm_camera_power_down
    /
    (4) Read the eeprom data from kernel /
    rc = func_tbl.process(s_bundle->eeprom_data, EEPROM_READ_DATA, NULL);
    /
    (5) Format the cal data /
    rc = func_tbl.process(s_bundle->eeprom_data, EEPROM_SET_FORMAT_DATA, NULL);
    ==> .format_calibration_data
    /
    (6) close the eeprom sub module */
    rc = func_tbl.close(s_bundle->eeprom_data);

相关文章

  • OTP调试笔记

    OTP数据的获取方式可参数模组厂提供的OTPguide OTP数据的存储位置1)otp数据如果不大,为了节省成本,...

  • RabbitMQ安装教程

    版本 当前为 otp20.2 + rabbitmq 3.7.3 安装otp 配置otp 环境变量 变量名:ERL...

  • RabbitMQ安装教程

    版本 当前为 otp20.2 + rabbitmq 3.7.3 安装otp 配置otp 环境变量 变量名:ERLA...

  • OTP的优点

    OTP的优点

  • iOS Developer的全栈之路 - Keycloak(6)

    在本小节中,我们来看看如何配置OTP(One Time Password),目前Keycloak自身支持的OTP有...

  • erlang连接Mysql数据库(mysql-otp)

    对比emysql和mysql-otp之后,个人选择了mysql-otp作为mysql连接驱动,并使用raber加载...

  • 秒杀第八节:用户模型管理-otp验证码获取

    用户获取otp短信接口总共有三步:1、按照一定规则生成OTP验证码2、将OTP验证同对应用户的手机号关联,在这里使...

  • OTP(案例)

    上一篇《短信验证码的迷思》后,汇总了一些案例。 Quikr 印度最大的生活类分类信息平台。 勾选通过 OTP(On...

  • 0406 OTP

    1. $65 2-3C hq 2. 3.dark brown 4.$275 92sets/hq arm open...

  • 手机动态口令

    一.什么是OTP和TOTP OTP全称叫One-time Password,也称动态口令,是根据专门的算法每隔60...

网友评论

      本文标题:OTP调试笔记

      本文链接:https://www.haomeiwen.com/subject/jhoxaktx.html