工具/软件:
您好、
该计划需要得到执行。
相机 (v4l2-1920x1080 /dev/video2 @ UYVY) --> tiovx -> csiTX --> max96717f;
请提供相关文档和代码示例。
此致、
Cesar
This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
尊敬的 Cesar:
您能否请参阅下面的常见问题解答并将 CSITX 添加到此示例中?
此致、
Brijesh
您好 、Brijesh、
1.我计划将蓝屏数据输出到 CSITX 进行测试,相应的代码如下:
2.但 执行 此' vxVerifyGraph '函数时出错
3.请帮助确认代码编写是否有任何问题。


#include <stdio.h>
#include <stdlib.h>
#include <signal.h>
#include <tiovx_modules.h>
#include <tiovx_utils.h>
#include <v4l2_capture_module.h>
#include <TI/video_io_csitx.h>
#define NUM_CHANNELS (4U)
#define CSITX_INST_ID (0U)
#define CSITX_LANE_BAND_SPEED (TIVX_CSITX_LANE_BAND_SPEED_770_TO_870_MBPS)
#define CSITX_LANE_SPEED_MBPS (800U)
static void signal_handler(int signum, vx_bool* running_flag)
{
if (signum == SIGINT || signum == SIGTERM) {
printf("\nReceived termination signal, stopping...\n");
*running_flag = vx_false_e;
}
}
void setup_signal_handler(void)
{
signal(SIGINT, (void(*)(int))signal_handler);
signal(SIGTERM, (void(*)(int))signal_handler);
}
static void add_graph_parameter_by_node_index(vx_graph graph, vx_node node, vx_uint32 node_parameter_index)
{
vx_parameter parameter = vxGetParameterByIndex(node, node_parameter_index);
vxAddParameterToGraph(graph, parameter);
vxReleaseParameter(¶meter);
}
vx_image create_uyvy_blue_screen_exemplar(vx_context context)
{
vx_image exemplar = NULL;
vx_status status = VX_SUCCESS;
exemplar = vxCreateImage(context, 1920, 1080, VX_DF_IMAGE_UYVY);
if (!exemplar) {
printf("Failed to create image exemplar\n");
return NULL;
}
vx_map_id map_id;
void* ptr;
vx_imagepatch_addressing_t addr;
vx_rectangle_t rect;
rect.start_x = 0;
rect.start_y = 0;
rect.end_x = 1920;
rect.end_y = 1080;
status = vxMapImagePatch(exemplar, &rect, 0, &map_id, &addr, &ptr, VX_WRITE_ONLY, VX_MEMORY_TYPE_HOST, 0);
if (status != VX_SUCCESS) {
printf("Failed to map image patch: %d\n", status);
vxReleaseImage(&exemplar);
return NULL;
}
uint8_t* pixel_data = (uint8_t*)ptr;
uint32_t width = 1920;
uint32_t height = 1080;
for (uint32_t y = 0; y < height; y++) {
for (uint32_t x = 0; x < width; x += 2) {
uint32_t offset = y * addr.stride_y + x * 2;
pixel_data[offset + 0] = 128; /* U */
pixel_data[offset + 1] = 16; /* Y */
pixel_data[offset + 2] = 128; /* V */
pixel_data[offset + 3] = 16; /* Y */
}
}
status = vxUnmapImagePatch(exemplar, map_id);
if (status != VX_SUCCESS) {
printf("Failed to unmap image patch: %d\n", status);
vxReleaseImage(&exemplar);
return NULL;
}
return exemplar;
}
vx_status app_modules_v4l2_capture_test(vx_int32 argc, vx_char* argv[])
{
vx_status status = VX_FAILURE;
GraphObj graph;
vx_node csitx_node = 0;
vx_object_array tx_frame = 0;
vx_image csitx_image_exemplar;
vx_user_data_object csitx_config;
tivx_csitx_params_t local_csitx_config;
uint32_t loop_id;
vx_graph_parameter_queue_params_t csitx_graph_parameters_queue_params_list[1];
vx_bool keep_running = vx_true_e;
status = tiovx_modules_initialize_graph(&graph);
if (status != VX_SUCCESS) {
printf("Failed to initialize graph: %d\n", status);
goto exit;
}
vx_graph csitx_graph = graph.tiovx_graph;
csitx_image_exemplar = create_uyvy_blue_screen_exemplar(graph.tiovx_context);
if (!csitx_image_exemplar) {
status = VX_ERROR_INVALID_PARAMETERS;
printf("Failed to create image exemplar\n");
goto exit;
}
tx_frame = vxCreateObjectArray(graph.tiovx_context, (vx_reference)csitx_image_exemplar, 1);
if (tx_frame == NULL) {
status = VX_ERROR_INVALID_PARAMETERS;
printf("Failed to create object array: %d\n", status);
goto exit;
}
/* CSITX Config initialization */
tivx_csitx_params_init(&local_csitx_config);
local_csitx_config.numInst = 1U;
local_csitx_config.numCh = 1;
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 = CSITX_LANE_BAND_SPEED;
local_csitx_config.instCfg[0U].laneSpeedMbps = CSITX_LANE_SPEED_MBPS;
local_csitx_config.instCfg[0U].numDataLanes = 4U;
for (loop_id = 0U ; loop_id < local_csitx_config.instCfg[0U].numDataLanes ; loop_id++)
{
local_csitx_config.instCfg[0U].lanePolarityCtrl[loop_id] = 0u;
}
for (loop_id = 0U; loop_id < NUM_CHANNELS; loop_id++)
{
local_csitx_config.chVcNum[loop_id] = loop_id;
local_csitx_config.chInstMap[loop_id] = CSITX_INST_ID;
}
csitx_config = vxCreateUserDataObject(graph.tiovx_context, "tivx_csitx_params_t", sizeof(tivx_csitx_params_t), &local_csitx_config);
if (csitx_config == NULL) {
status = VX_ERROR_INVALID_PARAMETERS;
printf("Failed to create user data object: %d\n", status);
goto exit;
}
csitx_node = tivxCsitxNode(csitx_graph, csitx_config, tx_frame);
if (csitx_node == NULL) {
status = VX_ERROR_INVALID_PARAMETERS;
printf("Failed to create CSITX node: %d\n", status);
goto exit;
}
status = vxSetNodeTarget(csitx_node, VX_TARGET_STRING, TIVX_TARGET_CSITX);
if (status != VX_SUCCESS) {
printf("Failed to set node target: %d\n", status);
goto exit;
}
/* input @ node index 0, becomes csitx_graph parameter 1 */
add_graph_parameter_by_node_index(csitx_graph, csitx_node, 1);
/* set csitx_graph schedule config such that csitx_graph parameter @ index 0 and 1 are enqueuable */
csitx_graph_parameters_queue_params_list[0].graph_parameter_index = 0;
csitx_graph_parameters_queue_params_list[0].refs_list_size = 1;
csitx_graph_parameters_queue_params_list[0].refs_list = (vx_reference*)&tx_frame;
/* Schedule mode auto is used, here we dont need to call vxScheduleGraph
* Graph gets scheduled automatically as refs are enqueued to it
*/
status = vxSetGraphScheduleConfig(csitx_graph,
VX_GRAPH_SCHEDULE_MODE_QUEUE_AUTO,
1,
csitx_graph_parameters_queue_params_list
);
if (status != VX_SUCCESS) {
printf("Failed to set graph schedule config: %d\n", status);
goto exit;
}
printf("start_______________vxVerifyGraph_______________________\n");
status = vxVerifyGraph(csitx_graph);
if (status != VX_SUCCESS) {
printf("Failed to verify graph: %d\n", status);
goto exit;
}
printf("end_______________vxVerifyGraph_______________________\n");
/* Now enqueue a buffer to trigger csitx_graph scheduling */
status = vxGraphParameterEnqueueReadyRef(csitx_graph, 0, (vx_reference*)&tx_frame, 1);
if (status != VX_SUCCESS) {
printf("Failed to enqueue ready reference: %d\n", status);
goto exit;
}
printf("CSITX node started, press Ctrl+C to stop...\n");
setup_signal_handler();
loop_id = 0;
while (keep_running)
{
uint32_t num_refs;
vx_object_array transmitted_frames = NULL;
/* Get transmitted frame reference, waits until a reference is available */
vxGraphParameterDequeueDoneRef(csitx_graph, 0, (vx_reference*)&transmitted_frames, 1, &num_refs);
/*
if (loop_id % 100 == 0) {
printf("Processed %u frames...\n", loop_id);
}
loop_id++;
*/
vxGraphParameterEnqueueReadyRef(csitx_graph, 0, (vx_reference*)&transmitted_frames, 1);
}
printf("Stopping CSITX node...\n");
vxWaitGraph(csitx_graph);
exit:
if (csitx_node != 0) {
vxReleaseNode(&csitx_node);
}
if (tx_frame != 0) {
vxReleaseObjectArray(&tx_frame);
}
if (csitx_config != 0) {
vxReleaseUserDataObject(&csitx_config);
}
tiovx_modules_clean_graph(&graph);
return status;
}
此致、
Cesar
您好 、Brijesh、
更新 libtivision_apps.so & vx_app_rtos_linux_mcu2_0.out
错误日志:
root@j721e-evm:/opt/edgeai-tiovx-apps/build/tests# ../../bin/Release/edgeai-tiovx-apps-test
APP: Init ... !!!
MEM: Init ... !!!
MEM: Initialized DMA HEAP (fd=5) !!!
MEM: Init ... Done !!!
IPC: Init ... !!!
IPC: Init ... Done !!!
REMOTE_SERVICE: Init ... !!!
REMOTE_SERVICE: Init ... Done !!!
97.679472 s: GTC Frequency = 200 MHz
APP: Init ... Done !!!
97.685556 s: VX_ZONE_INIT:Enabled
97.685603 s: VX_ZONE_ERROR:Enabled
97.685610 s: VX_ZONE_WARNING:Enabled
97.689006 s: VX_ZONE_INIT:[tivxInitLocal:130] Initialization Done !!!
97.693460 s: VX_ZONE_INIT:[tivxHostInitLocal:96] Initialization Done for HOST !!!
Running v4l2 capture module test
start_______________vxVerifyGraph_______________________
97.730597 s: VX_ZONE_ERROR:[ownContextSendCmd:822] Command ack message returned failure cmd_status: -7
97.730609 s: VX_ZONE_ERROR:[ownContextSendCmd:862] tivxEventWait() failed.
97.730616 s: VX_ZONE_ERROR:[ownNodeKernelInit:527] Target kernel, TIVX_CMD_NODE_CREATE failed for node node_91
97.730622 s: VX_ZONE_ERROR:[ownNodeKernelInit:528] Please be sure the target callbacks have been registered for this core
97.730628 s: VX_ZONE_ERROR:[ownNodeKernelInit:529] If the target callbacks have been registered, please ensure no errors are occurring within the create callback of this kernel
97.730636 s: VX_ZONE_ERROR:[ownGraphNodeKernelInit:583] kernel init for node 0, kernel com.ti.csitx ... failed !!!
97.730646 s: VX_ZONE_ERROR:[vxVerifyGraph:2055] Node kernel init failed
97.730652 s: VX_ZONE_ERROR:[vxVerifyGraph:2109] Graph verify failed
Failed to verify graph: -1
97.731669 s: VX_ZONE_WARNING:[vxReleaseContext:1088] Found a reference 0xffffa3e744d0 of type 0000080f at external count 1, internal count 0, releasing it
97.731680 s: VX_ZONE_WARNING:[vxReleaseContext:1090] Releasing reference (name=image_87) now as a part of garbage collection
All tests complete!
97.732394 s: VX_ZONE_INIT:[tivxHostDeInitLocal:110] De-Initialization Done for HOST !!!
97.736759 s: VX_ZONE_INIT:[tivxDeInitLocal:193] De-Initialization Done !!!
APP: Deinit ... !!!
REMOTE_SERVICE: Deinit ... !!!
REMOTE_SERVICE: Deinit ... Done !!!
IPC: Deinit ... !!!
IPC: DeInit ... Done !!!
MEM: Deinit ... !!!
DDR_SHARED_MEM: Alloc's: 3 alloc's of 8294496 bytes
DDR_SHARED_MEM: Free's : 3 free's of 8294496 bytes
DDR_SHARED_MEM: Open's : 0 allocs of 0 bytes
MEM: Deinit ... Done !!!
APP: Deinit ... Done !!!
root@j721e-evm:/opt/edgeai-tiovx-apps/build/tests#
此致、
Cesar
您好 Cesar、
如果使用此电路板:
https://www.ti.com/tool/J721EXSOMXEVM
您应该无法使用 Linux 驱动程序访问摄像头。
您应使用 RTOS SDK https://www.ti.com/tool/PROCESSOR-SDK-J721E#downloads 并参考以下摄像头应用指南:
此致、
Adam
您好 、Brijesh、
切换到另一个目标节点 ( tivxDisplayM2MNode ) 仍会导致相同的错误。
以下是伪代码。
obj->graph = vxCreateGraph(obj->context);
capt_yuv_image = vxCreateImage(1920, 1080, VX_DF_IMAGE_UYVY);
/* DSS M2M initialization */
tivx_display_m2m_params_init(&obj->display_m2m_params);
obj->display_m2m_params.instId = 0;
obj->display_m2m_params.numPipe = 1;
obj->display_m2m_params.pipeId[0U] = 3;
obj->display_m2m_params.overlayId = 3;
printf ("Enabling DSS_M2M \n");
obj->display_m2m_output_image = vxCreateImage(obj->context, 1920, 1080, VX_DF_IMAGE_UYVY);
obj->display_m2m_param_obj = vxCreateUserDataObject(obj->context, "tivx_display_m2m_params_t", sizeof(tivx_display_m2m_params_t), &obj->display_m2m_params);
obj->displaym2mNode = tivxDisplayM2MNode(obj->graph, obj->display_m2m_param_obj, obj->capt_yuv_image, obj->display_m2m_output_image);
if(status == VX_SUCCESS)
{
status = vxSetNodeTarget(obj->displaym2mNode, VX_TARGET_STRING, TIVX_TARGET_DISPLAY_M2M1);
}
if(status == VX_SUCCESS)
{
status = tivxSetNodeParameterNumBufByIndex(obj->displaym2mNode, 2u, obj->num_cap_buf);
}
obj->csitx_image_arr = vxCreateObjectArray(obj->context, (vx_reference)obj->display_m2m_output_image, num_capture_frames);
printf ("tivxCsitxNode!!!! \n");
APP_PRINTF("________1_______vxVerifyGraph______________\n");
if(status == VX_SUCCESS)
{
status = vxVerifyGraph(obj->graph);
}
APP_PRINTF("________2_______vxVerifyGraph______________\n");
错误日志:
tivxImagingLoadKernels done app_init done Creating graph _______________vxCreateImage______________ Enabling DSS_M2M tivxCsitxNode!!!! ________1_______vxVerifyGraph______________ NETWORK: Opened at IP Addr = 192.168.0.71, socket port=5000!!! 4841.775455 s: VX_ZONE_ERROR:[ownContextSendCmd:822] Command ack message returned failure cmd_status: -7 4841.775474 s: VX_ZONE_ERROR:[ownContextSendCmd:862] tivxEventWait() failed. 4841.775482 s: VX_ZONE_ERROR:[ownNodeKernelInit:527] Target kernel, TIVX_CMD_NODE_CREATE failed for node node_97 4841.775488 s: VX_ZONE_ERROR:[ownNodeKernelInit:528] Please be sure the target callbacks have been registered for this core 4841.775494 s: VX_ZONE_ERROR:[ownNodeKernelInit:529] If the target callbacks have been registered, please ensure no errors are occurring within the create callback of this kernel 4841.775502 s: VX_ZONE_ERROR:[ownGraphNodeKernelInit:583] kernel init for node 0, kernel com.ti.displaym2m ... failed !!! 4841.775516 s: VX_ZONE_ERROR:[vxVerifyGraph:2055] Node kernel init failed 4841.775522 s: VX_ZONE_ERROR:[vxVerifyGraph:2109] Graph verify failed ________2_______vxVerifyGraph______________
此致、
Cesar
您好 Cesar、
请查看使用 test_csitx_csirx.c 的符合性测试:
root@j721e-evm:/opt/vision_apps# ./vx_app_conformance_video_io.out --filter=tivxVideoIOCsitxCsirx* APP: Init ... !!! MEM: Init ... !!! MEM: Initialized DMA HEAP (fd=5) !!! MEM: Init ... Done !!! IPC: Init ... !!! IPC: Init ... Done !!! REMOTE_SERVICE: Init ... !!! REMOTE_SERVICE: Init ... Done !!! 114.154845 s: GTC Frequency = 200 MHz APP: Init ... Done !!! 114.154917 s: VX_ZONE_INIT:Enabled 114.154924 s: VX_ZONE_ERROR:Enabled 114.154930 s: VX_ZONE_WARNING:Enabled 114.155690 s: VX_ZONE_INIT:[tivxInitLocal:130] Initialization Done !!! 114.156135 s: VX_ZONE_INIT:[tivxHostInitLocal:101] Initialization Done for HOST !!! VxTests version: unknown VCS version: unknown Build config: Release [ ======== ] Total 28 tests from 5 test cases Use test filter: tivxVideoIOCsitxCsirx* Use global OpenVX context: FALSE [ -------- ] tests from tivxVideoIOCsitxCsirx [ RUN 0001 ] tivxVideoIOCsitxCsirx.CsitxCsirxloopback/0/CsitxCsirx/Width=1920/Height=1080/loopCount=1000/csitx_inst=0 ... Initializing Transmit Buffers... Initializing Transmit Buffers Done. [ DONE ] tivxVideoIOCsitxCsirx.CsitxCsirxloopback/0/CsitxCsirx/Width=1920/Height=1080/loopCount=1000/csitx_inst=0 [ RUN 0002 ] tivxVideoIOCsitxCsirx.CsitxCsirxloopback/1/CsitxCsirx/Width=1920/Height=1080/loopCount=1000/csitx_inst=0 ... [MCU2_0] 167.084387 s: ========================================================== [MCU2_0] 167.084486 s: Csitx Status: Instance|0 [MCU2_0] 167.084520 s: ========================================================== [MCU2_0] 167.084562 s: FIFO Overflow Count: 0 [MCU2_0] 167.084712 s: Channel Num | Frame Queue Count | Frame De-queue Count | Frame Repeat Count | [MCU2_0] 167.084789 s: 0| 1002| 1002| 0| [MCU2_0] 167.084826 s: 1| 1002| 1002| 0| [MCU2_0] 167.084856 s: 2| 1002| 1002| 0| [MCU2_0] 167.084885 s: 3| 1002| 1002| 0| Initializing Transmit Buffers... Initializing Transmit Buffers Done. [MCU2_0] 220.013097 s: ========================================================== [MCU2_0] 220.013196 s: Csitx Status: Instance|0 [MCU2_0] 220.013232 s: ========================================================== [MCU2_0] 220.013275 s: FIFO Overflow Count: 0 [MCU2_0] 220.013302 s: Channel Num | Frame Queue Count | Frame De-queue Count | Frame Repeat Count | [MCU2_0] 220.013350 s: 0| 2004| 2004| 0| [MCU2_0] 220.013380 s: 1| 2004| 2004| 0| [MCU2_0] 220.013409 s: 2| 2004| 2004| 0| [MCU2_0] 220.013437 s: 3| 2004| 2004| 0| [ DONE ] tivxVideoIOCsitxCsirx.CsitxCsirxloopback/1/CsitxCsirx/Width=1920/Height=1080/loopCount=1000/csitx_inst=0 [ -------- ] 2 tests from test case tivxVideoIOCsitxCsirx [ ======== ] [ ALL DONE ] 2 test(s) from 1 test case(s) ran [ PASSED ] 2 test(s) [ FAILED ] 0 test(s) [ DISABLED ] 0 test(s) ================================= OpenVX Conformance report summary ================================= To be conformant to the OpenVX baseline, 2 required test(s) must pass. 2 tests passed, 0 tests failed. PASSED. To be conformant to the User Data Object extension, 0 required test(s) must pass. 0 tests passed, 0 tests failed. PASSED. Note: The 0 disabled tests are optional and are not considered for conformance. #REPORT: YYYYMMDDHHMMSS FILTERED 28 0 2 2 2 0 (version unknown) 220.018167 s: VX_ZONE_INIT:[tivxHostDeInitLocal:115] De-Initialization Done for HOST !!! 220.022578 s: VX_ZONE_INIT:[tivxDeInitLocal:193] De-Initialization Done !!! APP: Deinit ... !!! REMOTE_SERVICE: Deinit ... !!! REMOTE_SERVICE: Deinit ... Done !!! IPC: Deinit ... !!! IPC: DeInit ... Done !!! MEM: Deinit ... !!! DDR_SHARED_MEM: Alloc's: 16 alloc's of 33179328 bytes DDR_SHARED_MEM: Free's : 16 free's of 33179328 bytes DDR_SHARED_MEM: Open's : 0 allocs of 0 bytes MEM: Deinit ... Done !!! APP: Deinit ... Done !!!
您可以参考以下代码来启用 csitx。
此致、
Adam
尊敬的 Adam:
我的测试结果如下:
root@j721e-evm:/opt/vision_apps# ./vx_app_conformance_video_io.out --filter=tivxVideoIOCsitxCsirx* APP: Init ... !!! MEM: Init ... !!! MEM: Initialized DMA HEAP (fd=5) !!! MEM: Init ... Done !!! IPC: Init ... !!! IPC: Init ... Done !!! REMOTE_SERVICE: Init ... !!! REMOTE_SERVICE: Init ... Done !!! 18562.682024 s: GTC Frequency = 200 MHz APP: Init ... Done !!! 18562.682103 s: VX_ZONE_INIT:Enabled 18562.682111 s: VX_ZONE_ERROR:Enabled 18562.682116 s: VX_ZONE_WARNING:Enabled 18562.682852 s: VX_ZONE_INIT:[tivxInitLocal:130] Initialization Done !!! 18562.683942 s: VX_ZONE_INIT:[tivxHostInitLocal:96] Initialization Done for HOST !!! VxTests version: unknown VCS version: unknown Build config: Release [ ======== ] Total 26 tests from 4 test cases Use test filter: tivxVideoIOCsitxCsirx* Use global OpenVX context: FALSE [ ======== ] [ ALL DONE ] 0 test(s) from 0 test case(s) ran [ PASSED ] 0 test(s) [ FAILED ] 0 test(s) [ DISABLED ] 0 test(s) ================================= OpenVX Conformance report summary ================================= To be conformant to the OpenVX baseline, 0 required test(s) must pass. 0 tests passed, 0 tests failed. PASSED. To be conformant to the User Data Object extension, 0 required test(s) must pass. 0 tests passed, 0 tests failed. PASSED. Note: The 0 disabled tests are optional and are not considered for conformance. #REPORT: YYYYMMDDHHMMSS FILTERED 26 0 0 0 0 0 (version unknown) 18562.684178 s: VX_ZONE_INIT:[tivxHostDeInitLocal:110] De-Initialization Done for HOST !!! 18562.688754 s: VX_ZONE_INIT:[tivxDeInitLocal:193] De-Initialization Done !!! APP: Deinit ... !!! REMOTE_SERVICE: Deinit ... !!! REMOTE_SERVICE: Deinit ... Done !!! IPC: Deinit ... !!! IPC: DeInit ... Done !!! MEM: Deinit ... !!! DDR_SHARED_MEM: Alloc's: 0 alloc's of 0 bytes DDR_SHARED_MEM: Free's : 0 free's of 0 bytes DDR_SHARED_MEM: Open's : 0 allocs of 0 bytes MEM: Deinit ... Done !!! APP: Deinit ... Done !!!
此致、
Cesar
尊敬的 Adam:
我还测试了 displayM2M。
root@j721e-evm:/opt/vision_apps# ./vx_app_conformance_video_io.out --filter=tivxVideoIODisplayM2M* APP: Init ... !!! MEM: Init ... !!! MEM: Initialized DMA HEAP (fd=5) !!! MEM: Init ... Done !!! IPC: Init ... !!! IPC: Init ... Done !!! REMOTE_SERVICE: Init ... !!! REMOTE_SERVICE: Init ... Done !!! 19894.371286 s: GTC Frequency = 200 MHz APP: Init ... Done !!! 19894.371368 s: VX_ZONE_INIT:Enabled 19894.371376 s: VX_ZONE_ERROR:Enabled 19894.371381 s: VX_ZONE_WARNING:Enabled 19894.372124 s: VX_ZONE_INIT:[tivxInitLocal:130] Initialization Done !!! 19894.373034 s: VX_ZONE_INIT:[tivxHostInitLocal:96] Initialization Done for HOST !!! VxTests version: unknown VCS version: unknown Build config: Release [ ======== ] Total 26 tests from 4 test cases Use test filter: tivxVideoIODisplayM2M* Use global OpenVX context: FALSE [ -------- ] tests from tivxVideoIODisplayM2M [ RUN 0001 ] tivxVideoIODisplayM2M.tivxVideoIODisplayM2Mtest/0/DisplayM2M/Width=1920/Height=1080/loopCount=1000 ... Starting Display M2M Conformance Test... 19894.374319 s: VX_ZONE_ERROR:[tivxVideoIOLoadKernels:116] __________________tivxVideoIOLoadKernels_____________________ Creating Task 0... Creating Task 1... Waiting for graphs to finish execution... Graph 1: created... Graph 1: input and output images created... Graph 0: created... Graph 0: input and output images created... Added 'DSS_M2M1' node in graph 0 Graph 0: verifying... 19894.391758 s: VX_ZONE_ERROR:[ownNodeKernelInit:495] _________2____status = 0_______ 19894.396385 s: VX_ZONE_ERROR:[ownContextSendCmd:822] Command ack message returned failure cmd_status: -7 19894.396424 s: VX_ZONE_ERROR:[ownContextSendCmd:862] tivxEventWait() failed. 19894.396434 s: VX_ZONE_ERROR:[ownNodeKernelInit:521] _________3____status = -1_______ 19894.396440 s: VX_ZONE_ERROR:[ownNodeKernelInit:530] Target kernel, TIVX_CMD_NODE_CREATE failed for node node_81 19894.396448 s: VX_ZONE_ERROR:[ownNodeKernelInit:531] Please be sure the target callbacks have been registered for this core 19894.396454 s: VX_ZONE_ERROR:[ownNodeKernelInit:532] If the target callbacks have been registered, please ensure no errors are occurring within the create callback of this kernel 19894.396463 s: VX_ZONE_ERROR:[ownGraphNodeKernelInit:583] kernel init for node 0, kernel com.ti.displaym2m ... failed !!! 19894.396477 s: VX_ZONE_ERROR:[vxVerifyGraph:2055] Node kernel init failed 19894.396484 s: VX_ZONE_ERROR:[vxVerifyGraph:2109] Graph verify failed FAILED at /home/cesar/sdb/ti-processor-sdk-rtos-j721e-evm-09_00_00_02/video_io/kernels/video_io/test/test_display_m2m.c:289 Expected: VX_SUCCESS == vxVerifyGraph(m2m_graph) Actual: VX_SUCCESS != VX_FAILURE Added 'DSS_M2M2' node in graph 1 Graph 1: verifying... 19894.398577 s: VX_ZONE_ERROR:[ownNodeKernelInit:495] _________2____status = 0_______ 19894.399269 s: VX_ZONE_ERROR:[ownContextSendCmd:822] Command ack message returned failure cmd_status: -7 19894.399304 s: VX_ZONE_ERROR:[ownContextSendCmd:862] tivxEventWait() failed. 19894.399312 s: VX_ZONE_ERROR:[ownNodeKernelInit:521] _________3____status = -1_______ 19894.399318 s: VX_ZONE_ERROR:[ownNodeKernelInit:530] Target kernel, TIVX_CMD_NODE_CREATE failed for node node_83 19894.399324 s: VX_ZONE_ERROR:[ownNodeKernelInit:531] Please be sure the target callbacks have been registered for this core 19894.399330 s: VX_ZONE_ERROR:[ownNodeKernelInit:532] If the target callbacks have been registered, please ensure no errors are occurring within the create callback of this kernel 19894.399338 s: VX_ZONE_ERROR:[ownGraphNodeKernelInit:583] kernel init for node 0, kernel com.ti.displaym2m ... failed !!! 19894.399348 s: VX_ZONE_ERROR:[vxVerifyGraph:2055] Node kernel init failed 19894.399354 s: VX_ZONE_ERROR:[vxVerifyGraph:2109] Graph verify failed FAILED at /home/cesar/sdb/ti-processor-sdk-rtos-j721e-evm-09_00_00_02/video_io/kernels/video_io/test/test_display_m2m.c:289 Expected: VX_SUCCESS == vxVerifyGraph(m2m_graph) Actual: VX_SUCCESS != VX_FAILURE
此致、
Cesar
您好 、Brijesh、
DSS 在 Linux 上启用;
但是、CSITX 不用于 Linux;为什么也不能在 MCU2_0 上使用
root@j721e-evm:/opt/vision_apps# ./vx_app_conformance_video_io.out --filter=tivxVideoIOCsitxCsirx* APP: Init ... !!! MEM: Init ... !!! MEM: Initialized DMA HEAP (fd=5) !!! MEM: Init ... Done !!! IPC: Init ... !!! IPC: Init ... Done !!! REMOTE_SERVICE: Init ... !!! REMOTE_SERVICE: Init ... Done !!! 18562.682024 s: GTC Frequency = 200 MHz APP: Init ... Done !!! 18562.682103 s: VX_ZONE_INIT:Enabled 18562.682111 s: VX_ZONE_ERROR:Enabled 18562.682116 s: VX_ZONE_WARNING:Enabled 18562.682852 s: VX_ZONE_INIT:[tivxInitLocal:130] Initialization Done !!! 18562.683942 s: VX_ZONE_INIT:[tivxHostInitLocal:96] Initialization Done for HOST !!! VxTests version: unknown VCS version: unknown Build config: Release [ ======== ] Total 26 tests from 4 test cases Use test filter: tivxVideoIOCsitxCsirx* Use global OpenVX context: FALSE [ ======== ] [ ALL DONE ] 0 test(s) from 0 test case(s) ran [ PASSED ] 0 test(s) [ FAILED ] 0 test(s) [ DISABLED ] 0 test(s) ================================= OpenVX Conformance report summary ================================= To be conformant to the OpenVX baseline, 0 required test(s) must pass. 0 tests passed, 0 tests failed. PASSED. To be conformant to the User Data Object extension, 0 required test(s) must pass. 0 tests passed, 0 tests failed. PASSED. Note: The 0 disabled tests are optional and are not considered for conformance. #REPORT: YYYYMMDDHHMMSS FILTERED 26 0 0 0 0 0 (version unknown) 18562.684178 s: VX_ZONE_INIT:[tivxHostDeInitLocal:110] De-Initialization Done for HOST !!! 18562.688754 s: VX_ZONE_INIT:[tivxDeInitLocal:193] De-Initialization Done !!! APP: Deinit ... !!! REMOTE_SERVICE: Deinit ... !!! REMOTE_SERVICE: Deinit ... Done !!! IPC: Deinit ... !!! IPC: DeInit ... Done !!! MEM: Deinit ... !!! DDR_SHARED_MEM: Alloc's: 0 alloc's of 0 bytes DDR_SHARED_MEM: Free's : 0 free's of 0 bytes DDR_SHARED_MEM: Open's : 0 allocs of 0 bytes MEM: Deinit ... Done !!! APP: Deinit ... Done !!!
此致、
Cesar
尊敬的 Cesar:
现在至少在 MCU2_0 上启用了 DSS。
[MCU2_0] 15.189794 s:dss:init ...!!
[MCU2_0] 15.189820 s:DSS:显示类型为 eDP!!!
[MCU2_0] 15.189844 s:DSS:M2M Path 已启用!!
[MCU2_0] 15.189865 s:dss:soc init ...!!
您是否有构建 MCU2_0 固件的机制? 那么、您现在可以在 MCU2_0 固件中启用 CSITX 并试用吗?
此致、
Brijesh
您好、Brijesh、

制作 video_io;制作 SDK;制作 vision_apps;制作 linux_fs_install_sd
root@j721e-evm:~# /opt/vision_apps/vx_app_conformance_video_io.out --filter=tivxVideoIOCsitxCsirx* APP: Init ... !!! MEM: Init ... !!! MEM: Initialized DMA HEAP (fd=5) !!! MEM: Init ... Done !!! IPC: Init ... !!! IPC: Init ... Done !!! REMOTE_SERVICE: Init ... !!! REMOTE_SERVICE: Init ... Done !!! 258.827612 s: GTC Frequency = 200 MHz APP: Init ... Done !!! 258.827691 s: VX_ZONE_INIT:Enabled 258.827698 s: VX_ZONE_ERROR:Enabled 258.827704 s: VX_ZONE_WARNING:Enabled 258.828488 s: VX_ZONE_INIT:[tivxInitLocal:130] Initialization Done !!! 258.828972 s: VX_ZONE_INIT:[tivxHostInitLocal:96] Initialization Done for HOST !!! VxTests version: unknown VCS version: unknown Build config: Release [ ======== ] Total 26 tests from 4 test cases Use test filter: tivxVideoIOCsitxCsirx* Use global OpenVX context: FALSE [ ======== ] [ ALL DONE ] 0 test(s) from 0 test case(s) ran [ PASSED ] 0 test(s) [ FAILED ] 0 test(s) [ DISABLED ] 0 test(s) ================================= OpenVX Conformance report summary ================================= To be conformant to the OpenVX baseline, 0 required test(s) must pass. 0 tests passed, 0 tests failed. PASSED. To be conformant to the User Data Object extension, 0 required test(s) must pass. 0 tests passed, 0 tests failed. PASSED. Note: The 0 disabled tests are optional and are not considered for conformance. #REPORT: YYYYMMDDHHMMSS FILTERED 26 0 0 0 0 0 (version unknown) 258.829194 s: VX_ZONE_INIT:[tivxHostDeInitLocal:110] De-Initialization Done for HOST !!! 258.833833 s: VX_ZONE_INIT:[tivxDeInitLocal:193] De-Initialization Done !!! APP: Deinit ... !!! REMOTE_SERVICE: Deinit ... !!! REMOTE_SERVICE: Deinit ... Done !!! IPC: Deinit ... !!! IPC: DeInit ... Done !!! MEM: Deinit ... !!! DDR_SHARED_MEM: Alloc's: 0 alloc's of 0 bytes DDR_SHARED_MEM: Free's : 0 free's of 0 bytes DDR_SHARED_MEM: Open's : 0 allocs of 0 bytes MEM: Deinit ... Done !!! APP: Deinit ... Done !!! root@j721e-evm:~#
重新编译现象是相同的。
请注意、
Cesar
尊敬的 Cesar:
请注意、这是一个基于 PDK 驱动程序的独立示例、因此无法使用 uboot 加载、或无法使用 uboot 运行 Vision 应用。
要构建此示例、请使用 ti-processor-sdk-rtos-j721e-evm-09_01_00_06/pdk_jacinto_09_01_00_22/packages/ti/build 中的以下命令
make -s csitx_transmit_testapp_freertosear board=j721e_evm core=MCU2_0 build_profile=release
此致、
Brijesh
尊敬的 Cesar:
您需要使用 CCS 加载和运行此示例、尤其是下面链接中的步骤 8.3。
J784S4 的 CCS 设置—Processor SDK RTOS J784S4
此致、
Brijesh