您好,专家
我正在使用 single_cam demo 从 ISP 处理器(OAX4000)获取 mipi 信号。OAX4000已经通过 CSIRX1感应 mipi。
我进行了一些更改、但当代码运行到函数 vxGraphParameteEnqueueReadyRef 时、代码会被占用。 我检查了代码、认为设置正常。
MIPI: 4通道、1472Mbps/通道、VC0:YUV422-8、3840X2170@30fps
sensor_drv 中的设置如下所示:
static IssSensor_CreateParams oax4000CreatePrms = {
SENSOR_OV_OAX4000_M96717, /*sensor name*/
0x1, /*i2cInstId*/
{0x36, 0, 0, 0, 0, 0, 0, 0}, /*i2cAddrSensor*/
{0x42, 0, 0, 0, 0, 0, 0, 0}, /*i2cAddrSer*/
/*IssSensor_Info*/
{
{
OAX4000_OUT_WIDTH, /*width*/
OAX4000_OUT_HEIGHT, /*height*/
1, /*num_exposures*/
vx_false_e, /*line_interleaved*/
{
{VX_DF_IMAGE_UYVY, 7}, /*dataFormat and MSB [0]*/
},
0, /*meta_height_before*/
0, /*meta_height_after*/
},
ISS_SENSOR_OAX4000_FEATURES, /*features*/
ALGORITHMS_ISS_AEWB_MODE_NONE, /*aewbMode*/
30, /*fps*/
4, /*numDataLanes*/
{1, 2, 3, 4}, /*dataLanesMap*/
{0, 0, 0, 0}, /*dataLanesPolarity*/
683, /*CSI Clock*/
},
1, /*numChan*/
4000, /*dccId*/
};
static IssSensorFxns oax4000SensorFxns = {
OAX4000_Probe,
OAX4000_Config,
OAX4000_StreamOn,
OAX4000_StreamOff,
OAX4000_PowerOn,
OAX4000_PowerOff,
OAX4000_GetExpParams,
OAX4000_SetAeParams,
OAX4000_GetDccParams,
OAX4000_InitAewbConfig,
OAX4000_GetIspConfig,
OAX4000_ReadWriteReg,
OAX4000_GetExpPrgFxn,
OAX4000_deinit,
OAX4000_GetWBPrgFxn,
OAX4000_SetAwbParams
};
static IssSensorIntfParams oax4000SensorIntfPrms = {
0, /*isMultiChannel*/
4, /*numCSI2Lanes*/
1, /*inCsi2VirtualChanNum*/
1, /* isCplxCfgValid */
{
{0, 1}, /* Clock Lane */
{0, 2}, /* data1Lane */
{0, 3}, /* data2Lane */
{0, 4}, /* data3Lane*/
{0, 5}, /* data4Lane */
},
683, /* csi2PhyClk */
0, /*sensorBroadcast*/
0, /*enableFsin*/
};
此外、我在 single_cam 演示中的函数 app_create_graph 中进行了一些更改:
printf("########################## OAX4000 !!!!!!\r\n");
local_capture_config.instId[0] = 1;
local_capture_config.chInstMap[0] = 1U;
local_capture_config.instCfg[0].laneBandSpeed = TIVX_CAPTURE_LANE_BAND_SPEED_1350_TO_1500_MBPS;
local_capture_config.chVcNum[0] = 0;
演示日志为:
root@j7-evm:~# /opt/vision_apps/vx_app_single_cam.out APP: Init ... !!! MEM: Init ... !!! MEM: Initialized DMA HEAP (fd=4) !!! MEM: Init ... Done !!! IPC: Init ... !!! IPC: Init ... Done !!! REMOTE_SERVICE: Init ... !!! REMOTE_SERVICE: Init ... Done !!! 171.282926 s: GTC Frequency = 200 MHz APP: Init ... Done !!! 171.286469 s: VX_ZONE_INIT:Enabled 171.286495 s: VX_ZONE_ERROR:Enabled 171.286503 s: VX_ZONE_WARNING:Enabled 171.292925 s: VX_ZONE_INIT:[tivxInit:71] Initialization Done !!! 171.293097 s: VX_ZONE_INIT:[tivxHostInit:48] Initialization Done for HOST !!! Single Camera Demo - (c) Texas Instruments 2019 ======================================================== Usage, /opt/vision_apps/vx_app_single_cam.out --cfg <config file> Defaulting to interactive mode IttCtrl_registerHandler: command echo registered at location 0 IttCtrl_registerHandler: command iss_read_2a_params registered at location 1 IttCtrl_registerHandler: command iss_write_2a_params registered at location 2 IttCtrl_registerHandler: command iss_raw_save registered at location 3 IttCtrl_registerHandler: command iss_yuv_save registered at location 4 IttCtrl_registerHandler: command iss_read_sensor_reg registered at location 5 IttCtrl_registerHandler: command iss_write_sensor_reg registered at location 6 IttCtrl_registerHandler: command dev_ctrl registered at location 7 IttCtrl_registerHandler: command iss_send_dcc_file registered at location 8 NETWORK: Opened at IP Addr = 0.0.0.0, socket port=5000!!! 171.293959 s: ISS: Enumerating sensors ... !!! 171.294362 s: ISS: Enumerating sensors ... found 0 : IMX390-UB953_D3 171.294372 s: ISS: Enumerating sensors ... found 1 : AR0233-UB953_MARS 171.294380 s: ISS: Enumerating sensors ... found 2 : AR0820-UB953_LI 171.294387 s: ISS: Enumerating sensors ... found 3 : UB9xxx_RAW12_TESTPATTERN 171.294395 s: ISS: Enumerating sensors ... found 4 : UB96x_UYVY_TESTPATTERN 171.294403 s: ISS: Enumerating sensors ... found 5 : GW_AR0233_UYVY 171.294410 s: ISS: Enumerating sensors ... found 6 : OAX4000-MAX96717 Select camera port index 0-7 : [MCU2_0] 171.294050 s: ImageSensor_RemoteServiceHandler: IM_SENSOR_CMD_CREATE [MCU2_0] 171.294114 s: Sensor at index 0 = IMX390-UB953_D3 [MCU2_0] 171.294146 s: Sensor at index 1 = AR0233-UB953_MARS [MCU2_0] 171.294172 s: Sensor at index 2 = AR0820-UB953_LI [MCU2_0] 171.294195 s: Sensor at index 3 = UB9xxx_RAW12_TESTPATTERN [MCU2_0] 171.294220 s: Sensor at index 4 = UB96x_UYVY_TESTPATTERN [MCU2_0] 171.294245 s: Sensor at index 5 = GW_AR0233_UYVY [MCU2_0] 171.294283 s: Sensor at index 6 = OAX4000-MAX96717 6 0x7 registered sensor drivers a : IMX390-UB953_D3 b : AR0233-UB953_MARS c : AR0820-UB953_LI d : UB9xxx_RAW12_TESTPATTERN e : UB96x_UYVY_TESTPATTERN f : GW_AR0233_UYVY g : OAX4000-MAX96717 Select a sensor above or press '0' to autodetect the sensor : Invalid selection . Try again 0x7 registered sensor drivers a : IMX390-UB953_D3 b : AR0233-UB953_MARS c : AR0820-UB953_LI d : UB9xxx_RAW12_TESTPATTERN e : UB96x_UYVY_TESTPATTERN f : GW_AR0233_UYVY g : OAX4000-MAX96717 Select a sensor above or press '0' to autodetect the sensor : g Sensor selected : OAX4000-MAX96717 LDC Selection Yes(1)/No(0) : LDC Selection Yes(1)/No(0) : 0 Querying OAX4000-MAX96717 179.690395 s: ISS: Querying sensor [OAX4000-MAX96717] ... !!! 179.690642 s: ISS: Querying sensor [OAX4000-MAX96717] ... Done !!! YUV Input selected. VISS and AEWB nodes will be bypassed. 179.690655 s: ISS: Initializing sensor [OAX4000-MAX96717], doing IM_SENSOR_CMD_PWRON ... !!! [MCU2_0] 179.690496 s: ImageSensor_RemoteServiceHandler: IM_SENSOR_CMD_QUERY [MCU2_0] 179.690555 s: Received Query for OAX4000-MAX96717 [MCU2_0] 179.690713 s: ImageSensor_RemoteServiceHandler: IM_SENSOR_CMD_PWRON 179.690950 s: ISS: Initializing sensor [OAX4000-MAX96717], doing IM_SENSOR_CMD_CONFIG ... !!! 179.691217 s: ISS: Initializing sensor [OAX4000-MAX96717] ... Done !!! ############# width:3840 height:2170 ########################## OAX4000 !!!!!! disable LDC Scaler is disabled ========================== Demo : Single Camera w/ 2A ========================== p: Print performance statistics s: Save Sensor RAW, VISS Output and H3A output images to File System e: Export performance statistics u: Update DCC from File System x: Exit Enter Choice: Unsupported command ========================== Demo : Single Camera w/ 2A ========================== p: Print performance statistics s: Save Sensor RAW, VISS Output and H3A output images to File System e: Export performance statistics u: Update DCC from File System x: Exit Enter Choice: 179.696380 s: ISS: Starting sensor [OAX4000-MAX96717] ... !!! 179.696748 s: ISS: Starting sensor [OAX4000-MAX96717] ... !!! [MCU2_0] 179.690790 s: IM_SENSOR_CMD_PWRON : channel_mask = 0x1 sensor_name:OAX4000-MAX96717 [MCU2_0] 179.690852 s: fpd i2cInst:0 Addr:0x0 status;-1 [MCU2_0] 179.690888 s: sensor powron status:0 [MCU2_0] 179.691024 s: ImageSensor_RemoteServiceHandler: IM_SENSOR_CMD_CONFIG [MCU2_0] 179.691061 s: Application requested features = 0x0 [MCU2_0] [MCU2_0] 179.691115 s: Configuring camera # 0 [MCU2_0] 179.691154 s: IM_SENSOR_CMD_CONFIG returning status = 0 [MCU2_0] 179.696495 s: ImageSensor_RemoteServiceHandler: IM_SENSOR_CMD_STREAM_ON [MCU2_0] 179.696582 s: IM_SENSOR_CMD_STREAM_ON: channel_mask = 0x1 [MCU2_0] 179.696619 s: IssSensor_Start chId:0 [MCU2_0] 179.696664 s: OAX4000 StreamOn !!!!!!!!! p Summary of CPU load, ==================== CPU: mpu1_0: TOTAL LOAD = 15. 6 % ( HWI = 0. 4 %, SWI = 0. 4 % ) CPU: mcu2_0: TOTAL LOAD = 2.53 % ( HWI = 0.47 %, SWI = 0. 9 % ) CPU: mcu2_1: TOTAL LOAD = 0. 9 % ( HWI = 0. 6 %, SWI = 0. 1 % ) CPU: c6x_1: TOTAL LOAD = 0.47 % ( HWI = 0.28 %, SWI = 0.17 % ) CPU: c6x_2: TOTAL LOAD = 0.47 % ( HWI = 0.28 %, SWI = 0.17 % ) CPU: c7x_1: TOTAL LOAD = 0. 7 % ( HWI = 0. 3 %, SWI = 0. 2 % ) HWA performance statistics, =========================== DDR performance statistics, =========================== DDR: READ BW: AVG = 11 MB/s, PEAK = 300 MB/s DDR: WRITE BW: AVG = 5 MB/s, PEAK = 200 MB/s DDR: TOTAL BW: AVG = 16 MB/s, PEAK = 500 MB/s Detailed CPU performance/memory statistics, =========================================== CPU: mcu2_0: TASK: IPC_RX: 0. 0 % CPU: mcu2_0: TASK: REMOTE_SRV: 0. 0 % CPU: mcu2_0: TASK: LOAD_TEST: 0. 0 % CPU: mcu2_0: TASK: TIVX_CPU: 0. 0 % CPU: mcu2_0: TASK: TIVX_NF: 0. 0 % CPU: mcu2_0: TASK: TIVX_LDC1: 0. 0 % CPU: mcu2_0: TASK: TIVX_MSC1: 0. 0 % CPU: mcu2_0: TASK: TIVX_MSC2: 0. 0 % CPU: mcu2_0: TASK: TIVX_VISS1: 0. 0 % CPU: mcu2_0: TASK: TIVX_CAPT1: 0. 0 % CPU: mcu2_0: TASK: TIVX_CAPT2: 0. 0 % CPU: mcu2_0: TASK: TIVX_DISP1: 0. 0 % CPU: mcu2_0: TASK: TIVX_DISP2: 0. 0 % CPU: mcu2_0: TASK: TIVX_CSITX: 0. 0 % CPU: mcu2_0: TASK: TIVX_CAPT3: 0. 0 % CPU: mcu2_0: TASK: TIVX_CAPT4: 0. 0 % CPU: mcu2_0: HEAP: DDR_SHARED_MEM: size = 16777216 B, free = 16712448 B ( 99 % unused) CPU: mcu2_0: HEAP: L3_MEM: size = 131072 B, free = 131072 B (100 % unused) CPU: mcu2_0: HEAP: DDR_NON_CACHE_M: size = 16777216 B, free = 16777216 B (100 % unused) CPU: mcu2_1: TASK: IPC_RX: 0. 0 % CPU: mcu2_1: TASK: REMOTE_SRV: 0. 0 % CPU: mcu2_1: TASK: LOAD_TEST: 0. 0 % CPU: mcu2_1: TASK: TIVX_SDE: 0. 0 % CPU: mcu2_1: TASK: TIVX_DOF: 0. 0 % CPU: mcu2_1: TASK: TIVX_VDEC1: 0. 0 % CPU: mcu2_1: TASK: TIVX_VDEC2: 0. 0 % CPU: mcu2_1: TASK: TIVX_VENC1: 0. 0 % CPU: mcu2_1: TASK: TIVX_VENC2: 0. 0 % CPU: mcu2_1: TASK: IPC_TEST_RX: 0. 0 % CPU: mcu2_1: TASK: IPC_TEST_TX: 0. 0 % CPU: mcu2_1: TASK: IPC_TEST_TX: 0. 0 % CPU: mcu2_1: TASK: IPC_TEST_TX: 0. 0 % CPU: mcu2_1: TASK: IPC_TEST_TX: 0. 0 % CPU: mcu2_1: TASK: IPC_TEST_TX: 0. 0 % CPU: mcu2_1: HEAP: DDR_SHARED_MEM: size = 16777216 B, free = 16774912 B ( 99 % unused) CPU: mcu2_1: HEAP: L3_MEM: size = 131072 B, free = 131072 B (100 % unused) CPU: mcu2_1: HEAP: DDR_NON_CACHE_M: size = 117440512 B, free = 97542144 B ( 9 % unused) CPU: c6x_1: TASK: IPC_RX: 0. 0 % CPU: c6x_1: TASK: REMOTE_SRV: 0. 0 % CPU: c6x_1: TASK: LOAD_TEST: 0. 0 % CPU: c6x_1: TASK: TIVX_CPU: 0. 0 % CPU: c6x_1: TASK: IPC_TEST_RX: 0. 0 % CPU: c6x_1: TASK: IPC_TEST_TX: 0. 0 % CPU: c6x_1: TASK: IPC_TEST_TX: 0. 0 % CPU: c6x_1: TASK: IPC_TEST_TX: 0. 0 % CPU: c6x_1: TASK: IPC_TEST_TX: 0. 0 % CPU: c6x_1: TASK: IPC_TEST_TX: 0. 0 % CPU: c6x_1: HEAP: DDR_SHARED_MEM: size = 16777216 B, free = 16774912 B ( 99 % unused) CPU: c6x_1: HEAP: L2_MEM: size = 229376 B, free = 229376 B (100 % unused) CPU: c6x_1: HEAP: DDR_SCRATCH_MEM: size = 50331648 B, free = 50331648 B ( 14 % unused) CPU: c6x_2: TASK: IPC_RX: 0. 0 % CPU: c6x_2: TASK: REMOTE_SRV: 0. 0 % CPU: c6x_2: TASK: LOAD_TEST: 0. 0 % CPU: c6x_2: TASK: TIVX_CPU: 0. 0 % CPU: c6x_2: TASK: IPC_TEST_RX: 0. 0 % CPU: c6x_2: TASK: IPC_TEST_TX: 0. 0 % CPU: c6x_2: TASK: IPC_TEST_TX: 0. 0 % CPU: c6x_2: TASK: IPC_TEST_TX: 0. 0 % CPU: c6x_2: TASK: IPC_TEST_TX: 0. 0 % CPU: c6x_2: TASK: IPC_TEST_TX: 0. 0 % CPU: c6x_2: HEAP: DDR_SHARED_MEM: size = 16777216 B, free = 16774912 B ( 99 % unused) CPU: c6x_2: HEAP: L2_MEM: size = 229376 B, free = 229376 B (100 % unused) CPU: c6x_2: HEAP: DDR_SCRATCH_MEM: size = 50331648 B, free = 50331648 B ( 14 % unused) CPU: c7x_1: TASK: IPC_RX: 0. 0 % CPU: c7x_1: TASK: REMOTE_SRV: 0. 0 % CPU: c7x_1: TASK: LOAD_TEST: 0. 0 % CPU: c7x_1: TASK: TIVX_CPU: 0. 0 % CPU: c7x_1: TASK: IPC_TEST_RX: 0. 0 % CPU: c7x_1: TASK: IPC_TEST_TX: 0. 0 % CPU: c7x_1: TASK: IPC_TEST_TX: 0. 0 % CPU: c7x_1: TASK: IPC_TEST_TX: 0. 0 % CPU: c7x_1: TASK: IPC_TEST_TX: 0. 0 % CPU: c7x_1: TASK: IPC_TEST_TX: 0. 0 % CPU: c7x_1: HEAP: DDR_SHARED_MEM: size = 1073741824 B, free = 1073741824 B ( 0 % unused) CPU: c7x_1: HEAP: L3_MEM: size = 8159232 B, free = 8159232 B (100 % unused) CPU: c7x_1: HEAP: L2_MEM: size = 491520 B, free = 491520 B (100 % unused) CPU: c7x_1: HEAP: L1_MEM: size = 16384 B, free = 16384 B (100 % unused) CPU: c7x_1: HEAP: DDR_SCRATCH_MEM: size = 100663296 B, free = 100663296 B ( 14 % unused) GRAPH: graph_85 (#nodes = 2, #executions = 0) NODE: CAPTURE2: node_96: avg = 0 usecs, min/max = 18446744073709551 / 0 usecs, #executions = 0 NODE: DISPLAY1: node_97: avg = 0 usecs, min/max = 18446744073709551 / 0 usecs, #executions = 0 PERF: TOTAL: avg = 0 usecs, min/max = 4294967295 / 0 usecs, #executions = 0 PERF: TOTAL: 0. 0 FPS
CSIRX 似乎没有接收到信号、但我不知道为什么、所有更改看起来都是正确的