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.

CCS/TDA2EVM5777: please explain the code

Part Number: TDA2EVM5777

Tool/software: Code Composer Studio

hi 

i am referring the semantic segmentation use case

Void chains_semSeg_SetLinkId(chains_semSegObj *pObj){
pObj->NullSourceLinkID = IPU1_0_LINK (SYSTEM_LINK_ID_NULL_SRC_0);
pObj->DecodeLinkID = SYSTEM_LINK_ID_VDEC_0;
pObj->DupLinkID = IPU1_0_LINK (SYSTEM_LINK_ID_DUP_0);
pObj->IPCOut_IPU1_0_A15_0_1LinkID = IPU1_0_LINK (SYSTEM_LINK_ID_IPC_OUT_1);
pObj->IPCIn_A15_0_IPU1_0_1LinkID = A15_0_LINK (SYSTEM_LINK_ID_IPC_IN_1);
pObj->Alg_tidlpreprocLinkID = A15_0_LINK (SYSTEM_LINK_ID_ALG_0);
pObj->IPCOut_A15_0_EVE4_3LinkID = A15_0_LINK (SYSTEM_LINK_ID_IPC_OUT_3);
pObj->IPCIn_EVE4_A15_0_0LinkID = EVE4_LINK (SYSTEM_LINK_ID_IPC_IN_0);
pObj->Alg_tidl_Eve4LinkID = EVE4_LINK (SYSTEM_LINK_ID_ALG_0);
pObj->IPCOut_EVE4_A15_0_0LinkID = EVE4_LINK (SYSTEM_LINK_ID_IPC_OUT_0);
pObj->IPCIn_A15_0_EVE4_5LinkID = A15_0_LINK (SYSTEM_LINK_ID_IPC_IN_5);
pObj->IPCOut_A15_0_EVE3_2LinkID = A15_0_LINK (SYSTEM_LINK_ID_IPC_OUT_2);
pObj->IPCIn_EVE3_A15_0_0LinkID = EVE3_LINK (SYSTEM_LINK_ID_IPC_IN_0);
pObj->Alg_tidl_Eve3LinkID = EVE3_LINK (SYSTEM_LINK_ID_ALG_0);
pObj->IPCOut_EVE3_A15_0_0LinkID = EVE3_LINK (SYSTEM_LINK_ID_IPC_OUT_0);
pObj->IPCIn_A15_0_EVE3_4LinkID = A15_0_LINK (SYSTEM_LINK_ID_IPC_IN_4);
pObj->IPCOut_A15_0_EVE2_1LinkID = A15_0_LINK (SYSTEM_LINK_ID_IPC_OUT_1);
pObj->IPCIn_EVE2_A15_0_0LinkID = EVE2_LINK (SYSTEM_LINK_ID_IPC_IN_0);
pObj->Alg_tidl_Eve2LinkID = EVE2_LINK (SYSTEM_LINK_ID_ALG_0);
pObj->IPCOut_EVE2_A15_0_0LinkID = EVE2_LINK (SYSTEM_LINK_ID_IPC_OUT_0);
pObj->IPCIn_A15_0_EVE2_3LinkID = A15_0_LINK (SYSTEM_LINK_ID_IPC_IN_3);
pObj->IPCOut_A15_0_EVE1_0LinkID = A15_0_LINK (SYSTEM_LINK_ID_IPC_OUT_0);
pObj->IPCIn_EVE1_A15_0_0LinkID = EVE1_LINK (SYSTEM_LINK_ID_IPC_IN_0);
pObj->Alg_tidl_Eve1LinkID = EVE1_LINK (SYSTEM_LINK_ID_ALG_0);
pObj->IPCOut_EVE1_A15_0_0LinkID = EVE1_LINK (SYSTEM_LINK_ID_IPC_OUT_0);
pObj->IPCIn_A15_0_EVE1_2LinkID = A15_0_LINK (SYSTEM_LINK_ID_IPC_IN_2);
pObj->Alg_tidlpostprocLinkID = A15_0_LINK (SYSTEM_LINK_ID_ALG_1);
pObj->IPCOut_IPU1_0_A15_0_0LinkID = IPU1_0_LINK (SYSTEM_LINK_ID_IPC_OUT_0);
pObj->IPCIn_A15_0_IPU1_0_0LinkID = A15_0_LINK (SYSTEM_LINK_ID_IPC_IN_0);
pObj->MergeLinkID = A15_0_LINK (SYSTEM_LINK_ID_MERGE_0);
pObj->SyncLinkID = A15_0_LINK (SYSTEM_LINK_ID_SYNC_0);
pObj->Alg_tidlpostproc_cpyLinkID = A15_0_LINK (SYSTEM_LINK_ID_ALG_2);
pObj->IPCOut_A15_0_IPU1_0_4LinkID = A15_0_LINK (SYSTEM_LINK_ID_IPC_OUT_4);
pObj->IPCIn_IPU1_0_A15_0_0LinkID = IPU1_0_LINK (SYSTEM_LINK_ID_IPC_IN_0);
pObj->DisplayLinkID = SYSTEM_LINK_ID_DISPLAY_0;
pObj->GrpxSrcLinkID = IPU1_0_LINK (SYSTEM_LINK_ID_GRPX_SRC_0);
pObj->Display_GrpxLinkID = SYSTEM_LINK_ID_DISPLAY_1;
}

  • Hi

    i want one question i am referring the semantic segmentation usecase and there are four file

    1.semantic segmentation text file

    2.priv.c and priv.h semantic segmentation usecase 

    what happen in the priv.c and priv.h and also source code

    please tell me 

    Thanks & Regards

    Reshma M

  • typedef struct {
    UInt32 NullSourceLinkID;
    UInt32 DecodeLinkID;
    UInt32 DupLinkID;
    UInt32 IPCOut_IPU1_0_A15_0_1LinkID;
    UInt32 IPCIn_A15_0_IPU1_0_1LinkID;
    UInt32 Alg_tidlpreprocLinkID;
    UInt32 IPCOut_A15_0_EVE4_3LinkID;
    UInt32 IPCIn_EVE4_A15_0_0LinkID;
    UInt32 Alg_tidl_Eve4LinkID;
    UInt32 IPCOut_EVE4_A15_0_0LinkID;
    UInt32 IPCIn_A15_0_EVE4_5LinkID;
    UInt32 IPCOut_A15_0_EVE3_2LinkID;
    UInt32 IPCIn_EVE3_A15_0_0LinkID;
    UInt32 Alg_tidl_Eve3LinkID;
    UInt32 IPCOut_EVE3_A15_0_0LinkID;
    UInt32 IPCIn_A15_0_EVE3_4LinkID;
    UInt32 IPCOut_A15_0_EVE2_1LinkID;
    UInt32 IPCIn_EVE2_A15_0_0LinkID;
    UInt32 Alg_tidl_Eve2LinkID;
    UInt32 IPCOut_EVE2_A15_0_0LinkID;
    UInt32 IPCIn_A15_0_EVE2_3LinkID;
    UInt32 IPCOut_A15_0_EVE1_0LinkID;
    UInt32 IPCIn_EVE1_A15_0_0LinkID;
    UInt32 Alg_tidl_Eve1LinkID;
    UInt32 IPCOut_EVE1_A15_0_0LinkID;
    UInt32 IPCIn_A15_0_EVE1_2LinkID;
    UInt32 Alg_tidlpostprocLinkID;
    UInt32 IPCOut_IPU1_0_A15_0_0LinkID;
    UInt32 IPCIn_A15_0_IPU1_0_0LinkID;
    UInt32 MergeLinkID;
    UInt32 SyncLinkID;
    UInt32 Alg_tidlpostproc_cpyLinkID;
    UInt32 IPCOut_A15_0_IPU1_0_4LinkID;
    UInt32 IPCIn_IPU1_0_A15_0_0LinkID;
    UInt32 DisplayLinkID;
    UInt32 GrpxSrcLinkID;
    UInt32 Display_GrpxLinkID;

    NullSrcLink_CreateParams NullSourcePrm;
    DecLink_CreateParams DecodePrm;
    DupLink_CreateParams DupPrm;
    IpcLink_CreateParams IPCOut_IPU1_0_A15_0_1Prm;
    IpcLink_CreateParams IPCIn_A15_0_IPU1_0_1Prm;
    AlgorithmLink_tidlpreprocCreateParams Alg_tidlpreprocPrm;
    IpcLink_CreateParams IPCOut_A15_0_EVE4_3Prm;
    IpcLink_CreateParams IPCIn_EVE4_A15_0_0Prm;
    AlgorithmLink_tidlCreateParams Alg_tidl_Eve4Prm;
    IpcLink_CreateParams IPCOut_EVE4_A15_0_0Prm;
    IpcLink_CreateParams IPCIn_A15_0_EVE4_5Prm;
    IpcLink_CreateParams IPCOut_A15_0_EVE3_2Prm;
    IpcLink_CreateParams IPCIn_EVE3_A15_0_0Prm;
    AlgorithmLink_tidlCreateParams Alg_tidl_Eve3Prm;
    IpcLink_CreateParams IPCOut_EVE3_A15_0_0Prm;
    IpcLink_CreateParams IPCIn_A15_0_EVE3_4Prm;
    IpcLink_CreateParams IPCOut_A15_0_EVE2_1Prm;
    IpcLink_CreateParams IPCIn_EVE2_A15_0_0Prm;
    AlgorithmLink_tidlCreateParams Alg_tidl_Eve2Prm;
    IpcLink_CreateParams IPCOut_EVE2_A15_0_0Prm;
    IpcLink_CreateParams IPCIn_A15_0_EVE2_3Prm;
    IpcLink_CreateParams IPCOut_A15_0_EVE1_0Prm;
    IpcLink_CreateParams IPCIn_EVE1_A15_0_0Prm;
    AlgorithmLink_tidlCreateParams Alg_tidl_Eve1Prm;
    IpcLink_CreateParams IPCOut_EVE1_A15_0_0Prm;
    IpcLink_CreateParams IPCIn_A15_0_EVE1_2Prm;
    AlgorithmLink_tidlpostprocCreateParams Alg_tidlpostprocPrm;
    IpcLink_CreateParams IPCOut_IPU1_0_A15_0_0Prm;
    IpcLink_CreateParams IPCIn_A15_0_IPU1_0_0Prm;
    MergeLink_CreateParams MergePrm;
    SyncLink_CreateParams SyncPrm;
    AlgorithmLink_tidlpostprocCreateParams Alg_tidlpostproc_cpyPrm;
    IpcLink_CreateParams IPCOut_A15_0_IPU1_0_4Prm;
    IpcLink_CreateParams IPCIn_IPU1_0_A15_0_0Prm;
    DisplayLink_CreateParams DisplayPrm;
    GrpxSrcLink_CreateParams GrpxSrcPrm;
    DisplayLink_CreateParams Display_GrpxPrm;
    } chains_semSegObj;

    Please explain this

  • Hi Reshma,

    when you create new usecase, you create the .txt file (for example chains_semSeg.txt) containing the structure of the usecase (how the links are connected in a chain).

    Then you run UsecaseGen tool, which based on the .txt file creates the XXX_priv.c and XXX_priv.h files. They contain initialization of Link IDs, setting the link pramaters to default values, adding IPC In/Out links where need and some other chain configurations. In general, you wouln'd need to modify _priv files.

    To get a clear idea of how usecase is created and what particular usecase files are for, please check vision_sdk\docs\FeatureSpecificUserGuides\VisionSDK_UserGuide_UsecaseGen.pdf

    Regards,

    Yordan

  • In semantic segmentation source what parameters are Present what is the working of semseg.c file

    Please tell me

  • Hi Reshma,

    the semantic segmentation usecase is started by Chains_semSeg() function in vision_sdk/apps/src/rtos/usecases/semSeg/chains_semSeg.c.

    This function configure, creates, link various links to establish the usecase. Further in a while loop displays run time menu and waits for user inputs to print the statistics or to end the demo. Once the user inputs end of demo stop and delete functions are executed.

    You can look at it and see which functions it cals or you can try to step in line by line while debugging it with Code Composer Studio.

    Regards,

    Yordan