SA6155P max9288 camera 笔记

SA6145P max9288 camera 笔记

一、相关的服务和库

./vendor/qcarcam_edrm_rvc.rc
./system/lib64/[email protected]
./system/lib/[email protected]
./system/bin/qcarcam_test
./early_services/system/bin/qcarcam_test
./early_services/system/bin/qcarcam_edrm_rvc
./vendor/lib64/libais_log_proprietary.so
./vendor/lib64/libais_client_proprietary.so //mark
./vendor/lib64/libais_test_util_proprietary.so
./vendor/lib/libais_log_proprietary.so
./vendor/lib/libais_test_util_proprietary.so
./vendor/bin/ais_v4l2loopback_config.xml
./vendor/bin/ais_v4l2_proxy
./system/lib64/libais.so
./system/lib64/libais_client.so
./system/lib64/libais_test_util_edrm.so
./system/lib64/libais_max9296.so
./system/lib64/libais_test_util.so
./system/lib64/libais_log.so
./system/lib64/libais_config.so
./system/lib/libais.so
./system/lib/libais_client.so
./system/lib/libais_test_util_edrm.so
./system/lib/libais_max9296.so
./system/lib/libais_test_util.so
./system/lib/libais_log.so
./system/lib/libais_config.so
./early_services/system/bin/ais_server

二、EARLY_INIT的配置

BoardConfig.mk
BOARD_SUPPORTS_EARLY_INIT := true
export CONFIG_EARLY_INIT := true

/early_services/system/bin //开机走的这个里面的服务

三、宏配置

1、BOARD_SUPPORTS_EARLY_INIT
#Build AIS for early(system) or late(vendor)
ifeq ( ( B O A R D S U P P O R T S E A R L Y I N I T ) , t r u e ) i f n e q ( (BOARD_SUPPORTS_EARLY_INIT),true) ifneq ( (BOARDSUPPORTSEARLYINIT),true)ifneq((PLATFORM_VERSION), 10)
AIS_BUILD_FOR_EARLYSERVICE := true //走的这个里面
ais_compile_cflags += -DAIS_EARLYSERVICE
endif
endif

2、AIS_BUILD_STATIC
AIS_BUILD_STATIC := false

3、AIS_32_BIT_FLAG
#build 64bit by default
AIS_32_BIT_FLAG := false

4、AIS_DISABLE_HEALTH
#option to disable health monitor
AIS_DISABLE_HEALTH := false

ifeq ($(AIS_DISABLE_HEALTH),true)
ais_compile_cflags +=
-DAIS_DISABLE_HEALTH
endif

client中会有一个进程一直check
./CameraMulticlient/client/src/ais_client.c

./CameraMulticlient/common/inc/ais_comm.h:94:#define HEALTH_CHECK_DELAY_MSEC 200
./CameraMulticlient/client/src/ais_client.c:732: int sleep_usec = HEALTH_CHECK_DELAY_MSEC * 1000; // Convert msec to usec
./CameraMulticlient/server/src/ais_server.c:1199: int sleep_usec = HEALTH_CHECK_DELAY_MSEC * 1000; // Convert msec to usec

5、AIS_BAYER_ISP
没打开
ifeq ($(AIS_BAYER_ISP),true) //代码没看到这个宏被打开了
ais_compile_cflags +=
-DMAX9296_DEFAULT_BAYER
-DAIS_DEFAULT_FRAMEBASED
endif

5.1、MAX9296_DEFAULT_BAYER
./ImagingInputs/SensorLibs/max9296_lib/src/max9296_lib.c:170:#ifdef MAX9296_DEFAULT_BAYER

#ifdef MAX9296_DEFAULT_BAYER

static max9296_topology_config_t default_config =
{
#ifdef AIS_EARLYSERVICE
.boardType = CAMERA_DAUGHTER_BOARD_TYPE_2,
#else
.boardType = CAMERA_DAUGHTER_BOARD_TYPE_1,
#endif
.opMode = MAXIM_OP_MODE_DEFAULT,
.num_of_cameras = 1,
.sensor_id = {
MAXIM_SENSOR_ID_AR0231,
MAXIM_SENSOR_ID_INVALID
}
};

#else

static max9296_topology_config_t default_config =
{
#ifdef AIS_EARLYSERVICE
.boardType = CAMERA_DAUGHTER_BOARD_TYPE_2,
#else
.boardType = CAMERA_DAUGHTER_BOARD_TYPE_1,
#endif
.opMode = MAXIM_OP_MODE_DEFAULT,
.num_of_cameras = 2,
.sensor_id = {
MAXIM_SENSOR_ID_AR0231_EXT_ISP, //走的else,
MAXIM_SENSOR_ID_AR0231_EXT_ISP
}
};
#endif

//驱动里面ID定义
typedef enum
{
MAXIM_SENSOR_ID_INVALID,
MAXIM_SENSOR_ID_AR0231,
MAXIM_SENSOR_ID_AR0231_EXT_ISP,
MAXIM_SENSOR_ID_MAX
}maxim_sensor_id_t;

5.2、AIS_DEFAULT_FRAMEBASED
./Engine/src/ais_ife_configurer.cpp:602:#ifdef AIS_DEFAULT_FRAMEBASED

#ifdef AIS_DEFAULT_FRAMEBASED
sRdiCfg.outputConfig.mode = IFE_OUTPUT_MODE_FRAME_BASED;
#else
/Enable line based as default mode./
sRdiCfg.outputConfig.mode = IFE_OUTPUT_MODE_LINE_BASED;
#endif

//驱动里面mode定义
typedef enum
{
IFE_OUTPUT_MODE_LINE_BASED = 0,
IFE_OUTPUT_MODE_FRAME_BASED
}IfeOutputModeType;

6、 TARGET_USES_TV_TUNER
没有用到
./Android.mk:39:ifeq ($(TARGET_USES_TV_TUNER),true)

ifeq ($(TARGET_USES_TV_TUNER),true)
ais_compile_cflags += -DENABLE_TV_TUNER
endif

7、AIS_ISP_DISABLE_SHDR
没打开
ifeq ($(AIS_ISP_DISABLE_SHDR),true)
ais_compile_cflags +=
-DAIS_ISP_DISABLE_SHDR
endif

./Engine/src/chi/ais_pproc_isp.cpp

#ifdef AIS_ISP_DISABLE_SHDR
// User can decide at compile time to disable sHDR
m_usecaseId = UsecaseBPSAECAWBIPEInputMipiRaw16OutNV12;
#else
m_usecaseId = UsecaseShdrBpsIpeAECAWB;
#endif

四、调试命令

/early_services/system/bin/ais_server &
qcarcam_test -config=/system/bin/qcarcam_config.xml
后面可以带一些参数:
qcarcam_test -config=/system/bin/qcarcam_config.xml -dumpFrame=1

五、代码

device_id和link配置
./ImagingInputs/SensorLibs/max9296_lib/config/max9296_config.xml
代码修改:
./ImagingInputs/SensorLibs/max9296_lib/
── src
├── ar0231.c
├── ar0231_ext_isp.c
├── ar0231_ext_isp.h
├── ar0231.h
├── max9296_lib.c
└── max9296_lib.h

你可能感兴趣的:(驱动开发,ais,camera,max9288)