3399 Camera HAL

 

[RK3399][Android7.1] Camera HAL初始化流程

Platform: rk3399
OS: Android 7.1
Kernel: v4.4.83

rk3399对HAL的处理基本上和rk3288一样没什么变化,详细可参考
[RK3288][Android6.0] Camera HAL流程小结

hardware\rockchip\camera\CameraHal\CameraHal_Module.cpp

camera_get_number_of_cameras -> //camera service会在开机的时候从HAL层获取camera number.
  camera_board_profiles::getInstance -> //解析camera board文件
    createInstance ->
      new camera_board_profiles //创建一个对象用于保存文件中的参数
      fopen(RK_BOARD_XML_PATH, "r"); //板子上是/system/etc/cam_board.xml,代码中是hardware/rockchip/camera/Config/cam_board_rk3399.xml
      fread //读取xml
      XML_SetElementHandler -> //核心解析在于StartElementHandler()这函数回调
        new rk_cam_total_info //每创建一个代表一个device,后面会看到代表sensor的结构体:rk_sensor_info,不要弄混淆
      nCamDev2 = profiles->mDevieVector.size //表示当前xml中一共配置了几个sensor
      nDVnum2 = profiles->mCurDevice->mSoftInfo.mDV_vector.size //当前device支持的dv config总数
  camera_board_profiles::LoadSensor(profiles); ->
    fopen(dst_file, "r"); //刷机后第一次起来/data/media_profiles_tmp.xml是不存在的,需要创建,因此会注册所有board xml中配置的sensor
    OpenAndRegistALLSensor ->
      OpenAndRegistOneSensor -> //依次注册
        dlopen  //尝试打开system/lib/hw/下有没有libisp_isi_drv_XXX.so,XXX为sensor name,比如这里是OV13850
      
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值