Camera KMD ISP学习笔记(1)-ISP框架

仅用于个人学习,侵联删
 
高通camera常用缩略词:
  • CPAS(Camera Peripherals and Support) // 存放硬件版本,总线接口,包括AXI/APB总线等
  • CDM(Camera Data Mover) // 数据搬运
  • TFE(Thin Front End) // 低配ife
  • IFE(Image Front End) // 图像前端,csid后面的第一个模块就是ife,出来是raw图
  • OPE(Offline Processing Engine) // 离线处理引擎,进去是raw,出来时yuv
  • BPS(Bayer Processing Segment) // 离线模块,处理bayer数据
  • SFE(Sensor Front End) // 四合一sensor的处理,高端平台才有,csid前面
  • LRME(Low Resolution Motion Estimation) // 也是单独的一个硬件
  • CSID(Camera Serial Interface Decoder) // 解码器,也就是RX
  • UMD(User Mode Driver) // 应用层驱动
  • KMD(Kernel Mode Driver) // kernel驱动
  • AB(Arbitrated Bandwidth) // 仲裁带宽
  • IB(Instantaneous Bandwidth) // 顺时带宽,cpas决定
  • CHI(Camera Hardware Interface) // camera硬件接口,高通专用词汇,算法集成在这里
  • RDI(Raw Dump Interface) // raw图dump接口
  • CRM(Camera Request Manager) // camera请求管理器
 
目录结构:
cam_cdm/
    ---cam_cdm_core_common.c        // 核心文件
    ---cam_cdm_hw_core.c            // 硬件核心
    ---cam_cdm_intf.c                // cdm暴露给外接的接口,比如tfe/ope
    ---cam_cdm_soc.c                // soc一些调用,比如解析dts
    ---cam_cdm_util.c                // 统一接口
    ---cam_cdm_virtual_core.c        // 与virtual core对应
cam_core/
    ---cam_context.c            // 上下文
    ---cam_context_utils.c    // 暴露接口
    ---cam_node.c
    ---cam_subdev.c        // 子设备,主设备和子设备的关系,主设备如何控制子设备    
cam_cpas/
cam_cre/
cam_cust/
cam_fd/
cam_icp/
cam_isp/
├── cam_isp_context.c        // context模型
├── cam_isp_context.h
├── cam_isp_dev.c        // isp dev注册一个设备,虚拟设备
├── cam_isp_dev.h
└── isp_hw_mgr            // 真实的设备管理在此处
    ├── cam_ife_hw_mgr.c    // ife

    ├── cam_isp_hw_mgr.c
 
    ├── cam_tfe_hw_mgr.c    // tfe

    ├── hw_utils            // isp相关的utils
    │   ├── cam_isp_packet_parser.c
    │   ├── cam_tasklet_util.c    // 中断下半部tasklet,统一处理

    │   └── irq_controller


    └── isp_hw
        ├── /ife_csid_hw

        ├── /ppi_hw

        ├── /sfe_hw

        ├── /tfe_csid_hw

        ├── /tfe_hw

        └── /vfe_hw


cam_jpeg/
cam_lrme/
cam_ope/
cam_presil/
cam_req_mgr/
    ---cam_mem_mgr.c            // 内存相关的分配管理
    ---cam_req_mgr_core.c        // 核心逻辑
    ---cam_req_mgr_debug.c        // debug相关
    ---cam_req_mgr_dev.c            // 设备相关,只不过是virtual 设备
    ---cam_req_mgr_timer.c        // 定时器相关,比如出帧相关
    ---cam_req_mgr_util.c        // 通用接口
    ---cam_req_mgr_workq.c        // 异步处理
    ---Makefile
cam_sensor_module/
cam_smmu/
        ---cam_smmu_api.c    // 暴露给其他硬件模块的接口
cam_sync/
    ---cam_sync.c            // probe相关
    ---cam_sync_dma_fence.c        // dma fence相关
    ---cam_sync_util.c            // 暴露接口调用
cam_utils/
                    // 给camera子系统使用,比如Log
    ---cam_common_util.c
    ---cam_compat.c
    ---cam_cx_ipeak.c
    ---cam_debug_util.c
    ---cam_io_util.c
    ---cam_packet_util.c
    ---cam_soc_bus.c
    ---cam_soc_icc.c
    ---cam_soc_util.c
    ---cam_trace.c

 

 

 

 
 
 
posted @ 2024-04-06 01:32  lethe1203  阅读(270)  评论(0编辑  收藏  举报