Part Number: TDA4VM
Hi everyone,
I have created a graph with only CSITX node and i want to send data from memory and see if CSITX is able to transmit.
I configure CSITX node parameters as follows:
tivx_csitx_params_init(&local_csitx_config);
local_csitx_config.numInst = 1U;
local_csitx_config.numCh = NUM_CHANNELS;
local_csitx_config.instId[0U] = CSITX_INST_ID;
local_csitx_config.instCfg[0U].rxCompEnable = (uint32_t)vx_true_e;
local_csitx_config.instCfg[0U].rxv1p3MapEnable = (uint32_t)vx_true_e;
local_csitx_config.instCfg[0U].laneBandSpeed = TIVX_CSITX_LANE_BAND_SPEED_770_TO_870_MBPS;
local_csitx_config.instCfg[0U].numDataLanes = 4U;
for (uint8_t loopCnt = 0U ;
loopCnt < local_csitx_config.instCfg[0U].numDataLanes ;
loopCnt++)
{
local_csitx_config.instCfg[0U].lanePolarityCtrl[loopCnt] = 0U;
}
for (uint8_t loopCnt = 0U; loopCnt < NUM_CHANNELS; loopCnt++)
{
local_csitx_config.chVcNum[loopCnt] = loopCnt;
local_csitx_config.chInstMap[loopCnt] = CSITX_INST_ID;
}
I initialize transmit buffers as follows:
printf("Initializing Transmit Buffers...\n");
for (frmIdx = 0U ; frmIdx < NUM_CHANNELS ; frmIdx++)
{
tx_frame_array_item = (tivx_raw_image)vxGetObjectArrayItem(tx_frame , frmIdx);
/* Initialize raw_image with running pattern using WRITE ONLY MAP */
tivxMapRawImagePatch(tx_frame_array_item, &rect, 0U, &map_id, &addr, (void **)&ptr,
VX_WRITE_ONLY, VX_MEMORY_TYPE_HOST, TIVX_RAW_IMAGE_PIXEL_BUFFER);
//ASSERT(ptr != NULL);
for (i = 0; i <CSITX_IMAGE_HEIGHT; i++)
{
for(j=0; j<CSITX_IMAGE_WIDTH; j++)
{
ptr[((i*CSITX_IMAGE_HEIGHT)+j)] = (j + frmIdx);
}
}
/* Do cache operations on each buffer to avoid coherency issues */
appMemCacheWb(ptr, (CSITX_IMAGE_HEIGHT * CSITX_IMAGE_WIDTH * sizeof(uint16_t)));
tivxUnmapRawImagePatch(tx_frame_array_item, map_id);
tivxReleaseRawImage(&tx_frame_array_item);
}
printf("Initializing Transmit Buffers Done.\n");
Application stuck in verify phase (vxVerifyGraph function). vxVerifyGraph function doesn't return any status.
Can anybody give some advice how to handle this problem?
Best regards.