本讲是Camera KMD ISP子系统专题的第24讲,我们讲解Camera KMD ISP子系统CDM之工作流程。
更多资源:
资源 | 描述 |
---|---|
在线课程 | 极客笔记在线课程 |
知识星球 | 星球名称:深入浅出Android Camera 星球ID: 17296815 |
极客笔记圈 |
CDM bl request
- struct cam_cdm_bl_request – Cam CDM HW base & length (BL) request
-
BL(base&length) 意思就是提供cdm命令的基地址和长度给cdm hw, cdm hw就可以正确解析一个cdm命令了。
CDM命令分类
CDM 命令有哪些
- CAM_CDM_CMD_DMI //一般用于配置look up table
- CAM_CDM_CMD_REG_CONT //连续寄存器配置
- CAM_CDM_CMD_REG_RANDOM //随机寄存器配置
- CAM_CDM_CMD_BUFF_INDIRECT //cdm命令在另外一个Buffer,间接访问这些CDM命令
- CAM_CDM_CMD_GEN_IRQ //产生一个中断
- CAM_CDM_CMD_CHANGE_BASE //修改硬件寄存器base addr,例如多个tfe共用一个cdm hw时
- CAM_CDM_CMD_COMP_WAIT //等待一个comp 事件
- CAM_CDM_CLEAR_COMP_WAIT //清除一个comp 事件
CDM命令存在形式
CDM DMI Command
CDM REG Continuous Command
CDM REG Random Command
CDM Indirect Command
如何使用CDM
Client->data.cam_cdm_callback回调接口是client 调用cam_cdm_acquire()时传进来的
struct cam_cdm_bl_request介绍
cam_cdm_submit_bls()接口的参数struct cam_cdm_bl_request
所有的cdm 命令都是组装到cam_cdm_bl_request中发送到cdm hw
- 如何组装cam_cdm_bl_request
-
实际上所有的cdm命令都是存放在cmd buffer中,需要一个一个编排到cam_cdm_bl_request中