TI中文支持网
TI专业的中文技术问题搜集分享网站

SK-TDA4VM: vision_apps中关于tivxDisplayNode节点核的应用失败

Part Number:SK-TDA4VMOther Parts Discussed in Thread: SYSBIOS

TI专家您好:

      我在ti-processor-sdk-rtos-j721e-evm-08_06_01_03/vision_apps/apps/dl_demos下新建文件夹 my_disp_img,在my_disp_img目录下有四个文件如下:concerto.mak ,app_common.h , main_linux_arm.c  main.c

最后我在vision_apps目录下完成编译,并在vision_apps/out/J7/A72/LINUX/relase/下生成了相应的可执行文件:my_disp_img.out,并将文件拷贝到SK-TDA4VM评估板上执行 ./my_disp_img.out 却提示节点核注册失败!!对此我比较疑惑,首先tivxDisplayNode这个核不是贵公司已经封装注册好的吗,我们不能直接从本地加载图片然后调用此显示核在屏幕上显示吗?

若没有在目标端注册的话,那么我在目标端需要怎么操作才能在arm设计端调用此tivxDisplayNode节点核呢?

期待您的回复!

best wish

Ling Wang

具体的打印日志信息、编译文件、源文件代码如下:

//———-拷贝到评估版上执行 ./my_disp_img.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 !!!
6773.589374 s: GTC Frequency = 200 MHz
APP: Init … Done !!!
6773.589526 s: VX_ZONE_INIT:Enabled
6773.589537 s: VX_ZONE_ERROR:Enabled
6773.589582 s: VX_ZONE_WARNING:Enabled
6773.591535 s: VX_ZONE_INIT:[tivxInitLocal:130] Initialization Done !!!
6773.591698 s: VX_ZONE_INIT:[tivxHostInitLocal:93] Initialization Done for HOST !!!
disp_img: Init …disp_img: Init … Done.
disp_img: Creating graph …disp_img: Creating graph … Done.
disp_img: Verifying graph … 6773.594860 s: VX_ZONE_ERROR:[ownContextSendCmd:799] Command ack message returned failure cmd_status: -7
6773.594878 s: VX_ZONE_ERROR:[ownContextSendCmd:835] tivxEventWait() failed.
6773.594889 s: VX_ZONE_ERROR:[ownNodeKernelInit:527] Target kernel, TIVX_CMD_NODE_CREATE failed for node DisplayNode
6773.594898 s: VX_ZONE_ERROR:[ownNodeKernelInit:528] Please be sure the target callbacks have been registered for this core
6773.594907 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
6773.594948 s: VX_ZONE_ERROR:[ownGraphNodeKernelInit:583] kernel init for node 0, kernel com.ti.hwa.display … failed !!!
6773.594960 s: VX_ZONE_ERROR:[vxVerifyGraph:2055] Node kernel init failed
6773.594969 s: VX_ZONE_ERROR:[vxVerifyGraph:2109] Graph verify failed
disp_img: ERROR: Verifying display graph … Failed !!!
disp_img: Delete …disp_img: Delete … Done.
6773.595359 s: VX_ZONE_WARNING:[vxReleaseContext:1055] Found a reference 0xffffb893aee8 of type 0000080f at external count 1, internal count 0, releasing it
6773.595370 s: VX_ZONE_WARNING:[vxReleaseContext:1057] Releasing reference (name=image_70) now as a part of garbage collection
6773.596335 s: VX_ZONE_WARNING:[vxReleaseContext:1055] Found a reference 0xffffb8901968 of type 00000816 at external count 1, internal count 0, releasing it
6773.596350 s: VX_ZONE_WARNING:[vxReleaseContext:1057] Releasing reference (name=DisplayParams) now as a part of garbage collection
disp_img: De-init … Done.
6773.596420 s: VX_ZONE_INIT:[tivxHostDeInitLocal:107] De-Initialization Done for HOST !!!
6773.600966 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: 2 alloc's of 6220844 bytesDDR_SHARED_MEM: Free's : 2 free's of 6220844 bytesDDR_SHARED_MEM: Open's : 0 allocs of 0 bytesDDR_SHARED_MEM: Total size: 536870912 bytesMEM: Deinit … Done !!!
APP: Deinit … Done !!!

//**********************************************************编译文件和源文件如下************************************************************************、

/**************************************************************a文件: concerto.mak*******************************************************************/

ifeq ($(TARGET_CPU),$(filter $(TARGET_CPU), x86_64 A72))

include $(PRELUDE)

TARGET := my_disp_img

CSOURCES := main.c

ifeq ($(TARGET_CPU),A72)
ifeq ($(TARGET_OS),$(filter $(TARGET_OS), LINUX QNX))

TARGETTYPE := exe

CSOURCES += main_linux_arm.c

include $(VISION_APPS_PATH)/apps/concerto_a72_inc.mak

endif
endif

ifeq ($(TARGET_OS),SYSBIOS)
ifeq ($(TARGET_CPU),$(filter $(TARGET_CPU), A72))
TARGETTYPE := library
endif
endif

include $(FINALE)

endif

/**************************************************************b文件: app_common.c*******************************************************************/

#ifndef _APP_COMMON
#define _APP_COMMON

#include <TI/tivx.h>
#include <TI/tivx_task.h>

#include <tivx_utils_file_rd_wr.h>

#include <stdio.h>
#include <stdint.h>
#include <stdlib.h>
#include <assert.h>
#include <sys/stat.h>
#include <float.h>
#include <math.h>

#define APP_DEBUG

#define APP_MAX_FILE_PATH (256u)
#define APP_ASSERT(x) assert((x))
#define APP_ASSERT_VALID_REF(ref) (APP_ASSERT(vxGetStatus((vx_reference)(ref))==VX_SUCCESS));

#define APP_MAX_TENSORS (4u)
#define APP_MAX_TENSOR_DIMS (4u)
#define APP_TIDL_MAX_PARAMS (16u)

#define ABS_FLT(a) ((a) > 0)?(a):(-(a))

#define MAX_IMG_WIDTH (2048)
#define MAX_IMG_HEIGHT (1024)
#define DISPLAY_WIDTH (1920)
#define DISPLAY_HEIGHT (1080)

#ifdef APP_DEBUG
#define APP_PRINTF(f_, …) printf((f_), ##__VA_ARGS__)
#else
#define APP_PRINTF(f_, …)
#endif

#endif

/**************************************************************c文件: main_linux_arm.c*******************************************************************/
#include <stdio.h>
#include <string.h>
#include <assert.h>
#include <stdint.h>
#include <TI/tivx.h>
#include <utils/app_init/include/app_init.h>

int app_disp_img_main();

int main()
{
int status = 0;
status = appInit();
if(status==0)
{
status = app_disp_img_main();
appDeInit();
}
return status;
}

/**************************************************************d文件: main.c*******************************************************************/
#include "app_common.h"

typedef struct {

/* config options */
char input_file_path[APP_MAX_FILE_PATH];
char input_file_list[APP_MAX_FILE_PATH];

/* Input image params */
tivx_utils_bmp_image_params_t imgParams;
vx_uint32 img_width;
vx_uint32 img_height;
vx_uint32 img_stride;

/* OpenVX references */
vx_context context;

vx_graph disp_graph;
vx_node disp_node;
vx_image disp_image;
vx_user_data_object disp_params_obj;
tivx_display_params_t disp_params;

vx_uint32 display_option;
vx_uint32 delay_in_msecs;

tivx_task task;
uint32_t stop_task;
uint32_t stop_task_done;

} AppObj;

AppObj gAppObj;

static vx_status app_init(AppObj *obj);
static void app_deinit(AppObj *obj);
static vx_status app_create_graph(AppObj *obj);
static vx_status app_verify_graph(AppObj *obj);
static vx_status app_run_graph(AppObj *obj);
static vx_status app_run_graph_interactive(AppObj *obj);
static void app_delete_graph(AppObj *obj);

int app_disp_img_main()
{
int status = 0;

AppObj *obj = &gAppObj;

status = app_init(obj);
if(status == VX_SUCCESS)
{
status = app_create_graph(obj);
}
if(status == VX_SUCCESS)
{
status = app_verify_graph(obj);
}
if(status == VX_SUCCESS)
{
status = app_run_graph_interactive(obj);
}
app_delete_graph(obj);
app_deinit(obj);

return status;
}

static int app_init(AppObj *obj)
{

//int status = 0;

APP_PRINTF("disp_img: Init … \n");

obj->context = vxCreateContext();
APP_ASSERT_VALID_REF(obj->context);

obj->disp_image = vxCreateImage(obj->context, DISPLAY_WIDTH, DISPLAY_HEIGHT, VX_DF_IMAGE_RGB);
APP_ASSERT_VALID_REF(obj->disp_image)
memset(&obj->disp_params,0,sizeof(tivx_display_params_t));

obj->disp_params.opMode= TIVX_KERNEL_DISPLAY_BUFFER_COPY_MODE;
obj->disp_params.pipeId = 0;
obj->disp_params.outWidth= DISPLAY_WIDTH;
obj->disp_params.outHeight = DISPLAY_HEIGHT;
obj->disp_params.posX=(1920-DISPLAY_WIDTH)/2;
obj->disp_params.posY=(1080-DISPLAY_HEIGHT)/2;

obj->disp_params_obj = vxCreateUserDataObject(obj->context, "tivx_display_params_t", sizeof(tivx_display_params_t), &obj->disp_params);
APP_ASSERT_VALID_REF(obj->disp_params_obj)

obj->delay_in_msecs=1000;
tivxHwaLoadKernels(obj->context);
snprintf(obj->input_file_path,APP_MAX_FILE_PATH-1,"%s","/opt/vision_apps/test_data/psdkra/app_tidl");
snprintf(obj->input_file_path,APP_MAX_FILE_PATH-1,"%s","/opt/vision_apps/test_data/psdkra/app_tidl/names.txt");
APP_PRINTF("disp_img: Init … Done.\n");

return 0;
}

static void app_deinit(AppObj *obj)
{

tivxHwaUnLoadKernels(obj->context);
vxReleaseContext(&obj->context);

APP_PRINTF("disp_img: De-init … Done.\n");
}

static void app_delete_graph(AppObj *obj)
{
APP_PRINTF("disp_img: Delete … \n");

vxReleaseNode(&obj->disp_node);
vxReleaseGraph(&obj->disp_graph);

APP_PRINTF("disp_img: Delete … Done.\n");
}

static vx_status app_create_graph(AppObj *obj)
{
vx_status status = VX_SUCCESS;

APP_PRINTF("disp_img: Creating graph … \n");

/* Create OpenVx Graph */
obj->disp_graph = vxCreateGraph(obj->context);
APP_ASSERT_VALID_REF(obj->disp_graph)
vxSetReferenceName((vx_reference)obj->disp_graph, "Display");

obj->disp_node = tivxDisplayNode(obj->disp_graph, obj->disp_params_obj, obj->disp_image);
APP_ASSERT_VALID_REF(obj->disp_node)

vxSetNodeTarget(obj->disp_node, VX_TARGET_STRING, TIVX_TARGET_DISPLAY1);

vxSetReferenceName((vx_reference)obj->disp_params_obj, "DisplayParams");
vxSetReferenceName((vx_reference)obj->disp_node, "DisplayNode");

APP_PRINTF("disp_img: Creating graph … Done.\n");

return status;
}

static void app_run_task(void *app_var)
{
AppObj *obj = (AppObj *)app_var;
vx_status status = VX_SUCCESS;
//appPerfStatsCpuLoadResetAll();

while(!obj->stop_task)
{
status = app_run_graph(obj);
if(status == VX_FAILURE)
{
printf("Error processing graph!\n");
obj->stop_task = 1;
}
}
obj->stop_task_done = 1;
}

static int32_t app_run_task_create(AppObj *obj)
{
tivx_task_create_params_t params;
int32_t status;

tivxTaskSetDefaultCreateParams(&params);
params.task_main = app_run_task;
params.app_var = obj;

obj->stop_task_done = 0;
obj->stop_task = 0;

status = tivxTaskCreate(&obj->task, &params);

return status;
}

static void app_run_task_delete(AppObj *obj)
{
while(obj->stop_task_done==0)
{
tivxTaskWaitMsecs(100);
}

tivxTaskDelete(&obj->task);
}

static char menu[] = {
"\n"
"\n ================================="
"\n Demo : Display the images from file"
"\n ================================="
"\n"
"\n" "\n"
"\n x: Exit"
"\n"
"\n Enter Choice: "
};

static vx_status app_run_graph_interactive(AppObj *obj)
{
vx_status status = VX_SUCCESS;
uint32_t done = 0;
char ch;
//FILE *fp;
//app_perf_point_t *perf_arr[1];

status = app_run_task_create(obj);
if(status != VX_SUCCESS)
{
printf("disp_img: ERROR: Unable to create task\n");
}
else
{
while((!done) && (status == VX_SUCCESS))
{
printf(menu);
ch = getchar();
printf("\n");

if(ch=='x')
{
obj->stop_task=1;
done=1;
break;
}

}
app_run_task_delete(obj);
}
return status;
}

static vx_status app_verify_graph(AppObj *obj)
{
vx_status status = VX_SUCCESS;

APP_PRINTF("disp_img: Verifying graph … \n");

status = vxVerifyGraph(obj->disp_graph);
if(status != VX_SUCCESS)
{
printf("disp_img: ERROR: Verifying display graph … Failed !!!\n");
return status;
}

APP_PRINTF("disp_img: Verifying display graph … Done.\n");
/* wait a while for prints to flush */
tivxTaskWaitMsecs(100);

return status;
}

static vx_status app_run_graph_for_one_frame(AppObj *obj, char *curFileName, vx_uint32 counter)
{
vx_status status = VX_SUCCESS;

vx_char input_file_name[APP_MAX_FILE_PATH];
void *base_ptr=NULL;
vx_uint32 plane=0;
vx_rectangle_t rect;
vx_imagepatch_addressing_t addr;
vx_map_id map_id;
rect.start_x = 0;
rect.start_y = 0;
rect.end_x = DISPLAY_WIDTH;
rect.end_y = DISPLAY_HEIGHT;
status = vxMapImagePatch(obj->disp_image,
&rect,
plane,
&map_id,
&addr,
&base_ptr,
VX_READ_AND_WRITE,
VX_MEMORY_TYPE_HOST,
0);

if(status==VX_SUCCESS)
{
APP_PRINTF("Mapping successful!\n");
vx_uint32 x,y;
vx_uint8 pixel=0;
//2d addressing access
for(y=0;y<addr.dim_y;y+=addr.step_y)
{
for(x=0;x<addr.dim_x;x+=addr.step_x)
{
vx_uint8 *ptr2=vxFormatImagePatchAddress2d(base_ptr,x,y,&addr);
*ptr2=pixel;
*(ptr2+1)=pixel;
*(ptr2+2)=pixel;
}
}
status=vxUnmapImagePatch(obj->disp_image, map_id);
}
else
{
APP_PRINTF("Mapping failed! \n");
}
snprintf(input_file_name,APP_MAX_FILE_PATH-1,"%s/%s",obj->input_file_path,curFileName);
APP_PRINTF("disp_img:Reading input file %s… \n",curFileName);
status=tivx_utils_load_vximage_from_bmpfile(obj->disp_image,input_file_name,(vx_bool)vx_false_e);
APP_PRINTF("disp_img:Reading input file Done!\n");

if(status==VX_SUCCESS)
{
status=vxProcessGraph(obj->disp_graph);
}
APP_PRINTF("disp_img:Running display graph…Done.\n");
return status;
}

static vx_status app_run_graph(AppObj *obj)
{
vx_status status = VX_SUCCESS;
vx_char curFileName[APP_MAX_FILE_PATH];
uint64_t cur_time;
uint64_t max_frames = INT64_MAX;
vx_uint32 counter = 0;
FILE* test_case_file;

test_case_file = fopen(obj->input_file_list,"r");
if(test_case_file==NULL)
{
printf("Open file Error");
status=VX_FAILURE;
}
if(status==VX_SUCCESS)
{
while (fgets(curFileName, sizeof(curFileName), test_case_file) && (counter < max_frames))
{
curFileName[strlen(curFileName) – 1] = 0;

cur_time = tivxPlatformGetTimeInUsecs();

APP_PRINTF("Input file:%s…\n",curFileName);
if(status == VX_SUCCESS)
{
status = app_run_graph_for_one_frame(obj, curFileName, counter++);
}

APP_PRINTF("Display Input file %s…Done!\n",curFileName);
cur_time = tivxPlatformGetTimeInUsecs() – cur_time;
/* convert to msecs */
cur_time = cur_time/1000;

if(cur_time < obj->delay_in_msecs)
{
tivxTaskWaitMsecs(obj->delay_in_msecs – cur_time);
}

/* user asked to stop processing */
if(obj->stop_task || (status != VX_SUCCESS))
{
break;
}
}
fclose(test_case_file);
}

return status;
}

Cherry Zhou:

您好,您的问题我们需要升级到英文论坛寻求帮助,链接如下:

e2e.ti.com/…/sk-tda4vm-application-of-the-tivxdisplaynode-core-in-vision_apps-failed

,

Cherry Zhou:

您好,

请问您是直接使用 SK 板上的 Linux_SK SDK etcher 映像将 My_disp_img.out 复制到 SK 吗?还是已将 RTOS SDK 闪存到 SK 板上?

能否再分享下"source ./vision_apps_init.sh"的log? 

,

wang ling:

您好,我是通过官网下载的ti-processor-sdk-rtos-j721e-evm-08_06_01_03.tar.gz ,在自己电脑上搭建的vision apps的编译环境,并在{PSDK RTOS PATH}/vision_apps/apps/dl_demos/下新建一个文件夹,编写程序,并在{PSDK RTOS PATH}/vision_apps/out/J7/A72/LINUX/release/下生成目标可执行文件my_disp_img.out  ,然后将my_disp_img.out复制到sk-tda4vm开发板上执行,然后日志(如上)就提示tivxDisplayNode没有注册。

另外对于您说的“是否直接使用SK板上的Linux_SK SDK etcher 映像将my_disp_img.out复制到SK吗?还是已将RTOS SDK闪存到SK板上” 不太理解您的意思,

RTOS SDK这个组件我是放在本地电脑上的呀,它还能直接闪存到SK板上吗?

对此我直接将{PSDK RTOS PATH}/vision_apps/apps/dl_demos/app_tidl 这个例程,对应的{PSDK RTOS PATH}/vision_apps/out/J7/A72/LINUX/release/vx_app_tidl.out拷贝到板子上运行时任然提示tivxDisplayNode核没有注册,

但是当我尝试直接跑SK-TDA4VM板子系统(tisdk-edgeai-image-j7-evm.wic.xz镜像制作SD卡)上 /opt/vision_apps/下自带的vx_app_tidl.out,程序执行成功,但屏幕上并未有相应的神经网络分类图片的输出,而是根据app_oc.cfg配置文件中的out_file_path输出到相关路径下并未在屏幕上直观显示。我怀疑板子上的vx_app_tidl.out这个可执行文件之所以能运行成功而没有提示tivxDisplayNode核的问题,是这个板子上的可执行程序并没有用tivxDisplayNode这个核吧?

那么我目前的疑惑还是如何将{PSDK RTOS PATH}/vision_apps/apps/dl_demos/app_tidl 这个例程官方的带有图片分类并输出显示的例程跑通呢?

******************************************************************************************************************************************************************** ********************* source ./vision_apps_init.sh 如下,也提示tivxDisplayNode核没有注册**************************************************************** root@tda4vm-sk:/opt/vision_apps# source ./vision_apps_init.sh root@tda4vm-sk:/opt/vision_apps# [MCU2_0] 3.744243 s: CIO: Init … Done !!! [MCU2_0] 3.744318 s: ### CPU Frequency = 1000000000 Hz [MCU2_0] 3.744363 s: CPU is running FreeRTOS [MCU2_0] 3.744389 s: APP: Init … !!! [MCU2_0] 3.744413 s: SCICLIENT: Init … !!! [MCU2_0] 3.744659 s: SCICLIENT: DMSC FW version [8.6.3–v08.06.03 (Chill Capybar] [MCU2_0] 3.744709 s: SCICLIENT: DMSC FW revision 0x8 [MCU2_0] 3.744761 s: SCICLIENT: DMSC FW ABI revision 3.1 [MCU2_0] 3.744806 s: SCICLIENT: Init … Done !!! [MCU2_0] 3.744840 s: UDMA: Init … !!! [MCU2_0] 3.746175 s: UDMA: Init … Done !!! [MCU2_0] 3.746238 s: MEM: Init … !!! [MCU2_0] 3.746282 s: MEM: Created heap (DDR_LOCAL_MEM, id=0, flags=0x00000004) @ d9000000 of size 16777216 bytes !!! [MCU2_0] 3.746355 s: MEM: Created heap (L3_MEM, id=1, flags=0x00000000) @ 3600000 of size 262144 bytes !!! [MCU2_0] 3.746418 s: MEM: Init … Done !!! [MCU2_0] 3.746444 s: IPC: Init … !!! [MCU2_0] 3.746504 s: IPC: 6 CPUs participating in IPC !!! [MCU2_0] 3.746552 s: IPC: Waiting for HLOS to be ready … !!! [MCU2_0] 16.193829 s: IPC: HLOS is ready !!! [MCU2_0] 16.209332 s: IPC: Init … Done !!! [MCU2_0] 16.209403 s: APP: Syncing with 5 CPUs … !!! [MCU2_0] 16.369448 s: APP: Syncing with 5 CPUs … Done !!! [MCU2_0] 16.369689 s: REMOTE_SERVICE: Init … !!! [MCU2_0] 16.371394 s: REMOTE_SERVICE: Init … Done !!! [MCU2_0] 16.371462 s: FVID2: Init … !!! [MCU2_0] 16.371537 s: FVID2: Init … Done !!! [MCU2_0] 16.371572 s: VHWA: VPAC Init … !!! [MCU2_0] 16.371602 s: SCICLIENT: Sciclient_pmSetModuleState module=290 state=2 [MCU2_0] 16.372261 s: SCICLIENT: Sciclient_pmSetModuleState success [MCU2_0] 16.372307 s: VHWA: LDC Init … !!! [MCU2_0] 16.379124 s: VHWA: LDC Init … Done !!! [MCU2_0] 16.379191 s: VHWA: MSC Init … !!! [MCU2_0] 16.393680 s: VHWA: MSC Init … Done !!! [MCU2_0] 16.393753 s: VHWA: NF Init … !!! [MCU2_0] 16.395624 s: VHWA: NF Init … Done !!! [MCU2_0] 16.395692 s: VHWA: VISS Init … !!! [MCU2_0] 16.406764 s: VHWA: VISS Init … Done !!! [MCU2_0] 16.406831 s: VHWA: VPAC Init … Done !!! [MCU2_0] 16.406886 s: VX_ZONE_INIT:Enabled [MCU2_0] 16.406921 s: VX_ZONE_ERROR:Enabled [MCU2_0] 16.406950 s: VX_ZONE_WARNING:Enabled [MCU2_0] 16.408375 s: VX_ZONE_INIT:[tivxPlatformCreateTargetId:66] Added target MCU2-0 [MCU2_0] 16.408625 s: VX_ZONE_INIT:[tivxPlatformCreateTargetId:66] Added target VPAC_NF [MCU2_0] 16.408878 s: VX_ZONE_INIT:[tivxPlatformCreateTargetId:66] Added target VPAC_LDC1 [MCU2_0] 16.409131 s: VX_ZONE_INIT:[tivxPlatformCreateTargetId:66] Added target VPAC_MSC1 [MCU2_0] 16.409355 s: VX_ZONE_INIT:[tivxPlatformCreateTargetId:66] Added target VPAC_MSC2 [MCU2_0] 16.409669 s: VX_ZONE_INIT:[tivxPlatformCreateTargetId:66] Added target VPAC_VISS1 [MCU2_0] 16.409949 s: VX_ZONE_INIT:[tivxPlatformCreateTargetId:66] Added target CAPTURE1 [MCU2_0] 16.410199 s: VX_ZONE_INIT:[tivxPlatformCreateTargetId:66] Added target CAPTURE2 [MCU2_0] 16.410452 s: VX_ZONE_INIT:[tivxPlatformCreateTargetId:66] Added target DISPLAY1 [MCU2_0] 16.410698 s: VX_ZONE_INIT:[tivxPlatformCreateTargetId:66] Added target DISPLAY2 [MCU2_0] 16.410943 s: VX_ZONE_INIT:[tivxPlatformCreateTargetId:66] Added target CSITX [MCU2_0] 16.411203 s: VX_ZONE_INIT:[tivxPlatformCreateTargetId:66] Added target CAPTURE3 [MCU2_0] 16.411456 s: VX_ZONE_INIT:[tivxPlatformCreateTargetId:66] Added target CAPTURE4 [MCU2_0] 16.411709 s: VX_ZONE_INIT:[tivxPlatformCreateTargetId:66] Added target CAPTURE5 [MCU2_0] 16.411984 s: VX_ZONE_INIT:[tivxPlatformCreateTargetId:66] Added target CAPTURE6 [MCU2_0] 16.412235 s: VX_ZONE_INIT:[tivxPlatformCreateTargetId:66] Added target CAPTURE7 [MCU2_0] 16.412477 s: VX_ZONE_INIT:[tivxPlatformCreateTargetId:66] Added target CAPTURE8 [MCU2_0] 16.412701 s: VX_ZONE_INIT:[tivxPlatformCreateTargetId:66] Added target DSS_M2M1 [MCU2_0] 16.412951 s: VX_ZONE_INIT:[tivxPlatformCreateTargetId:66] Added target DSS_M2M2 [MCU2_0] 16.413173 s: VX_ZONE_INIT:[tivxPlatformCreateTargetId:66] Added target DSS_M2M3 [MCU2_0] 16.413397 s: VX_ZONE_INIT:[tivxPlatformCreateTargetId:66] Added target DSS_M2M4 [MCU2_0] 16.413455 s: VX_ZONE_INIT:[tivxInitLocal:130] Initialization Done !!! [MCU2_0] 16.413493 s: APP: OpenVX Target kernel init … !!! [MCU2_0] 16.432653 s: APP: OpenVX Target kernel init … Done !!! [MCU2_0] 16.432709 s: VISS REMOTE SERVICE: Init … !!! [MCU2_0] 16.432803 s: VISS REMOTE SERVICE: Init … Done !!! [MCU2_0] 16.432841 s: UDMA Copy: Init … !!! [MCU2_0] 16.434650 s: UDMA Copy: Init … Done !!! [MCU2_0] 16.434763 s: APP: Init … Done !!! [MCU2_0] 16.434805 s: APP: Run … !!! [MCU2_0] 16.434833 s: IPC: Starting echo test … [MCU2_0] 16.437775 s: APP: Run … Done !!! [MCU2_0] 16.439251 s: IPC: Echo status: mpu1_0[x] mcu2_0[s] mcu2_1[.] C66X_1[P] C66X_2[.] C7X_1[.] [MCU2_0] 16.439370 s: IPC: Echo status: mpu1_0[x] mcu2_0[s] mcu2_1[P] C66X_1[P] C66X_2[.] C7X_1[.] [MCU2_0] 16.439472 s: IPC: Echo status: mpu1_0[x] mcu2_0[s] mcu2_1[P] C66X_1[P] C66X_2[P] C7X_1[.] [MCU2_0] 16.439567 s: IPC: Echo status: mpu1_0[x] mcu2_0[s] mcu2_1[P] C66X_1[P] C66X_2[P] C7X_1[P] [MCU2_0] 4239.912937 s: VX_ZONE_ERROR:[ownTargetKernelInstanceAlloc:116] kernel com.ti.hwa.display has not been registered on this CPU [MCU2_0] 4239.913013 s: VX_ZONE_ERROR:[ownTargetKernelInstanceAlloc:117] Please register this kernel on the appropriate target core [MCU2_0] 4239.913078 s: VX_ZONE_ERROR:[ownTargetNodeDescNodeCreate:761] target_kernel_instance is NULL [MCU2_1] 3.761556 s: CIO: Init … Done !!! [MCU2_1] 3.761623 s: ### CPU Frequency = 1000000000 Hz [MCU2_1] 3.761662 s: CPU is running FreeRTOS [MCU2_1] 3.761687 s: APP: Init … !!! [MCU2_1] 3.761710 s: SCICLIENT: Init … !!! [MCU2_1] 3.761948 s: SCICLIENT: DMSC FW version [8.6.3–v08.06.03 (Chill Capybar] [MCU2_1] 3.761999 s: SCICLIENT: DMSC FW revision 0x8 [MCU2_1] 3.762032 s: SCICLIENT: DMSC FW ABI revision 3.1 [MCU2_1] 3.762081 s: SCICLIENT: Init … Done !!! [MCU2_1] 3.762114 s: UDMA: Init … !!! [MCU2_1] 3.763465 s: UDMA: Init … Done !!! [MCU2_1] 3.763524 s: MEM: Init … !!! [MCU2_1] 3.763570 s: MEM: Created heap (DDR_LOCAL_MEM, id=0, flags=0x00000004) @ da000000 of size 16777216 bytes !!! [MCU2_1] 3.763646 s: MEM: Created heap (L3_MEM, id=1, flags=0x00000001) @ 3640000 of size 262144 bytes !!! [MCU2_1] 3.763709 s: MEM: Init … Done !!! [MCU2_1] 3.763736 s: IPC: Init … !!! [MCU2_1] 3.763797 s: IPC: 6 CPUs participating in IPC !!! [MCU2_1] 3.763851 s: IPC: Waiting for HLOS to be ready … !!! [MCU2_1] 16.353925 s: IPC: HLOS is ready !!! [MCU2_1] 16.369329 s: IPC: Init … Done !!! [MCU2_1] 16.369395 s: APP: Syncing with 5 CPUs … !!! [MCU2_1] 16.369446 s: APP: Syncing with 5 CPUs … Done !!! [MCU2_1] 16.369484 s: REMOTE_SERVICE: Init … !!! [MCU2_1] 16.371263 s: REMOTE_SERVICE: Init … Done !!! [MCU2_1] 16.371328 s: FVID2: Init … !!! [MCU2_1] 16.371399 s: FVID2: Init … Done !!! [MCU2_1] 16.371434 s: VHWA: DMPAC: Init … !!! [MCU2_1] 16.371459 s: SCICLIENT: Sciclient_pmSetModuleState module=48 state=2 [MCU2_1] 16.371783 s: SCICLIENT: Sciclient_pmSetModuleState success [MCU2_1] 16.371826 s: SCICLIENT: Sciclient_pmSetModuleState module=305 state=2 [MCU2_1] 16.372329 s: SCICLIENT: Sciclient_pmSetModuleState success [MCU2_1] 16.372369 s: VHWA: DOF Init … !!! [MCU2_1] 16.383057 s: VHWA: DOF Init … Done !!! [MCU2_1] 16.383136 s: VHWA: SDE Init … !!! [MCU2_1] 16.387110 s: VHWA: SDE Init … Done !!! [MCU2_1] 16.387170 s: VHWA: DMPAC: Init … Done !!! [MCU2_1] 16.387218 s: VX_ZONE_INIT:Enabled [MCU2_1] 16.387248 s: VX_ZONE_ERROR:Enabled [MCU2_1] 16.387275 s: VX_ZONE_WARNING:Enabled [MCU2_1] 16.388707 s: VX_ZONE_INIT:[tivxPlatformCreateTargetId:66] Added target MCU2-1 [MCU2_1] 16.388940 s: VX_ZONE_INIT:[tivxPlatformCreateTargetId:66] Added target DMPAC_SDE [MCU2_1] 16.389185 s: VX_ZONE_INIT:[tivxPlatformCreateTargetId:66] Added target DMPAC_DOF [MCU2_1] 16.389246 s: VX_ZONE_INIT:[tivxInitLocal:130] Initialization Done !!! [MCU2_1] 16.389286 s: APP: OpenVX Target kernel init … !!! [MCU2_1] 16.389574 s: APP: OpenVX Target kernel init … Done !!! [MCU2_1] 16.389617 s: UDMA Copy: Init … !!! [MCU2_1] 16.392135 s: UDMA Copy: Init … Done !!! [MCU2_1] 16.392210 s: APP: Init … Done !!! [MCU2_1] 16.392243 s: APP: Run … !!! [MCU2_1] 16.392268 s: IPC: Starting echo test … [MCU2_1] 16.394842 s: APP: Run … Done !!! [MCU2_1] 16.396061 s: IPC: Echo status: mpu1_0[x] mcu2_0[x] mcu2_1[s] C66X_1[P] C66X_2[.] C7X_1[.] [MCU2_1] 16.396195 s: IPC: Echo status: mpu1_0[x] mcu2_0[x] mcu2_1[s] C66X_1[P] C66X_2[P] C7X_1[.] [MCU2_1] 16.396294 s: IPC: Echo status: mpu1_0[x] mcu2_0[x] mcu2_1[s] C66X_1[P] C66X_2[P] C7X_1[P] [MCU2_1] 16.438545 s: IPC: Echo status: mpu1_0[x] mcu2_0[P] mcu2_1[s] C66X_1[P] C66X_2[P] C7X_1[P] [C6x_1 ] 4.147949 s: CIO: Init … Done !!! [C6x_1 ] 4.147975 s: ### CPU Frequency = 1350000000 Hz [C6x_1 ] 4.147985 s: CPU is running FreeRTOS [C6x_1 ] 4.147993 s: APP: Init … !!! [C6x_1 ] 4.148001 s: SCICLIENT: Init … !!! [C6x_1 ] 4.148198 s: SCICLIENT: DMSC FW version [8.6.3–v08.06.03 (Chill Capybar] [C6x_1 ] 4.148210 s: SCICLIENT: DMSC FW revision 0x8 [C6x_1 ] 4.148220 s: SCICLIENT: DMSC FW ABI revision 3.1 [C6x_1 ] 4.148230 s: SCICLIENT: Init … Done !!! [C6x_1 ] 4.148239 s: UDMA: Init … !!! [C6x_1 ] 4.149708 s: UDMA: Init … Done !!! [C6x_1 ] 4.149727 s: MEM: Init … !!! [C6x_1 ] 4.149740 s: MEM: Created heap (DDR_LOCAL_MEM, id=0, flags=0x00000004) @ dc000000 of size 16777216 bytes !!! [C6x_1 ] 4.149758 s: MEM: Created heap (L2_MEM, id=2, flags=0x00000001) @ 800000 of size 229376 bytes !!! [C6x_1 ] 4.149773 s: MEM: Created heap (DDR_SCRATCH_MEM, id=4, flags=0x00000001) @ dd000000 of size 50331648 bytes !!! [C6x_1 ] 4.149789 s: MEM: Init … Done !!! [C6x_1 ] 4.149797 s: IPC: Init … !!! [C6x_1 ] 4.149818 s: IPC: 6 CPUs participating in IPC !!! [C6x_1 ] 4.149832 s: IPC: Waiting for HLOS to be ready … !!! [C6x_1 ] 15.736256 s: IPC: HLOS is ready !!! [C6x_1 ] 15.740053 s: IPC: Init … Done !!! [C6x_1 ] 15.740082 s: APP: Syncing with 5 CPUs … !!! [C6x_1 ] 16.369445 s: APP: Syncing with 5 CPUs … Done !!! [C6x_1 ] 16.369457 s: REMOTE_SERVICE: Init … !!! [C6x_1 ] 16.370121 s: REMOTE_SERVICE: Init … Done !!! [C6x_1 ] 16.370165 s: VX_ZONE_INIT:Enabled [C6x_1 ] 16.370176 s: VX_ZONE_ERROR:Enabled [C6x_1 ] 16.370186 s: VX_ZONE_WARNING:Enabled [C6x_1 ] 16.371081 s: VX_ZONE_INIT:[tivxInitLocal:130] Initialization Done !!! [C6x_1 ] 16.371098 s: APP: OpenVX Target kernel init … !!! [C6x_1 ] 16.371123 s: app_target_kernel_phase_rgb_register starting [C6x_1 ] 16.371139 s: self_cpu: 0 [C6x_1 ] 16.371150 s: target_name: DSP-1 [C6x_1 ] 16.371185 s: app_target_kernel_roi_register starting [C6x_1 ] 16.371201 s: self_cpu: 0 [C6x_1 ] 16.371212 s: target_name: DSP-1 [C6x_1 ] 16.371546 s: APP: OpenVX Target kernel init … Done !!! [C6x_1 ] 16.371563 s: UDMA Copy: Init … !!! [C6x_1 ] 16.375829 s: UDMA Copy: Init … Done !!! [C6x_1 ] 16.375844 s: APP: Init … Done !!! [C6x_1 ] 16.375853 s: APP: Run … !!! [C6x_1 ] 16.375862 s: IPC: Starting echo test … [C6x_1 ] 16.377007 s: APP: Run … Done !!! [C6x_1 ] 16.377354 s: IPC: Echo status: mpu1_0[x] mcu2_0[x] mcu2_1[x] C66X_1[s] C66X_2[P] C7X_1[.] [C6x_1 ] 16.377387 s: IPC: Echo status: mpu1_0[x] mcu2_0[x] mcu2_1[x] C66X_1[s] C66X_2[P] C7X_1[P] [C6x_1 ] 16.395404 s: IPC: Echo status: mpu1_0[x] mcu2_0[x] mcu2_1[P] C66X_1[s] C66X_2[P] C7X_1[P] [C6x_1 ] 16.438409 s: IPC: Echo status: mpu1_0[x] mcu2_0[P] mcu2_1[P] C66X_1[s] C66X_2[P] C7X_1[P] [C6x_2 ] 4.518563 s: CIO: Init … Done !!! [C6x_2 ] 4.518589 s: ### CPU Frequency = 1350000000 Hz [C6x_2 ] 4.518600 s: CPU is running FreeRTOS [C6x_2 ] 4.518608 s: APP: Init … !!! [C6x_2 ] 4.518616 s: SCICLIENT: Init … !!! [C6x_2 ] 4.518811 s: SCICLIENT: DMSC FW version [8.6.3–v08.06.03 (Chill Capybar] [C6x_2 ] 4.518823 s: SCICLIENT: DMSC FW revision 0x8 [C6x_2 ] 4.518833 s: SCICLIENT: DMSC FW ABI revision 3.1 [C6x_2 ] 4.518843 s: SCICLIENT: Init … Done !!! [C6x_2 ] 4.518852 s: UDMA: Init … !!! [C6x_2 ] 4.520346 s: UDMA: Init … Done !!! [C6x_2 ] 4.520366 s: MEM: Init … !!! [C6x_2 ] 4.520379 s: MEM: Created heap (DDR_LOCAL_MEM, id=0, flags=0x00000004) @ e0000000 of size 16777216 bytes !!! [C6x_2 ] 4.520396 s: MEM: Created heap (L2_MEM, id=2, flags=0x00000001) @ 800000 of size 229376 bytes !!! [C6x_2 ] 4.520412 s: MEM: Created heap (DDR_SCRATCH_MEM, id=4, flags=0x00000001) @ e1000000 of size 50331648 bytes !!! [C6x_2 ] 4.520428 s: MEM: Init … Done !!! [C6x_2 ] 4.520436 s: IPC: Init … !!! [C6x_2 ] 4.520456 s: IPC: 6 CPUs participating in IPC !!! [C6x_2 ] 4.520469 s: IPC: Waiting for HLOS to be ready … !!! [C6x_2 ] 15.824779 s: IPC: HLOS is ready !!! [C6x_2 ] 15.828921 s: IPC: Init … Done !!! [C6x_2 ] 15.828947 s: APP: Syncing with 5 CPUs … !!! [C6x_2 ] 16.369445 s: APP: Syncing with 5 CPUs … Done !!! [C6x_2 ] 16.369458 s: REMOTE_SERVICE: Init … !!! [C6x_2 ] 16.370123 s: REMOTE_SERVICE: Init … Done !!! [C6x_2 ] 16.370162 s: VX_ZONE_INIT:Enabled [C6x_2 ] 16.370174 s: VX_ZONE_ERROR:Enabled [C6x_2 ] 16.370183 s: VX_ZONE_WARNING:Enabled [C6x_2 ] 16.370959 s: VX_ZONE_INIT:[tivxInitLocal:130] Initialization Done !!! [C6x_2 ] 16.370975 s: APP: OpenVX Target kernel init … !!! [C6x_2 ] 16.371002 s: app_target_kernel_phase_rgb_register starting [C6x_2 ] 16.371071 s: self_cpu: 1 [C6x_2 ] 16.371086 s: target_name: DSP-2 [C6x_2 ] 16.371369 s: APP: OpenVX Target kernel init … Done !!! [C6x_2 ] 16.371388 s: UDMA Copy: Init … !!! [C6x_2 ] 16.375682 s: UDMA Copy: Init … Done !!! [C6x_2 ] 16.375704 s: APP: Init … Done !!! [C6x_2 ] 16.375712 s: APP: Run … !!! [C6x_2 ] 16.375721 s: IPC: Starting echo test … [C6x_2 ] 16.376784 s: APP: Run … Done !!! [C6x_2 ] 16.377114 s: IPC: Echo status: mpu1_0[x] mcu2_0[x] mcu2_1[x] C66X_1[x] C66X_2[s] C7X_1[P] [C6x_2 ] 16.377352 s: IPC: Echo status: mpu1_0[x] mcu2_0[x] mcu2_1[x] C66X_1[P] C66X_2[s] C7X_1[P] [C6x_2 ] 16.395432 s: IPC: Echo status: mpu1_0[x] mcu2_0[x] mcu2_1[P] C66X_1[P] C66X_2[s] C7X_1[P] [C6x_2 ] 16.438436 s: IPC: Echo status: mpu1_0[x] mcu2_0[P] mcu2_1[P] C66X_1[P] C66X_2[s] C7X_1[P] [C7x_1 ] 5.396188 s: CIO: Init … Done !!! [C7x_1 ] 5.396202 s: ### CPU Frequency = 1000000000 Hz [C7x_1 ] 5.396213 s: CPU is running FreeRTOS [C7x_1 ] 5.396222 s: APP: Init … !!! [C7x_1 ] 5.396229 s: SCICLIENT: Init … !!! [C7x_1 ] 5.396428 s: SCICLIENT: DMSC FW version [8.6.3–v08.06.03 (Chill Capybar] [C7x_1 ] 5.396441 s: SCICLIENT: DMSC FW revision 0x8 [C7x_1 ] 5.396451 s: SCICLIENT: DMSC FW ABI revision 3.1 [C7x_1 ] 5.396462 s: SCICLIENT: Init … Done !!! [C7x_1 ] 5.396471 s: UDMA: Init … !!! [C7x_1 ] 5.397623 s: UDMA: Init … Done !!! [C7x_1 ] 5.397634 s: MEM: Init … !!! [C7x_1 ] 5.397645 s: MEM: Created heap (DDR_LOCAL_MEM, id=0, flags=0x00000004) @ 117000000 of size 268435456 bytes !!! [C7x_1 ] 5.397665 s: MEM: Created heap (L3_MEM, id=1, flags=0x00000001) @ 70020000 of size 8159232 bytes !!! [C7x_1 ] 5.397682 s: MEM: Created heap (L2_MEM, id=2, flags=0x00000001) @ 64800000 of size 458752 bytes !!! [C7x_1 ] 5.397699 s: MEM: Created heap (L1_MEM, id=3, flags=0x00000001) @ 64e00000 of size 16384 bytes !!! [C7x_1 ] 5.397716 s: MEM: Created heap (DDR_SCRATCH_MEM, id=4, flags=0x00000001) @ 100000000 of size 385875968 bytes !!! [C7x_1 ] 5.397734 s: MEM: Init … Done !!! [C7x_1 ] 5.397742 s: IPC: Init … !!! [C7x_1 ] 5.397756 s: IPC: 6 CPUs participating in IPC !!! [C7x_1 ] 5.397769 s: IPC: Waiting for HLOS to be ready … !!! [C7x_1 ] 15.919549 s: IPC: HLOS is ready !!! [C7x_1 ] 15.921577 s: IPC: Init … Done !!! [C7x_1 ] 15.921593 s: APP: Syncing with 5 CPUs … !!! [C7x_1 ] 16.369447 s: APP: Syncing with 5 CPUs … Done !!! [C7x_1 ] 16.369465 s: REMOTE_SERVICE: Init … !!! [C7x_1 ] 16.369623 s: REMOTE_SERVICE: Init … Done !!! [C7x_1 ] 16.369647 s: VX_ZONE_INIT:Enabled [C7x_1 ] 16.369659 s: VX_ZONE_ERROR:Enabled [C7x_1 ] 16.369669 s: VX_ZONE_WARNING:Enabled [C7x_1 ] 16.369835 s: VX_ZONE_INIT:[tivxPlatformCreateTargetId:59] Added target DSP_C7-1 [C7x_1 ] 16.369936 s: VX_ZONE_INIT:[tivxPlatformCreateTargetId:59] Added target DSP_C7-1_PRI_2 [C7x_1 ] 16.370039 s: VX_ZONE_INIT:[tivxPlatformCreateTargetId:59] Added target DSP_C7-1_PRI_3 [C7x_1 ] 16.370117 s: VX_ZONE_INIT:[tivxPlatformCreateTargetId:59] Added target DSP_C7-1_PRI_4 [C7x_1 ] 16.370187 s: VX_ZONE_INIT:[tivxPlatformCreateTargetId:59] Added target DSP_C7-1_PRI_5 [C7x_1 ] 16.370313 s: VX_ZONE_INIT:[tivxPlatformCreateTargetId:59] Added target DSP_C7-1_PRI_6 [C7x_1 ] 16.370395 s: VX_ZONE_INIT:[tivxPlatformCreateTargetId:59] Added target DSP_C7-1_PRI_7 [C7x_1 ] 16.370462 s: VX_ZONE_INIT:[tivxPlatformCreateTargetId:59] Added target DSP_C7-1_PRI_8 [C7x_1 ] 16.370484 s: VX_ZONE_INIT:[tivxInitLocal:130] Initialization Done !!! [C7x_1 ] 16.370497 s: APP: OpenVX Target kernel init … !!! [C7x_1 ] 16.370533 s: app_target_kernel_phase_rgb_register starting [C7x_1 ] 16.370552 s: self_cpu: 2 [C7x_1 ] 16.370568 s: target_name: DSP_C7-1 [C7x_1 ] 16.370594 s: app_target_kernel_roi_register starting [C7x_1 ] 16.370609 s: self_cpu: 2 [C7x_1 ] 16.370622 s: target_name: DSP_C7-1 [C7x_1 ] 16.370758 s: APP: OpenVX Target kernel init … Done !!! [C7x_1 ] 16.370772 s: APP: Init … Done !!! [C7x_1 ] 16.370781 s: APP: Run … !!! [C7x_1 ] 16.370791 s: IPC: Starting echo test … [C7x_1 ] 16.370945 s: APP: Run … Done !!! [C7x_1 ] 16.377122 s: IPC: Echo status: mpu1_0[x] mcu2_0[x] mcu2_1[x] C66X_1[x] C66X_2[P] C7X_1[s] [C7x_1 ] 16.377357 s: IPC: Echo status: mpu1_0[x] mcu2_0[x] mcu2_1[x] C66X_1[P] C66X_2[P] C7X_1[s] [C7x_1 ] 16.395452 s: IPC: Echo status: mpu1_0[x] mcu2_0[x] mcu2_1[P] C66X_1[P] C66X_2[P] C7X_1[s] [C7x_1 ] 16.438482 s: IPC: Echo status: mpu1_0[x] mcu2_0[P] mcu2_1[P] C66X_1[P] C66X_2[P] C7X_1[s]

,

wang ling:

更正上述回复

当我尝试直接跑SK-TDA4VM板子系统(tisdk-edgeai-image-j7-evm.wic.xz镜像制作SD卡)上 /opt/vision_apps/下自带的vx_app_tidl.out,程序执行成功,当我在app_oc.cfg配置文件中的display_option 0时,程序可成功执行,并在配置文件中的输出文件路径下生成分类输出图片。但是当我将dispaly_option 1时仍然提示tivxDisplayNode核没有注册的问题。

,

Cherry Zhou:

wang ling said:RTOS SDK这个组件我是放在本地电脑上的呀,它还能直接闪存到SK板上吗?

在 SK 板上的 RTOS SDK,工程师指的是 VISION_APPS 的构建和准备 SD 卡的方式,如下所述:

Vision Apps User Guide: Run Instructions

对于 SK SDK,假设 Linux 使用显示。 因此在 SDK 中使用了 Linux 的显示驱动程序,而 RTOS 显示被禁用。

tidl oc 应用程序将查找未注册的 RTOS 显示。

请问您这里的usecase是什么?为什么 SDK 之间会有混合和匹配? 

赞(0)
未经允许不得转载:TI中文支持网 » SK-TDA4VM: vision_apps中关于tivxDisplayNode节点核的应用失败
分享到: 更多 (0)

© 2024 TI中文支持网   网站地图 鲁ICP备2022002796号-1