1. camera_qcx/build/qnx/cdk_qcx/oem/qcom/cameraconfig/cameraconfig_hi_sx/common.mk
#===== CCFLAGS - add the flags to the C compiler command line.
# CCFLAGS += -DCAMERA_CONFIG_USE_SA8650LOMX
# CCFLAGS += -DCAMERA_CONFIG_USE_SA_DSICSI
CCFLAGS += -DCAMERA_CONFIG_USE_SA8650_AMT //添加这行
CCFLAGS += $(QCX_CCFLAGS) $(QCX_CPPFLAGS)
2. camera_qcx/cdk_qcx/oem/qcom/cameraconfig/src/cameraconfig.c
#if defined(CAMERA_CONFIG_USE_SA8650_AMT)
int SA8650_GetCameraConfig(CameraConfigInfo_t const **ppBoardInfo);
#endif
static int CameraConfigInit()
{
...
#elif defined(CAMERA_CONFIG_USE_SA8650_AMT)
rc = SA8650_GetCameraConfig((const CameraConfigInfo_t **)&sg_pCameraConfig);
#elif defined(__QNXNTO__) && !defined (LINUX_LRH)
rc = SA8650_SuperMax_UTC4_GetCameraConfig((const CameraConfigInfo_t **)&sg_pCameraConfig);
#else
rc = SA8650_GetCameraConfig((const CameraConfigInfo_t **)&sg_pCameraConfig);
#endif
return rc;
}
3. camera_qcx/cdk_qcx/oem/qcom/cameraconfig/src/cameraconfigsa8650.c
//DES0 LinkA type改成9
{.subdevId = 0, .type = 9, .snsrModeId = 0, .colorSpace = QCARCAM_COLOR_SPACE_BT601},
{.subdevId = 1, .type = 2, .snsrModeId = 0, .colorSpace = QCARCAM_COLOR_SPACE_BT601},
{.subdevId = 2, .type = 2, .snsrModeId = 0, .colorSpace = QCARCAM_COLOR_SPACE_BT601},
{.subdevId = 3, .type = 2, .snsrModeId = 0, .colorSpace = QCARCAM_COLOR_SPACE_BT601}
//type 的数字对应 max96712_lib.h
typedef enum
{
MAXIM_SENSOR_ID_INVALID,
MAXIM_SENSOR_ID_AR0820_EXT_ISP_GW5300,
MAXIM_SENSOR_ID_AR0231,
MAXIM_SENSOR_ID_AR0231_EXT_ISP,
MAXIM_SENSOR_ID_S5K1H1SX,
MAXIM_SENSOR_ID_AR0234_EXT_FPGA,
MAXIM_SENSOR_ID_VG1761,
MAXIM_SENSOR_ID_VG5761,
MAXIM_SENSOR_ID_MAX9295,
MAXIM_SENSOR_ID_IMX728,
MAXIM_SENSOR_ID_OX03F10,
MAXIM_SENSOR_ID_IMX623,
MAXIM_SENSOR_ID_S5K1H1,
MAXIM_SENSOR_ID_IMX623_LI,
MAXIM_SENSOR_ID_SER_PATTERN_GEN = 253,
MAXIM_SENSOR_ID_PATTERN_GEN,
MAXIM_SENSOR_ID_MAX
}maxim_sensor_id_t;
4. camera_qcx/build/qnx/fileset/qc.camera_qcx.config.build
#if defined(__IPNEXT_CVSOC_8630__) || defined(__IPNEXT_CVSOC__)
#include qc.camera_qcx.config.ride_lo_sx.build
#elif defined(__CAMERA_CONFIG_USE_SA_DSICSI__)
#include qc.camera_qcx.config.ride_dsi_csi.build
#elif defined(__CAMERA_CONFIG_USE_TI9724__)
#include qc.camera_qcx.config.ride_ti9724.build
#elif defined(VARIANT_monaco)
#include qc.camera_qcx_sa8620.build
#else
#include qc.camera_qcx.config.ride_hi_sx.build //修改编译调用文件
#endif
5. camera_qcx/build/qnx/fileset/qc.camera_qcx.config.ride_hi_sx.build
//添加拷贝IMX728的so规则
[uid=ROOT_UID gid=ROOT_GID perms=0555] lib64/camera/com.qti.sensor.max96712_imx728_rggb.so=aarch64le/lib/camera_qcx/com.qti.sensor.max96712_imx728_rggb.so
PERM_BIN lib64/camera/com.qti.sensormodule.00.max96712_imx728_rggb_00.bin=aarch64le/lib/camera_qcx/com.qti.sensormodule.00.max96712_imx728_rggb_00.bin
PERM_BIN lib64/camera/com.qti.tuned.sony_imx728_rggb.bin=aarch64le/lib/camera_qcx/com.qti.tuned.sony_imx728_rggb.bin
6. camera_qcx/camx-common/settings/sa8650/camxsettings.xml
<setting>
<Name>Use Logical Camera XML</Name>
<Help>Use this xml file when building the logical cam info. This must exist under
chi-cdk/oem/qcom/multicamera/logical_cam_info/TARGET_BOARD_PLATFORM_</Help>
<VariableName>multiCameraLogicalXMLFile</VariableName>
<VariableType>String</VariableType>
<SetpropKey>persist.vendor.camera.multicam.multicameralogicalxmlfile</SetpropKey>
<!-- Please note that an underscore means use slotId/sensorName matching -->
<DefaultValue>mulsanne_auto.xml</DefaultValue> //修改调用xml
<Dynamic>FALSE</Dynamic>
</setting>
7. camera_qcx/cdk_qcx/oem/qcom/multicamera/chimcxcameraconfig/configs/mulsanne/mulsanne_auto.xml
//修改 slotId0 为IMX728
<Devices
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="../../../tools/logicalcameragenerator/logicalcam.xsd">
<PhysicalDevice name="max96712_imx728_rggb_00" slotId="0" cameraId="0" sensorName="max96712_imx728_rggb_00" usage="custom" position="center" orientation="default" />
<PhysicalDevice name="max96712_ar0231_01" slotId="1" cameraId="1" sensorName="max96712_ar0231_01" usage="custom" position="center" orientation="default" />
<PhysicalDevice name="max96712_ar0231_02" slotId="2" cameraId="2" sensorName="max96712_ar0231_02" usage="custom" position="center" orientation="default" />
//DES0 Port0 改为IMX728
<!--SRV1 : Connected to DES0 Port0(sensor00)-->
<LogicalDevice name="DES0port0" cameraId="15" primaryCamName="max96712_imx728_rggb_00">
<PhysicalDeviceRef>max96712_imx728_rggb_00</PhysicalDeviceRef>
<PhysicalDeviceRef>VirtualCam0</PhysicalDeviceRef>
</LogicalDevice>
//注掉这段, 否则编译报错
<!--SRV : Connected to DES0 Port0,1,2,3(sensor00,01,02,03)-->
<!--<LogicalDevice name="DES0port04" cameraId="28" primaryCamName="max96712_ar0231_00">
<PhysicalDeviceRef>max96712_ar0231_00</PhysicalDeviceRef>
<PhysicalDeviceRef>max96712_ar0231_01</PhysicalDeviceRef>
<PhysicalDeviceRef>max96712_ar0231_02</PhysicalDeviceRef>
<PhysicalDeviceRef>max96712_ar0231_03</PhysicalDeviceRef>
</LogicalDevice>-->