01. SIPL 驱动开发深度拆解
核心目标:理解 SIPL 框架的插件化设计,掌握如何为一个新的 CMOS 传感器或 SerDes 芯片编写驱动插件。
1. SIPL 架构中的“插件”逻辑
英伟达 SIPL (Sensor Input Processing Library) 并不是一个死板的库,而是一个通过 CDI (Camera Device Interface) 暴露的框架。
graph TD
SIPL_Core -->|调用| CDI
CDI -->|实现| Sensor_Plugin
CDI -->|实现| SerDes_Plugin
2. 关键接口:CDI 虚函数实现
GetInfo(): 报告分辨率、像素格式、VC-ID。SetDefaults(): 写入初始寄存器列表。Control(): 处理启动流 (StreamOn) 或停止流。
// 示例:设置传感器曝光
NvMediaStatus MySensor_SetExposure(DevID devId, float exposureTime) {
uint32_t regVal = CalculateRegFromTime(exposureTime);
return WriteReg(devId, EXPOSURE_ADDR, regVal);
}
3. JSON 平台配置文件
关键字段:
·
·
·
·
csiLaneConfiguration: MIPI Lane 数 (1/2/4)。·
i2cAddress: 传感器 7/8 位地址。·
serdesLink: 对应解串器入口。