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.

TDA4VM: some problem for vpac

Part Number: TDA4VM

HI TI,

     I met some difficulties, please help to solve it.When I was debugging the LDC module in VPAC, it encountered the problem of the program stuck when used the backmapping function in the LDC module.

     1.When the mesh_image is assigned to null or all the same value, the program works well.

     2.When using mesh_image for perspective transformation and its affine transformation, the program is stuck,I looked at the source code of TiOpenXV and found that LDC did not return the USER_CALLBACK signal to MCU2-0, causing Graph deadlock.

     3.In different environments, such as with McU1-0 configured, the same mesh_img pass will work fine, but it will not work properly on power after an overnight power outage

     I have a few questions about the above phenomenon, please help me,

     1.Similar to vpac or dmpac these hardware accelerators, when not feedback the ipc signal again, if that the accelerator work abnormal, how can we locate the problem, for example, error code or  relevant documents or source code can help us understand the working mechanisms of LDC vpac?

      2.Is it only necessary to configure MCU2-0 to use VPAC, and if so, why would configuration changes in other cores affect VPAC?

      3.When we update the firmware for mcu, do we need to update other firmware such as dsp that has not been changed together? If so, what is the reason?

      Looking forward to your reply,thanks.

best regards

     huicheng

  • Hi,

    Sorry for the late reply.

    I am bit confused. Are you seeing issue with the LDC or IPC? Does LDC finish fine with the new lookup table? Could you pls check?

    Yes, LDC is running on mcu2_0, so it needs to be included. 

    No, if you are just updating mcu2_0 code, then no need to update binaries for dsp, ie other cores..

    Regards,

    Brijesh

  • HI Brijesh

        Thanks for your reply!

        Thanks for solving the problem of second and third.

        Then about the first question, I tried to add some print information to some source code of Ti openvx, for good LDC mesh use,the print information is as follow:

    vxProcessGraph...starting
    4708.899526 s:[ownGraphScheduleGraphWrapper:768] ownGraphScheduleGraphWrapper begin!
    4708.899692 s:[ownGraphScheduleGraphWrapper:779] ownGraphScheduleGraph begin!
    4708.899814 s:[ownGraphScheduleGraphWrapper:781] ownGraphScheduleGraph end!
    4708.899824 s:[vxWaitGraph:864] tivxEventWait() start.
    4708.899860 s:[tivxEventWait:246] Event wait begin.
    4708.904759 s:[tivxTargetQueueObjDesc:1369] tivxQueuePut id 36
    4708.904780 s:[tivxObjDescIpcHandler:118] tivxTargetQueueObjDesc obj_desc_id [24]
    4708.904819 s:[tivxTargetTaskMain:1220] tivxTargetDequeueObjDesc obj_desc_id [24] name TIVX_CPU0 status 0
    4708.904836 s:[tivxTargetTaskMain:1239] obj_desc->type [4]
    4708.904852 s:[tivxTargetCmdDescHandler:1167] node_obj_desc_id 33!
    4708.904868 s:[tivxTargetCmdDescHandleUserCallback:1048] ownCheckGraphCompleted 0
    4708.904886 s:[ownCheckGraphCompleted:625] graph_obj_desc->complete_leaf_nodes 1
    4708.904900 s:[ownCheckGraphCompleted:626] graph->num_leaf_nodes 4
    4708.904914 s:[ownCheckGraphCompleted:627] is_completed 0
    4708.904961 s:[tivxTargetQueueObjDesc:1369] tivxQueuePut id 35
    4708.904973 s:[tivxObjDescIpcHandler:118] tivxTargetQueueObjDesc obj_desc_id [23]
    4708.905002 s:[tivxTargetTaskMain:1220] tivxTargetDequeueObjDesc obj_desc_id [23] name TIVX_CPU0 status 0
    4708.905018 s:[tivxTargetTaskMain:1239] obj_desc->type [4]
    4708.905034 s:[tivxTargetCmdDescHandler:1167] node_obj_desc_id 34!
    4708.905049 s:[tivxTargetCmdDescHandleUserCallback:1048] ownCheckGraphCompleted 0
    4708.905064 s:[ownCheckGraphCompleted:625] graph_obj_desc->complete_leaf_nodes 2
    4708.905078 s:[ownCheckGraphCompleted:626] graph->num_leaf_nodes 4
    4708.905091 s:[ownCheckGraphCompleted:627] is_completed 0
    4708.905969 s:[tivxTargetQueueObjDesc:1369] tivxQueuePut id 37
    4708.905983 s:[tivxObjDescIpcHandler:118] tivxTargetQueueObjDesc obj_desc_id [25]
    4708.905997 s:[tivxTargetTaskMain:1220] tivxTargetDequeueObjDesc obj_desc_id [25] name TIVX_CPU0 status 0
    4708.906003 s:[tivxTargetTaskMain:1239] obj_desc->type [4]
    4708.906008 s:[tivxTargetCmdDescHandler:1167] node_obj_desc_id 32!
    4708.906013 s:[tivxTargetCmdDescHandleUserCallback:1048] ownCheckGraphCompleted 0
    4708.906018 s:[ownCheckGraphCompleted:625] graph_obj_desc->complete_leaf_nodes 3
    4708.906037 s:[ownCheckGraphCompleted:626] graph->num_leaf_nodes 4
    4708.906050 s:[ownCheckGraphCompleted:627] is_completed 0
    [MCU2_0]4708.899901 s:[tivxTargetQueueObjDesc:1369] tivxQueuePut id 34
    [MCU2_0]4708.899981 s:[tivxTargetTaskMain:1220] tivxTargetDequeueObjDesc obj_desc_id [22] name TIVX_DISP2 status 0
    [MCU2_0]4708.900038 s:[tivxTargetTaskMain:1239] obj_desc->type [3]
    [MCU2_0]4708.900215 s:[tivxObjDescIpcHandler:118] tivxTargetQueueObjDesc obj_desc_id [22]
    [MCU2_0]4708.900290 s:[tivxTargetQueueObjDesc:1369] tivxQueuePut id 33
    [MCU2_0]4708.900353 s:[tivxTargetTaskMain:1220] tivxTargetDequeueObjDesc obj_desc_id [21] name TIVX_DISP1 status 0
    [MCU2_0]4708.900406 s:[tivxTargetTaskMain:1239] obj_desc->type [3]
    [MCU2_0]4708.900520 s:[tivxObjDescIpcHandler:118] tivxTargetQueueObjDesc obj_desc_id [21]
    [MCU2_0]4708.900585 s:[tivxTargetQueueObjDesc:1369] tivxQueuePut id 32
    [MCU2_0]4708.900630 s:[tivxObjDescIpcHandler:118] tivxTargetQueueObjDesc obj_desc_id [20]
    [MCU2_0]4708.900678 s:[tivxTargetQueueObjDesc:1369] tivxQueuePut id 31
    [MCU2_0]4708.900715 s:[tivxObjDescIpcHandler:118] tivxTargetQueueObjDesc obj_desc_id [1f]
    [MCU2_0]4708.900778 s:[tivxTargetTaskMain:1220] tivxTargetDequeueObjDesc obj_desc_id [20] name TIVX_LDC1 status 0
    [MCU2_0]4708.900829 s:[tivxTargetTaskMain:1239] obj_desc->type [3]
    [MCU2_0]4708.905991 s:[tivxTargetTaskMain:1220] tivxTargetDequeueObjDesc obj_desc_id [1f] name TIVX_LDC1 status 0
    [MCU2_0]4708.906054 s:[tivxTargetTaskMain:1239] obj_desc->type [3]
    4708.911079 s:[tivxTargetQueueObjDesc:1369] tivxQueuePut id 38
    4708.911092 s:[tivxObjDescIpcHandler:118] tivxTargetQueueObjDesc obj_desc_id [26]
    4708.911107 s:[tivxTargetTaskMain:1220] tivxTargetDequeueObjDesc obj_desc_id [26] name TIVX_CPU0 status 0
    4708.911113 s:[tivxTargetTaskMain:1239] obj_desc->type [4]
    4708.911118 s:[tivxTargetCmdDescHandler:1167] node_obj_desc_id 31!
    4708.911123 s:[tivxTargetCmdDescHandleUserCallback:1048] ownCheckGraphCompleted 0
    4708.911129 s:[ownCheckGraphCompleted:625] graph_obj_desc->complete_leaf_nodes 0
    4708.911143 s:[ownCheckGraphCompleted:626] graph->num_leaf_nodes 4
    4708.911156 s:[ownCheckGraphCompleted:627] is_completed 1
    4708.911177 s:[ownCheckGraphCompleted:694] Graph Completed (graph=43, pipe=0)
    4708.911205 s:[tivxEventWait:248] Event wait end.
    4708.911228 s:[vxWaitGraph:866] tivxEventWait() end.

    For some bad situations:

    vxProcessGraph...starting
    710.544566 s:[ownGraphScheduleGraphWrapper:768] ownGraphScheduleGraphWrapper begin!
    710.544587 s:[ownGraphScheduleGraphWrapper:779] ownGraphScheduleGraph begin!
    710.544639 s:[ownGraphScheduleGraphWrapper:781] ownGraphScheduleGraph end!
    710.544648 s:[vxWaitGraph:864] tivxEventWait() start.
    710.544660 s:[tivxEventWait:246] Event wait begin.
    710.544906 s:[tivxTargetQueueObjDesc:1369] tivxQueuePut id 35
    710.544924 s:[tivxObjDescIpcHandler:118] tivxTargetQueueObjDesc obj_desc_id [23]
    710.544944 s:[tivxTargetTaskMain:1220] tivxTargetDequeueObjDesc obj_desc_id [23] name TIVX_CPU0 status 0
    710.544956 s:[tivxTargetTaskMain:1239] obj_desc->type [4]
    710.544964 s:[tivxTargetCmdDescHandler:1167] node_obj_desc_id 34!
    710.544972 s:[tivxTargetCmdDescHandleUserCallback:1048] ownCheckGraphCompleted 0
    710.544980 s:[ownCheckGraphCompleted:625] graph_obj_desc->complete_leaf_nodes 1
    710.544987 s:[ownCheckGraphCompleted:626] graph->num_leaf_nodes 4
    710.544993 s:[ownCheckGraphCompleted:627] is_completed 0
    710.545017 s:[tivxTargetQueueObjDesc:1369] tivxQueuePut id 36
    710.545038 s:[tivxObjDescIpcHandler:118] tivxTargetQueueObjDesc obj_desc_id [24]
    710.545116 s:[tivxTargetTaskMain:1220] tivxTargetDequeueObjDesc obj_desc_id [24] name TIVX_CPU0 status 0
    710.545125 s:[tivxTargetTaskMain:1239] obj_desc->type [4]
    710.545135 s:[tivxTargetCmdDescHandler:1167] node_obj_desc_id 33!
    710.545143 s:[tivxTargetCmdDescHandleUserCallback:1048] ownCheckGraphCompleted 0
    710.545151 s:[ownCheckGraphCompleted:625] graph_obj_desc->complete_leaf_nodes 2
    710.545157 s:[ownCheckGraphCompleted:626] graph->num_leaf_nodes 4
    710.545163 s:[ownCheckGraphCompleted:627] is_completed 0

    and then,it's stucking.

    After my side of the test, the same mesh_ IMG LDC sometimes works well and sometimes gets stuck. Therefore, I am very confused about this issue. Please help me locate it.

    And on the other hand, I also want to know,  if there is no feedback from IPC like this, especially for VPAC, how can I position myself?

    Best Regards

    Huicheng

             

  • Hi Brijesh,

        thanks for solving the problem of second and third.

        then about the first question, I tried to add some print information to some source code of Ti openvx, for good LDC mesh use,the print information is as follow:

        

    vxProcessGraph...starting
    4708.899526 s:[ownGraphScheduleGraphWrapper:768] ownGraphScheduleGraphWrapper begin!
    4708.899692 s:[ownGraphScheduleGraphWrapper:779] ownGraphScheduleGraph begin!
    4708.899814 s:[ownGraphScheduleGraphWrapper:781] ownGraphScheduleGraph end!
    4708.899824 s:[vxWaitGraph:864] tivxEventWait() start.
    4708.899860 s:[tivxEventWait:246] Event wait begin.
    4708.904759 s:[tivxTargetQueueObjDesc:1369] tivxQueuePut id 36
    4708.904780 s:[tivxObjDescIpcHandler:118] tivxTargetQueueObjDesc obj_desc_id [24]
    4708.904819 s:[tivxTargetTaskMain:1220] tivxTargetDequeueObjDesc obj_desc_id [24] name TIVX_CPU0 status 0
    4708.904836 s:[tivxTargetTaskMain:1239] obj_desc->type [4]
    4708.904852 s:[tivxTargetCmdDescHandler:1167] node_obj_desc_id 33!
    4708.904868 s:[tivxTargetCmdDescHandleUserCallback:1048] ownCheckGraphCompleted 0
    4708.904886 s:[ownCheckGraphCompleted:625] graph_obj_desc->complete_leaf_nodes 1
    4708.904900 s:[ownCheckGraphCompleted:626] graph->num_leaf_nodes 4
    4708.904914 s:[ownCheckGraphCompleted:627] is_completed 0
    4708.904961 s:[tivxTargetQueueObjDesc:1369] tivxQueuePut id 35
    4708.904973 s:[tivxObjDescIpcHandler:118] tivxTargetQueueObjDesc obj_desc_id [23]
    4708.905002 s:[tivxTargetTaskMain:1220] tivxTargetDequeueObjDesc obj_desc_id [23] name TIVX_CPU0 status 0
    4708.905018 s:[tivxTargetTaskMain:1239] obj_desc->type [4]
    4708.905034 s:[tivxTargetCmdDescHandler:1167] node_obj_desc_id 34!
    4708.905049 s:[tivxTargetCmdDescHandleUserCallback:1048] ownCheckGraphCompleted 0
    4708.905064 s:[ownCheckGraphCompleted:625] graph_obj_desc->complete_leaf_nodes 2
    4708.905078 s:[ownCheckGraphCompleted:626] graph->num_leaf_nodes 4
    4708.905091 s:[ownCheckGraphCompleted:627] is_completed 0
    4708.905969 s:[tivxTargetQueueObjDesc:1369] tivxQueuePut id 37
    4708.905983 s:[tivxObjDescIpcHandler:118] tivxTargetQueueObjDesc obj_desc_id [25]
    4708.905997 s:[tivxTargetTaskMain:1220] tivxTargetDequeueObjDesc obj_desc_id [25] name TIVX_CPU0 status 0
    4708.906003 s:[tivxTargetTaskMain:1239] obj_desc->type [4]
    4708.906008 s:[tivxTargetCmdDescHandler:1167] node_obj_desc_id 32!
    4708.906013 s:[tivxTargetCmdDescHandleUserCallback:1048] ownCheckGraphCompleted 0
    4708.906018 s:[ownCheckGraphCompleted:625] graph_obj_desc->complete_leaf_nodes 3
    4708.906037 s:[ownCheckGraphCompleted:626] graph->num_leaf_nodes 4
    4708.906050 s:[ownCheckGraphCompleted:627] is_completed 0
    [MCU2_0]4708.899901 s:[tivxTargetQueueObjDesc:1369] tivxQueuePut id 34
    [MCU2_0]4708.899981 s:[tivxTargetTaskMain:1220] tivxTargetDequeueObjDesc obj_desc_id [22] name TIVX_DISP2 status 0
    [MCU2_0]4708.900038 s:[tivxTargetTaskMain:1239] obj_desc->type [3]
    [MCU2_0]4708.900215 s:[tivxObjDescIpcHandler:118] tivxTargetQueueObjDesc obj_desc_id [22]
    [MCU2_0]4708.900290 s:[tivxTargetQueueObjDesc:1369] tivxQueuePut id 33
    [MCU2_0]4708.900353 s:[tivxTargetTaskMain:1220] tivxTargetDequeueObjDesc obj_desc_id [21] name TIVX_DISP1 status 0
    [MCU2_0]4708.900406 s:[tivxTargetTaskMain:1239] obj_desc->type [3]
    [MCU2_0]4708.900520 s:[tivxObjDescIpcHandler:118] tivxTargetQueueObjDesc obj_desc_id [21]
    [MCU2_0]4708.900585 s:[tivxTargetQueueObjDesc:1369] tivxQueuePut id 32
    [MCU2_0]4708.900630 s:[tivxObjDescIpcHandler:118] tivxTargetQueueObjDesc obj_desc_id [20]
    [MCU2_0]4708.900678 s:[tivxTargetQueueObjDesc:1369] tivxQueuePut id 31
    [MCU2_0]4708.900715 s:[tivxObjDescIpcHandler:118] tivxTargetQueueObjDesc obj_desc_id [1f]
    [MCU2_0]4708.900778 s:[tivxTargetTaskMain:1220] tivxTargetDequeueObjDesc obj_desc_id [20] name TIVX_LDC1 status 0
    [MCU2_0]4708.900829 s:[tivxTargetTaskMain:1239] obj_desc->type [3]
    [MCU2_0]4708.905991 s:[tivxTargetTaskMain:1220] tivxTargetDequeueObjDesc obj_desc_id [1f] name TIVX_LDC1 status 0
    [MCU2_0]4708.906054 s:[tivxTargetTaskMain:1239] obj_desc->type [3]
    4708.911079 s:[tivxTargetQueueObjDesc:1369] tivxQueuePut id 38
    4708.911092 s:[tivxObjDescIpcHandler:118] tivxTargetQueueObjDesc obj_desc_id [26]
    4708.911107 s:[tivxTargetTaskMain:1220] tivxTargetDequeueObjDesc obj_desc_id [26] name TIVX_CPU0 status 0
    4708.911113 s:[tivxTargetTaskMain:1239] obj_desc->type [4]
    4708.911118 s:[tivxTargetCmdDescHandler:1167] node_obj_desc_id 31!
    4708.911123 s:[tivxTargetCmdDescHandleUserCallback:1048] ownCheckGraphCompleted 0
    4708.911129 s:[ownCheckGraphCompleted:625] graph_obj_desc->complete_leaf_nodes 0
    4708.911143 s:[ownCheckGraphCompleted:626] graph->num_leaf_nodes 4
    4708.911156 s:[ownCheckGraphCompleted:627] is_completed 1
    4708.911177 s:[ownCheckGraphCompleted:694] Graph Completed (graph=43, pipe=0)
    4708.911205 s:[tivxEventWait:248] Event wait end.
    4708.911228 s:[vxWaitGraph:866] tivxEventWait() end.

      For some bad situations

     

    vxProcessGraph...starting
    710.544566 s:[ownGraphScheduleGraphWrapper:768] ownGraphScheduleGraphWrapper begin!
    710.544587 s:[ownGraphScheduleGraphWrapper:779] ownGraphScheduleGraph begin!
    710.544639 s:[ownGraphScheduleGraphWrapper:781] ownGraphScheduleGraph end!
    710.544648 s:[vxWaitGraph:864] tivxEventWait() start.
    710.544660 s:[tivxEventWait:246] Event wait begin.
    710.544906 s:[tivxTargetQueueObjDesc:1369] tivxQueuePut id 35
    710.544924 s:[tivxObjDescIpcHandler:118] tivxTargetQueueObjDesc obj_desc_id [23]
    710.544944 s:[tivxTargetTaskMain:1220] tivxTargetDequeueObjDesc obj_desc_id [23] name TIVX_CPU0 status 0
    710.544956 s:[tivxTargetTaskMain:1239] obj_desc->type [4]
    710.544964 s:[tivxTargetCmdDescHandler:1167] node_obj_desc_id 34!
    710.544972 s:[tivxTargetCmdDescHandleUserCallback:1048] ownCheckGraphCompleted 0
    710.544980 s:[ownCheckGraphCompleted:625] graph_obj_desc->complete_leaf_nodes 1
    710.544987 s:[ownCheckGraphCompleted:626] graph->num_leaf_nodes 4
    710.544993 s:[ownCheckGraphCompleted:627] is_completed 0
    710.545017 s:[tivxTargetQueueObjDesc:1369] tivxQueuePut id 36
    710.545038 s:[tivxObjDescIpcHandler:118] tivxTargetQueueObjDesc obj_desc_id [24]
    710.545116 s:[tivxTargetTaskMain:1220] tivxTargetDequeueObjDesc obj_desc_id [24] name TIVX_CPU0 status 0
    710.545125 s:[tivxTargetTaskMain:1239] obj_desc->type [4]
    710.545135 s:[tivxTargetCmdDescHandler:1167] node_obj_desc_id 33!
    710.545143 s:[tivxTargetCmdDescHandleUserCallback:1048] ownCheckGraphCompleted 0
    710.545151 s:[ownCheckGraphCompleted:625] graph_obj_desc->complete_leaf_nodes 2
    710.545157 s:[ownCheckGraphCompleted:626] graph->num_leaf_nodes 4
    710.545163 s:[ownCheckGraphCompleted:627] is_completed 0

     and then the program stucking.

     After my side of the test, the same mesh_ IMG LDC sometimes works well and sometimes gets stuck. Therefore, I am very confused about this issue. Please help me locate it.

    And on the other hand, I also want to know,if there is no feedback from IPC like this, especially for VPAC, how can I position myself?

    I look forward to your reply. Thank you!

    Best Regards

    Huicheng

  • Hi Brijesh,

    thanks for solving the problem of second and third.

    then about the first question, I tried to add some print information to some source code of Ti openvx, for good LDC mesh use,the print information is as follow:

    vxProcessGraph...starting
    4708.899526 s:[ownGraphScheduleGraphWrapper:768] ownGraphScheduleGraphWrapper begin!
    4708.899692 s:[ownGraphScheduleGraphWrapper:779] ownGraphScheduleGraph begin!
    4708.899814 s:[ownGraphScheduleGraphWrapper:781] ownGraphScheduleGraph end!
    4708.899824 s:[vxWaitGraph:864] tivxEventWait() start.
    4708.899860 s:[tivxEventWait:246] Event wait begin.
    4708.904759 s:[tivxTargetQueueObjDesc:1369] tivxQueuePut id 36
    4708.904780 s:[tivxObjDescIpcHandler:118] tivxTargetQueueObjDesc obj_desc_id [24]
    4708.904819 s:[tivxTargetTaskMain:1220] tivxTargetDequeueObjDesc obj_desc_id [24] name TIVX_CPU0 status 0
    4708.904836 s:[tivxTargetTaskMain:1239] obj_desc->type [4]
    4708.904852 s:[tivxTargetCmdDescHandler:1167] node_obj_desc_id 33!
    4708.904868 s:[tivxTargetCmdDescHandleUserCallback:1048] ownCheckGraphCompleted 0
    4708.904886 s:[ownCheckGraphCompleted:625] graph_obj_desc->complete_leaf_nodes 1
    4708.904900 s:[ownCheckGraphCompleted:626] graph->num_leaf_nodes 4
    4708.904914 s:[ownCheckGraphCompleted:627] is_completed 0
    4708.904961 s:[tivxTargetQueueObjDesc:1369] tivxQueuePut id 35
    4708.904973 s:[tivxObjDescIpcHandler:118] tivxTargetQueueObjDesc obj_desc_id [23]
    4708.905002 s:[tivxTargetTaskMain:1220] tivxTargetDequeueObjDesc obj_desc_id [23] name TIVX_CPU0 status 0
    4708.905018 s:[tivxTargetTaskMain:1239] obj_desc->type [4]
    4708.905034 s:[tivxTargetCmdDescHandler:1167] node_obj_desc_id 34!
    4708.905049 s:[tivxTargetCmdDescHandleUserCallback:1048] ownCheckGraphCompleted 0
    4708.905064 s:[ownCheckGraphCompleted:625] graph_obj_desc->complete_leaf_nodes 2
    4708.905078 s:[ownCheckGraphCompleted:626] graph->num_leaf_nodes 4
    4708.905091 s:[ownCheckGraphCompleted:627] is_completed 0
    4708.905969 s:[tivxTargetQueueObjDesc:1369] tivxQueuePut id 37
    4708.905983 s:[tivxObjDescIpcHandler:118] tivxTargetQueueObjDesc obj_desc_id [25]
    4708.905997 s:[tivxTargetTaskMain:1220] tivxTargetDequeueObjDesc obj_desc_id [25] name TIVX_CPU0 status 0
    4708.906003 s:[tivxTargetTaskMain:1239] obj_desc->type [4]
    4708.906008 s:[tivxTargetCmdDescHandler:1167] node_obj_desc_id 32!
    4708.906013 s:[tivxTargetCmdDescHandleUserCallback:1048] ownCheckGraphCompleted 0
    4708.906018 s:[ownCheckGraphCompleted:625] graph_obj_desc->complete_leaf_nodes 3
    4708.906037 s:[ownCheckGraphCompleted:626] graph->num_leaf_nodes 4
    4708.906050 s:[ownCheckGraphCompleted:627] is_completed 0
    [MCU2_0]4708.899901 s:[tivxTargetQueueObjDesc:1369] tivxQueuePut id 34
    [MCU2_0]4708.899981 s:[tivxTargetTaskMain:1220] tivxTargetDequeueObjDesc obj_desc_id [22] name TIVX_DISP2 status 0
    [MCU2_0]4708.900038 s:[tivxTargetTaskMain:1239] obj_desc->type [3]
    [MCU2_0]4708.900215 s:[tivxObjDescIpcHandler:118] tivxTargetQueueObjDesc obj_desc_id [22]
    [MCU2_0]4708.900290 s:[tivxTargetQueueObjDesc:1369] tivxQueuePut id 33
    [MCU2_0]4708.900353 s:[tivxTargetTaskMain:1220] tivxTargetDequeueObjDesc obj_desc_id [21] name TIVX_DISP1 status 0
    [MCU2_0]4708.900406 s:[tivxTargetTaskMain:1239] obj_desc->type [3]
    [MCU2_0]4708.900520 s:[tivxObjDescIpcHandler:118] tivxTargetQueueObjDesc obj_desc_id [21]
    [MCU2_0]4708.900585 s:[tivxTargetQueueObjDesc:1369] tivxQueuePut id 32
    [MCU2_0]4708.900630 s:[tivxObjDescIpcHandler:118] tivxTargetQueueObjDesc obj_desc_id [20]
    [MCU2_0]4708.900678 s:[tivxTargetQueueObjDesc:1369] tivxQueuePut id 31
    [MCU2_0]4708.900715 s:[tivxObjDescIpcHandler:118] tivxTargetQueueObjDesc obj_desc_id [1f]
    [MCU2_0]4708.900778 s:[tivxTargetTaskMain:1220] tivxTargetDequeueObjDesc obj_desc_id [20] name TIVX_LDC1 status 0
    [MCU2_0]4708.900829 s:[tivxTargetTaskMain:1239] obj_desc->type [3]
    [MCU2_0]4708.905991 s:[tivxTargetTaskMain:1220] tivxTargetDequeueObjDesc obj_desc_id [1f] name TIVX_LDC1 status 0
    [MCU2_0]4708.906054 s:[tivxTargetTaskMain:1239] obj_desc->type [3]
    4708.911079 s:[tivxTargetQueueObjDesc:1369] tivxQueuePut id 38
    4708.911092 s:[tivxObjDescIpcHandler:118] tivxTargetQueueObjDesc obj_desc_id [26]
    4708.911107 s:[tivxTargetTaskMain:1220] tivxTargetDequeueObjDesc obj_desc_id [26] name TIVX_CPU0 status 0
    4708.911113 s:[tivxTargetTaskMain:1239] obj_desc->type [4]
    4708.911118 s:[tivxTargetCmdDescHandler:1167] node_obj_desc_id 31!
    4708.911123 s:[tivxTargetCmdDescHandleUserCallback:1048] ownCheckGraphCompleted 0
    4708.911129 s:[ownCheckGraphCompleted:625] graph_obj_desc->complete_leaf_nodes 0
    4708.911143 s:[ownCheckGraphCompleted:626] graph->num_leaf_nodes 4
    4708.911156 s:[ownCheckGraphCompleted:627] is_completed 1
    4708.911177 s:[ownCheckGraphCompleted:694] Graph Completed (graph=43, pipe=0)
    4708.911205 s:[tivxEventWait:248] Event wait end.
    4708.911228 s:[vxWaitGraph:866] tivxEventWait() end.

  • vxProcessGraph...starting
    4708.899526 s:[ownGraphScheduleGraphWrapper:768] ownGraphScheduleGraphWrapper begin!
    4708.899692 s:[ownGraphScheduleGraphWrapper:779] ownGraphScheduleGraph begin!
    4708.899814 s:[ownGraphScheduleGraphWrapper:781] ownGraphScheduleGraph end!
    4708.899824 s:[vxWaitGraph:864] tivxEventWait() start.
    4708.899860 s:[tivxEventWait:246] Event wait begin.
    4708.904759 s:[tivxTargetQueueObjDesc:1369] tivxQueuePut id 36
    4708.904780 s:[tivxObjDescIpcHandler:118] tivxTargetQueueObjDesc obj_desc_id [24]
    4708.904819 s:[tivxTargetTaskMain:1220] tivxTargetDequeueObjDesc obj_desc_id [24] name TIVX_CPU0 status 0
    4708.904836 s:[tivxTargetTaskMain:1239] obj_desc->type [4]
    4708.904852 s:[tivxTargetCmdDescHandler:1167] node_obj_desc_id 33!
    4708.904868 s:[tivxTargetCmdDescHandleUserCallback:1048] ownCheckGraphCompleted 0
    4708.904886 s:[ownCheckGraphCompleted:625] graph_obj_desc->complete_leaf_nodes 1
    4708.904900 s:[ownCheckGraphCompleted:626] graph->num_leaf_nodes 4
    4708.904914 s:[ownCheckGraphCompleted:627] is_completed 0
    4708.904961 s:[tivxTargetQueueObjDesc:1369] tivxQueuePut id 35
    4708.904973 s:[tivxObjDescIpcHandler:118] tivxTargetQueueObjDesc obj_desc_id [23]
    4708.905002 s:[tivxTargetTaskMain:1220] tivxTargetDequeueObjDesc obj_desc_id [23] name TIVX_CPU0 status 0
    4708.905018 s:[tivxTargetTaskMain:1239] obj_desc->type [4]
    4708.905034 s:[tivxTargetCmdDescHandler:1167] node_obj_desc_id 34!
    4708.905049 s:[tivxTargetCmdDescHandleUserCallback:1048] ownCheckGraphCompleted 0
    4708.905064 s:[ownCheckGraphCompleted:625] graph_obj_desc->complete_leaf_nodes 2
    4708.905078 s:[ownCheckGraphCompleted:626] graph->num_leaf_nodes 4
    4708.905091 s:[ownCheckGraphCompleted:627] is_completed 0
    4708.905969 s:[tivxTargetQueueObjDesc:1369] tivxQueuePut id 37
    4708.905983 s:[tivxObjDescIpcHandler:118] tivxTargetQueueObjDesc obj_desc_id [25]
    4708.905997 s:[tivxTargetTaskMain:1220] tivxTargetDequeueObjDesc obj_desc_id [25] name TIVX_CPU0 status 0
    4708.906003 s:[tivxTargetTaskMain:1239] obj_desc->type [4]
    4708.906008 s:[tivxTargetCmdDescHandler:1167] node_obj_desc_id 32!
    4708.906013 s:[tivxTargetCmdDescHandleUserCallback:1048] ownCheckGraphCompleted 0
    4708.906018 s:[ownCheckGraphCompleted:625] graph_obj_desc->complete_leaf_nodes 3
    4708.906037 s:[ownCheckGraphCompleted:626] graph->num_leaf_nodes 4
    4708.906050 s:[ownCheckGraphCompleted:627] is_completed 0
    [MCU2_0]4708.899901 s:[tivxTargetQueueObjDesc:1369] tivxQueuePut id 34
    [MCU2_0]4708.899981 s:[tivxTargetTaskMain:1220] tivxTargetDequeueObjDesc obj_desc_id [22] name TIVX_DISP2 status 0
    [MCU2_0]4708.900038 s:[tivxTargetTaskMain:1239] obj_desc->type [3]
    [MCU2_0]4708.900215 s:[tivxObjDescIpcHandler:118] tivxTargetQueueObjDesc obj_desc_id [22]
    [MCU2_0]4708.900290 s:[tivxTargetQueueObjDesc:1369] tivxQueuePut id 33
    [MCU2_0]4708.900353 s:[tivxTargetTaskMain:1220] tivxTargetDequeueObjDesc obj_desc_id [21] name TIVX_DISP1 status 0
    [MCU2_0]4708.900406 s:[tivxTargetTaskMain:1239] obj_desc->type [3]
    [MCU2_0]4708.900520 s:[tivxObjDescIpcHandler:118] tivxTargetQueueObjDesc obj_desc_id [21]
    [MCU2_0]4708.900585 s:[tivxTargetQueueObjDesc:1369] tivxQueuePut id 32
    [MCU2_0]4708.900630 s:[tivxObjDescIpcHandler:118] tivxTargetQueueObjDesc obj_desc_id [20]
    [MCU2_0]4708.900678 s:[tivxTargetQueueObjDesc:1369] tivxQueuePut id 31
    [MCU2_0]4708.900715 s:[tivxObjDescIpcHandler:118] tivxTargetQueueObjDesc obj_desc_id [1f]
    [MCU2_0]4708.900778 s:[tivxTargetTaskMain:1220] tivxTargetDequeueObjDesc obj_desc_id [20] name TIVX_LDC1 status 0
    [MCU2_0]4708.900829 s:[tivxTargetTaskMain:1239] obj_desc->type [3]
    [MCU2_0]4708.905991 s:[tivxTargetTaskMain:1220] tivxTargetDequeueObjDesc obj_desc_id [1f] name TIVX_LDC1 status 0
    [MCU2_0]4708.906054 s:[tivxTargetTaskMain:1239] obj_desc->type [3]
    4708.911079 s:[tivxTargetQueueObjDesc:1369] tivxQueuePut id 38
    4708.911092 s:[tivxObjDescIpcHandler:118] tivxTargetQueueObjDesc obj_desc_id [26]
    4708.911107 s:[tivxTargetTaskMain:1220] tivxTargetDequeueObjDesc obj_desc_id [26] name TIVX_CPU0 status 0
    4708.911113 s:[tivxTargetTaskMain:1239] obj_desc->type [4]
    4708.911118 s:[tivxTargetCmdDescHandler:1167] node_obj_desc_id 31!
    4708.911123 s:[tivxTargetCmdDescHandleUserCallback:1048] ownCheckGraphCompleted 0
    4708.911129 s:[ownCheckGraphCompleted:625] graph_obj_desc->complete_leaf_nodes 0
    4708.911143 s:[ownCheckGraphCompleted:626] graph->num_leaf_nodes 4
    4708.911156 s:[ownCheckGraphCompleted:627] is_completed 1
    4708.911177 s:[ownCheckGraphCompleted:694] Graph Completed (graph=43, pipe=0)
    4708.911205 s:[tivxEventWait:248] Event wait end.
    4708.911228 s:[vxWaitGraph:866] tivxEventWait() end.

  • vxProcessGraph...starting
    4708.899526 s:[ownGraphScheduleGraphWrapper:768] ownGraphScheduleGraphWrapper begin!
    4708.899692 s:[ownGraphScheduleGraphWrapper:779] ownGraphScheduleGraph begin!
    4708.899814 s:[ownGraphScheduleGraphWrapper:781] ownGraphScheduleGraph end!
    4708.899824 s:[vxWaitGraph:864] tivxEventWait() start.
    4708.899860 s:[tivxEventWait:246] Event wait begin.
    4708.904759 s:[tivxTargetQueueObjDesc:1369] tivxQueuePut id 36
    4708.904780 s:[tivxObjDescIpcHandler:118] tivxTargetQueueObjDesc obj_desc_id [24]
    4708.904819 s:[tivxTargetTaskMain:1220] tivxTargetDequeueObjDesc obj_desc_id [24] name TIVX_CPU0 status 0
    4708.904836 s:[tivxTargetTaskMain:1239] obj_desc->type [4]
    4708.904852 s:[tivxTargetCmdDescHandler:1167] node_obj_desc_id 33!
    4708.904868 s:[tivxTargetCmdDescHandleUserCallback:1048] ownCheckGraphCompleted 0
    4708.904886 s:[ownCheckGraphCompleted:625] graph_obj_desc->complete_leaf_nodes 1
    4708.904900 s:[ownCheckGraphCompleted:626] graph->num_leaf_nodes 4
    4708.904914 s:[ownCheckGraphCompleted:627] is_completed 0
    4708.904961 s:[tivxTargetQueueObjDesc:1369] tivxQueuePut id 35
    4708.904973 s:[tivxObjDescIpcHandler:118] tivxTargetQueueObjDesc obj_desc_id [23]
    4708.905002 s:[tivxTargetTaskMain:1220] tivxTargetDequeueObjDesc obj_desc_id [23] name TIVX_CPU0 status 0
    4708.905018 s:[tivxTargetTaskMain:1239] obj_desc->type [4]
    4708.905034 s:[tivxTargetCmdDescHandler:1167] node_obj_desc_id 34!
    4708.905049 s:[tivxTargetCmdDescHandleUserCallback:1048] ownCheckGraphCompleted 0
    4708.905064 s:[ownCheckGraphCompleted:625] graph_obj_desc->complete_leaf_nodes 2
    4708.905078 s:[ownCheckGraphCompleted:626] graph->num_leaf_nodes 4
    4708.905091 s:[ownCheckGraphCompleted:627] is_completed 0
    4708.905969 s:[tivxTargetQueueObjDesc:1369] tivxQueuePut id 37
    4708.905983 s:[tivxObjDescIpcHandler:118] tivxTargetQueueObjDesc obj_desc_id [25]
    4708.905997 s:[tivxTargetTaskMain:1220] tivxTargetDequeueObjDesc obj_desc_id [25] name TIVX_CPU0 status 0
    4708.906003 s:[tivxTargetTaskMain:1239] obj_desc->type [4]
    4708.906008 s:[tivxTargetCmdDescHandler:1167] node_obj_desc_id 32!
    4708.906013 s:[tivxTargetCmdDescHandleUserCallback:1048] ownCheckGraphCompleted 0
    4708.906018 s:[ownCheckGraphCompleted:625] graph_obj_desc->complete_leaf_nodes 3
    4708.906037 s:[ownCheckGraphCompleted:626] graph->num_leaf_nodes 4
    4708.906050 s:[ownCheckGraphCompleted:627] is_completed 0
    [MCU2_0]4708.899901 s:[tivxTargetQueueObjDesc:1369] tivxQueuePut id 34
    [MCU2_0]4708.899981 s:[tivxTargetTaskMain:1220] tivxTargetDequeueObjDesc obj_desc_id [22] name TIVX_DISP2 status 0
    [MCU2_0]4708.900038 s:[tivxTargetTaskMain:1239] obj_desc->type [3]
    [MCU2_0]4708.900215 s:[tivxObjDescIpcHandler:118] tivxTargetQueueObjDesc obj_desc_id [22]
    [MCU2_0]4708.900290 s:[tivxTargetQueueObjDesc:1369] tivxQueuePut id 33
    [MCU2_0]4708.900353 s:[tivxTargetTaskMain:1220] tivxTargetDequeueObjDesc obj_desc_id [21] name TIVX_DISP1 status 0
    [MCU2_0]4708.900406 s:[tivxTargetTaskMain:1239] obj_desc->type [3]
    [MCU2_0]4708.900520 s:[tivxObjDescIpcHandler:118] tivxTargetQueueObjDesc obj_desc_id [21]
    [MCU2_0]4708.900585 s:[tivxTargetQueueObjDesc:1369] tivxQueuePut id 32
    [MCU2_0]4708.900630 s:[tivxObjDescIpcHandler:118] tivxTargetQueueObjDesc obj_desc_id [20]
    [MCU2_0]4708.900678 s:[tivxTargetQueueObjDesc:1369] tivxQueuePut id 31
    [MCU2_0]4708.900715 s:[tivxObjDescIpcHandler:118] tivxTargetQueueObjDesc obj_desc_id [1f]
    [MCU2_0]4708.900778 s:[tivxTargetTaskMain:1220] tivxTargetDequeueObjDesc obj_desc_id [20] name TIVX_LDC1 status 0
    [MCU2_0]4708.900829 s:[tivxTargetTaskMain:1239] obj_desc->type [3]
    [MCU2_0]4708.905991 s:[tivxTargetTaskMain:1220] tivxTargetDequeueObjDesc obj_desc_id [1f] name TIVX_LDC1 status 0
    [MCU2_0]4708.906054 s:[tivxTargetTaskMain:1239] obj_desc->type [3]
    4708.911079 s:[tivxTargetQueueObjDesc:1369] tivxQueuePut id 38
    4708.911092 s:[tivxObjDescIpcHandler:118] tivxTargetQueueObjDesc obj_desc_id [26]
    4708.911107 s:[tivxTargetTaskMain:1220] tivxTargetDequeueObjDesc obj_desc_id [26] name TIVX_CPU0 status 0
    4708.911113 s:[tivxTargetTaskMain:1239] obj_desc->type [4]
    4708.911118 s:[tivxTargetCmdDescHandler:1167] node_obj_desc_id 31!
    4708.911123 s:[tivxTargetCmdDescHandleUserCallback:1048] ownCheckGraphCompleted 0
    4708.911129 s:[ownCheckGraphCompleted:625] graph_obj_desc->complete_leaf_nodes 0
    4708.911143 s:[ownCheckGraphCompleted:626] graph->num_leaf_nodes 4
    4708.911156 s:[ownCheckGraphCompleted:627] is_completed 1
    4708.911177 s:[ownCheckGraphCompleted:694] Graph Completed (graph=43, pipe=0)
    4708.911205 s:[tivxEventWait:248] Event wait end.
    4708.911228 s:[vxWaitGraph:866] tivxEventWait() end.

  • Hi Zheng HuiCheng,

    First we need to see if this is stuck due to LDC or not. 

    What is the difference between working and non-working case? Is it just that you are providing new LDC Lut in the non-working case? What does this Lut do? 

    Please note that if Lut is not incorrect and if it does not work due to LDC, it will never work. But it seems in your case, please confirm..

    Which usecase are you running and what changes have you made in this usecase? 

    Regards,

    Brijesh

  • Hi Brijesh

        I found the location where the program stuck on .\psdk_rtos_auto_j7_07_00_00_11\tiovx\kernels_j7\hwa\vpac_ldc\vx_vpac_ldc_target.c

        in function: static vx_status VX_CALLBACK tivxVpacLdcProcess(...)

        Line about: 357: fvid2_status = Fvid2_processRequest(ldc_obj->handle, inFrmList,outFrmList, FVID2_TIMEOUT_FOREVER);

        The difference between working and non-working case is that the non-working case only taken place by powering off the tda4EVM for about ten minutes even longer, then power on to run the program. The  working case is taken place by  powering off the board for short time.

        The LDC Lut in case of working and non-working case are the same, so I'm very confused.

        could you please provide some instructions about the registers  in source code,for examlpe 

        \psdk_rtos_auto_j7_07_00_00_11\pdk_jacinto_07_00_00\packages\ti\drv\vhwa\src\csl\src\csl_ldc.c

        line about 809: static void CSL_ldcSetLutConfig(...) 

        LDC_CORE_MESH_OFST_OFST,

        LDC_CORE_MESH_BASE_L_ADDR,

        LDC_CORE_MESH_BASE_H_ADDR,

        LDC_CORE_MESH_FRSZ_W,

        LDC_CORE_MESH_FRSZ_H,

       Where can I find these statements,this information is not reflected in datasheet and user manual,thanks a lot.

       Best Regards

       Zheng Huicheng

  • Hi Huicheng,

    That's strange. Powering off board for longer duration makes LDC to hang.. Are you sure this is the only difference between working and non-working case? 

    When it is working, is LDC finishing fine and the output looks correct? Can you please check?

    Regards, Brijesh

  • Hi Brijesh,

        I tried to verify the Lut value before executing LDC, they are the same  between working and non-working case. I try to use MSC module, and the problem is the same as LDC. I used the same TF card to test on another tda4evm board, and there was no similar problem.

        Because it's a production, I'm still worried that similar problems will occur in the process of customers using, so I have to  find out the causes of the problems.

        Based on previous stuck function,I further reviewed the source code.The VPAC did report an error before calling Fvid2_processRequest.

        I  found that LDC called the function tivxVpacLdcErrorCb, The reason why this function is called is as follows,

       location:\psdk_rtos_auto_j7_07_00_00_11\pdk_jacinto_07_00_00\packages\ti\drv\vhwa\src\drv\vhwa_m2mLdcIntr.c 

       line 340: vhwaM2mLdcGetIntrStat

       This function turns off interrupt triggering for related events,

       When the program performs the following operations, the register returns a value :1

        /* Check if any of the error event has occurred */
        regVal = CSL_REG32_RD(
       &intdRegs->STATUS_REG_LEVEL_VPAC_OUT[vhwaIrqNum][1U]);

        After that, the VPAC interrupt will be masked.

        *eeStat = 0U;
        if (0U != regVal)
       {
            /* First clear all interrupts, so that the interrupt does
            * not come again for these events */
             CSL_REG32_WR(  
            &intdRegs->STATUS_CLR_REG_LEVEL_VPAC_OUT[vhwaIrqNum][1U],
            regVal);

            /* Store the error status */
           *eeStat = regVal;
        }

        I think that's why the program is stuck.

         I checked the contents of the relevant registers. STATUS_REG_LEVEL_VPAC_OUT Corresponding to        CSL_VPAC0_CP_INTD_CFG_INTD_CFG_BASE 0xf004000UL ,Please help to confirm what the fault code of 1 means, or can you provide the relevant definition of the relevant register, thank you!

        location : psdk_rtos_auto_j7_07_00_00_11\pdk_jacinto_07_00_00\packages\ti\csl\soc\j721e\src\cslr_soc_baseaddress.h

        Look forward to your reply!

        Best Regards

        Zheng Huicheng

        

  • Hi Huicheng,

    Which SDK release you are using? I remember there is fix related to LDC in later release. Let me search and share you patch.

    Regards,

    Brijesh

  • Hi Brijesh

        SDK release Version is 7_00_00.Please help me update the patch,thanks.

    Best Regards,

    Zheng Huicheng

  • Hi Brijesh,

        Many Thanks!The problem has been solved!Thanks for your help!

    Best Regards

    Zheng Huicheng