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.

TDA2SX: Can I increase the mailbox ack queue numbers?

Part Number: TDA2SX

Hi,

in my test(used tda2xx_evm_bios_all on windows os, and chose tidlOD usecase), I often need a lot of transfers by System_linkControl(),

it waii cause system assert, the assert message link this:

[IPU1-0] 211.556945 s: Assertion @ Line: 524 in utils_mbx.c: ackQue != NULL : failed !!!
[IPU1-0] 211.557311 s: Assertion @ Line: 524 in utils_mbx.c: ackQue != NULL : failed !!!

So I judge I need to increase mailbox ack queue numbers,

then i find the #define in C:\PROCESSOR_SDK_VISION_03_05_00_00\vision_sdk\links_fw\src\rtos\utils_common\include\utils_mbx.h in line:139 like this:

/**
 *******************************************************************************
 * \brief Maximum number of ack queues.This allows multiple tasks to wait
 *        on different ack msgs
 *******************************************************************************
*/
#define UTILS_MBX_ACK_QUE_CNT_MAX  (4U)

Is it defined the mailbox ack queue numbers is 4? If true, can I increase it? because I tried to increase it to 8,
but it will cause crash on system boot and and provide no feedback like this:

 SDK3_05_TDA2xx_SBL_V1.0

 SBL_OPP_HIGH

 SBL Initial Config Failed

 DPLL Configuration Completed

 Clock Domain Configuration Completed

 Module Enable Configuration Completed

 TI EVM PAD Config Completed
ERROR: HW-Leveling time-out

 DDR Config Completed

 App Image Download Begins

 SD Boot - file open completed successfully

 MPU CPU0 Image Load Completed

 IPU1 CPU0 Image Load Completed

 IPU1 CPU1 Image Load Completed

 DSP1 Image Load Completed

 DSP2 Image Load Completed

 EVE1 Image Load Completed

 EVE2 Image Load Completed

 EVE3 Image Load Completed

 EVE4 Image Load Completed

 App Image Download Completed

 Putting MPU CPU1 in Off mode

 EVE MMU configuration completed

 EVE MMU configuration completed

 EVE MMU configuration completed

 EVE MMU configuration completed

*****************************************************************

 PMCCNTR counts once every 64 clock cycles, multiple by 64 to get actual CPU cycles

 SBL Initial Config Cycles - 85438  (7.29 ms)
 SOC Init Cycles - 264250  (22.54 ms)
 DDR Config Clock Cycles - 181517  (15.48 ms)
 App Image Load Cycles - 146772656  (12524.59 ms)
 Slave Core Bootup Cycles - 323025  (27.56 ms)
 SBL Boot-up Cycles - 147628220  (12597.60 ms)
 Time at which SBL started IPU1_0 - 273481  (23.33 ms)
*****************************************************************

 Jumping to MPU CPU0 App

I can't know where the error occurred,
please help me to resolve the problem, thanks you.

  • Hi,

    We have a long public holiday + weekend & I don't have source code access to analyze so I will get back to you on Wedneday.

    Thanks

    Gaviraju

  • Hi,

    in my test program, a part of  feed the watchdog is like this in vision_sdk\links_fw\src\rtos\links_ipu\vpe\vpeLink_tsk.c :

    It's just a simple System_linkControl() command, but it frequency is frequent and direction is complicated, may be from DSP to IPU, may be from EVE to IPU, may be from MPU to IPU, may be from IPU to IPU, anyways, I think the problem is the frequency, but I really need these watchdog.

    So I need to increase the numbers of mailbox ack queue or other solutions.

    Please help me to resolve the problem, thanks you.

  • Hi,

    The default tidlOD use-case is working fine & you added some changes in the code, because of this reason it's failing. So can I know all changes added to the code? 

    Can I know what are you trying to achieve?

    Thanks

    Gaviraju

  • Hi, 

    I know default tidlOD use-case is working fine, so what I emphasize is the watchdog of System_linkControl() I added.

    Or do you think the problem is not in the frequency of System_linkControl()?

    The change is huge, but I can give you system architecture and somthing design thinking.

    In my usecase , I need 2 inputs of 1080p and 1 output of AHD 1080p, and the input must be processed by DL OD.

    The Alg_failureDetect_DspX is used to check some input camera failure, like the camera signal or illumination, I also need to resize the output, so I added the VPE_1, then I moved the object draw into the Alg_FrameCopy and added something algorithm.

    Finally, those with a red circle represent monitoring by watchdog, and the way of feeding the watchdog was mentioned in my previous reply.

  • Hi,

    I think increasing the macro "UTILS_MBX_ACK_QUE_CNT_MAX" value from 4 to 8 is not the right solution, please wait I will discuss with the team & let you know.

    Thanks

    Gaviraju

  • Hi,

    it has been almost a week since your reply.

    Could I know there is any progress?

    Thanks you.

  • Hi,

    When we increase the macro "UTILS_MBX_ACK_QUE_CNT_MAX" value from 4 to 8, it needs more resource so recommending to disable the un-used cores & disable un-used links.

    With the below changes, I'm able to run one of the default use-cases.

    bangvideoapps02:/adasuser/gaviraju/ADAS/vision_sdk> git diff
    diff --git a/apps/configs/tda2xx_evm_bios_all/cfg.mk b/apps/configs/tda2xx_evm_bios_all/cfg.mk
    index 7eea438d1..8a7b0e328 100755
    --- a/apps/configs/tda2xx_evm_bios_all/cfg.mk
    +++ b/apps/configs/tda2xx_evm_bios_all/cfg.mk
    @@ -17,8 +17,8 @@
     # CPUs to included in build
     #
     PROC_IPU1_0_INCLUDE=yes
    -PROC_IPU1_1_INCLUDE=yes
    -PROC_IPU2_INCLUDE=yes
    +PROC_IPU1_1_INCLUDE=no
    +PROC_IPU2_INCLUDE=no
     PROC_A15_0_INCLUDE=yes
     PROC_DSP1_INCLUDE=yes
     PROC_DSP2_INCLUDE=yes
    diff --git a/links_fw/src/rtos/links_common/system/system_initDeinitLinks.c b/links_fw/src/rtos/links_common/system/system_initDeinitLinks.c
    index e7c0fef2f..34b2b62b4 100755
    --- a/links_fw/src/rtos/links_common/system/system_initDeinitLinks.c
    +++ b/links_fw/src/rtos/links_common/system/system_initDeinitLinks.c
    @@ -178,16 +178,16 @@ Void System_initLinks(void)
         /*  Links init based on the links which are part of the build
          */
         #ifdef links_common_avb_rx
    -        AvbRxLink_init();
    +        //AvbRxLink_init();
         #endif
         #ifdef links_common_avb_tx
    -        AvbTxLink_init();
    +        //AvbTxLink_init();
         #endif
         #ifdef links_common_dup
    -        DupLink_init();
    +        //DupLink_init();
         #endif
         #ifdef links_common_gate
    -        GateLink_init();
    +        //GateLink_init();
         #endif
         #ifdef links_common_ipcIn
             IpcInLink_init();
    @@ -196,28 +196,28 @@ Void System_initLinks(void)
             IpcOutLink_init();
         #endif
         #ifdef links_common_merge
    -        MergeLink_init();
    +        //MergeLink_init();
         #endif
         #ifdef links_common_network_tx
    -        NetworkTxLink_init();
    +        //NetworkTxLink_init();
         #endif
         #ifdef links_common_network_rx
    -        NetworkRxLink_init();
    +        //NetworkRxLink_init();
         #endif
         #ifdef links_common_null
    -        NullLink_init();
    +        //NullLink_init();
         #endif
         #ifdef links_common_nullSrc
    -        NullSrcLink_init();
    +        //NullSrcLink_init();
         #endif
         #ifdef links_common_select
    -        SelectLink_init();
    +        //SelectLink_init();
         #endif
         #ifdef links_common_sync
    -        SyncLink_init();
    +        //SyncLink_init();
         #endif
         #ifdef links_common_tfdtp_rx
    -        TfdtpRxLink_init();
    +        //TfdtpRxLink_init();
         #endif
         #ifdef links_ipu_display
             DisplayLink_init();
    @@ -226,32 +226,32 @@ Void System_initLinks(void)
             DisplayCtrlLink_init();
         #endif
         #ifdef links_ipu_iss_capture
    -        IssCaptureLink_init();
    +        //IssCaptureLink_init();
         #endif
         #ifdef links_ipu_iss_m2misp
    -        IssM2mIspLink_init();
    +        //IssM2mIspLink_init();
         #endif
         #ifdef links_ipu_iss_m2mresizer
    -        IssRszLink_init();
    +        //IssRszLink_init();
         #endif
         #ifdef links_ipu_iss_m2msimcop
    -        IssM2mSimcopLink_init();
    +        //IssM2mSimcopLink_init();
         #endif
         #ifdef links_ipu_iva
    -        EncLink_init();
    -        DecLink_init();
    +        //EncLink_init();
    +        //DecLink_init();
         #endif
         #ifdef links_ipu_vip_capture
             CaptureLink_init();
         #endif
         #ifdef links_ipu_vpe
    -        VpeLink_init();
    +        //VpeLink_init();
         #endif
         #ifdef links_common_algorithm
             AlgorithmLink_init();
         #endif
         #ifdef links_ipu_dssM2mWb
    -        DssM2mWbLink_init();
    +        //DssM2mWbLink_init();
         #endif
     
         Vps_printf(" SYSTEM: Initializing Links ... DONE !!! \r\n");
    diff --git a/links_fw/src/rtos/utils_common/include/utils_mbx.h b/links_fw/src/rtos/utils_common/include/utils_mbx.h
    old mode 100644
    new mode 100755
    index c4cba6a4f..960657bea
    --- a/links_fw/src/rtos/utils_common/include/utils_mbx.h
    +++ b/links_fw/src/rtos/utils_common/include/utils_mbx.h
    @@ -142,7 +142,7 @@ Limited License.
      *        on different ack msgs
      *******************************************************************************
     */
    -#define UTILS_MBX_ACK_QUE_CNT_MAX  (4U)
    +#define UTILS_MBX_ACK_QUE_CNT_MAX  (8U)
     
     /**
      *******************************************************************************
    (END)
    

    In the above code changes, the un-used teardown links are not disabled, so please do similar changes in the function "System_deInitLinks".

    Thanks

    Gaviraju

  • Hi,

    So increase the macro is the only answer? Or is there a better solution?

  • Hi,

    I tried to delete the useless links as your reply, but I still cannot increase the macro.

    Only IPU2 I don’t need to use, so I turned it off.

    my modifications are as follows:

    Void System_initLinks(void)
    {
        Vps_printf(" SYSTEM: Initializing Links !!! \r\n");
    
        /*  Links init based on the links which are part of the build
         */
    #if PSVT_LIGHTWEIGHT_LINK_CONFIG
        #ifdef links_common_dup
        DupLink_init();
        #endif
        #ifdef links_common_gate
        GateLink_init();
        #endif
        #ifdef links_common_ipcIn
        IpcInLink_init();
        #endif
        #ifdef links_common_ipcOut
        IpcOutLink_init();
        #endif
        #ifdef links_common_merge
        MergeLink_init();
        #endif
        #ifdef links_common_nullSrc
        NullSrcLink_init();
        #endif
        #ifdef links_common_select
        SelectLink_init();
        #endif
        #ifdef links_common_sync
        SyncLink_init();
        #endif
        #ifdef links_ipu_display
        DisplayLink_init();
        #endif
        #ifdef links_ipu_display_ctrl
        DisplayCtrlLink_init();
        #endif
        #ifdef links_ipu_vip_capture
        CaptureLink_init();
        #endif
        #ifdef links_ipu_vpe
        VpeLink_init();
        #endif
        #ifdef links_common_algorithm
        AlgorithmLink_init();
        #endif
    #else
        #ifdef links_common_avb_rx
        AvbRxLink_init();
        #endif
        #ifdef links_common_avb_tx
        AvbTxLink_init();
        #endif
        #ifdef links_common_dup
        DupLink_init();
        #endif
        #ifdef links_common_gate
        GateLink_init();
        #endif
        #ifdef links_common_ipcIn
        IpcInLink_init();
        #endif
        #ifdef links_common_ipcOut
        IpcOutLink_init();
        #endif
        #ifdef links_common_merge
        MergeLink_init();
        #endif
        #ifdef links_common_network_tx
        NetworkTxLink_init();
        #endif
        #ifdef links_common_network_rx
        NetworkRxLink_init();
        #endif
        #ifdef links_common_null
        NullLink_init();
        #endif
        #ifdef links_common_nullSrc
        NullSrcLink_init();
        #endif
        #ifdef links_common_select
        SelectLink_init();
        #endif
        #ifdef links_common_sync
        SyncLink_init();
        #endif
        #ifdef links_common_tfdtp_rx
        TfdtpRxLink_init();
        #endif
        #ifdef links_ipu_display
        DisplayLink_init();
        #endif
        #ifdef links_ipu_display_ctrl
        DisplayCtrlLink_init();
        #endif
        #ifdef links_ipu_iss_capture
        IssCaptureLink_init();
        #endif
        #ifdef links_ipu_iss_m2misp
        IssM2mIspLink_init();
        #endif
        #ifdef links_ipu_iss_m2mresizer
        IssRszLink_init();
        #endif
        #ifdef links_ipu_iss_m2msimcop
        IssM2mSimcopLink_init();
        #endif
        #ifdef links_ipu_iva
        EncLink_init();
        DecLink_init();
        #endif
        #ifdef links_ipu_vip_capture
        CaptureLink_init();
        #endif
        #ifdef links_ipu_vpe
        VpeLink_init();
        #endif
        #ifdef links_common_algorithm
        AlgorithmLink_init();
        #endif
        #ifdef links_ipu_dssM2mWb
        DssM2mWbLink_init();
        #endif
    #endif
    
        Vps_printf(" SYSTEM: Initializing Links ... DONE !!! \r\n");
    }

    The system will still crash on system boot and doen't give me any error message.

     Is there a better solution? 

  • As you said, if i want to increase the macro, i need more resource , what is the resource you said? DRAM? cache?
    In my test board, there is idle DRAM, increase which part can resolve my problem?

  • Hi,

    It's not related to memory resource if the memory is not sufficient then we will get an error during build time, seems the semaphore resource is not available.

    I'm requesting you to do the below changes as it is & see the same issue is observed in your setup.

    With the below changes, I'm able to boot successfully & I can see the use-case menu in the console.

    bangvideoapps02:/adasuser/gaviraju/ADAS/vision_sdk> git diff
    diff --git a/links_fw/src/rtos/links_common/algorithm/algorithmLink_cfg.h b/links_fw/src/rtos/links_common/algorithm/algorithmLink_cfg.h
    index b9674dbdf..67eae9e08 100755
    --- a/links_fw/src/rtos/links_common/algorithm/algorithmLink_cfg.h
    +++ b/links_fw/src/rtos/links_common/algorithm/algorithmLink_cfg.h
    @@ -125,50 +125,50 @@ extern "C" {
      *
      */
     #ifdef BUILD_DSP_1
    -#define ALGORITHM_LINK_OBJ_MAX        (8U)
    +#define ALGORITHM_LINK_OBJ_MAX        (5U)
     /* stack size increased for pedstrain detect object tracking lib */
     #define ALGORITHM_LINK_TSK_STACK_SIZE (1024*1024)
     #define ALGORITHM_LINK_ALG_MAXNUM     (ALGORITHM_LINK_DSP_ALG_MAXNUM)
     #endif
     
     #ifdef BUILD_DSP_2
    -#define ALGORITHM_LINK_OBJ_MAX        (8U)
    +#define ALGORITHM_LINK_OBJ_MAX        (5U)
     #define ALGORITHM_LINK_TSK_STACK_SIZE (1024*1024)
     #define ALGORITHM_LINK_ALG_MAXNUM     (ALGORITHM_LINK_DSP_ALG_MAXNUM)
     #endif
     
     #ifdef BUILD_ARP32_1
    -#define ALGORITHM_LINK_OBJ_MAX        (8U)
    +#define ALGORITHM_LINK_OBJ_MAX        (5U)
     #define ALGORITHM_LINK_TSK_STACK_SIZE (7*KB)
     #define ALGORITHM_LINK_ALG_MAXNUM     (ALGORITHM_LINK_EVE_ALG_MAXNUM)
     #endif
     
     #ifdef BUILD_ARP32_2
    -#define ALGORITHM_LINK_OBJ_MAX        (8U)
    +#define ALGORITHM_LINK_OBJ_MAX        (5U)
     #define ALGORITHM_LINK_TSK_STACK_SIZE (7*KB)
     #define ALGORITHM_LINK_ALG_MAXNUM     (ALGORITHM_LINK_EVE_ALG_MAXNUM)
     #endif
     
     #ifdef BUILD_ARP32_3
    -#define ALGORITHM_LINK_OBJ_MAX        (8U)
    +#define ALGORITHM_LINK_OBJ_MAX        (5U)
     #define ALGORITHM_LINK_TSK_STACK_SIZE (7*KB)
     #define ALGORITHM_LINK_ALG_MAXNUM     (ALGORITHM_LINK_EVE_ALG_MAXNUM)
     #endif
     
     #ifdef BUILD_ARP32_4
    -#define ALGORITHM_LINK_OBJ_MAX        (8U)
    +#define ALGORITHM_LINK_OBJ_MAX        (5U)
     #define ALGORITHM_LINK_TSK_STACK_SIZE (7*KB)
     #define ALGORITHM_LINK_ALG_MAXNUM     (ALGORITHM_LINK_EVE_ALG_MAXNUM)
     #endif
     
     #ifdef BUILD_M4
    -#define ALGORITHM_LINK_OBJ_MAX        (8U)
    +#define ALGORITHM_LINK_OBJ_MAX        (5U)
     #define ALGORITHM_LINK_TSK_STACK_SIZE (SYSTEM_DEFAULT_TSK_STACK_SIZE)
     #define ALGORITHM_LINK_ALG_MAXNUM     (ALGORITHM_LINK_IPU_ALG_MAXNUM)
     #endif
     
     #ifdef BUILD_A15
    -#define ALGORITHM_LINK_OBJ_MAX        (8U)
    +#define ALGORITHM_LINK_OBJ_MAX        (5U)
     #define ALGORITHM_LINK_TSK_STACK_SIZE (SYSTEM_DEFAULT_TSK_STACK_SIZE)
     #define ALGORITHM_LINK_ALG_MAXNUM     (ALGORITHM_LINK_A15_ALG_MAXNUM)
     #endif
    diff --git a/links_fw/src/rtos/links_common/dup/dupLink_priv.h b/links_fw/src/rtos/links_common/dup/dupLink_priv.h
    old mode 100644
    new mode 100755
    index e72f6265e..1e203bba0
    --- a/links_fw/src/rtos/links_common/dup/dupLink_priv.h
    +++ b/links_fw/src/rtos/links_common/dup/dupLink_priv.h
    @@ -116,7 +116,7 @@ extern "C" {
      *
      *******************************************************************************
      */
    -#define DUP_LINK_OBJ_MAX    (5U)
    +#define DUP_LINK_OBJ_MAX    (1U)
     
     /**
      *******************************************************************************
    diff --git a/links_fw/src/rtos/links_common/merge/mergeLink_priv.h b/links_fw/src/rtos/links_common/merge/mergeLink_priv.h
    old mode 100644
    new mode 100755
    index 7098d6c9a..49a4b7991
    --- a/links_fw/src/rtos/links_common/merge/mergeLink_priv.h
    +++ b/links_fw/src/rtos/links_common/merge/mergeLink_priv.h
    @@ -116,7 +116,7 @@ extern "C" {
      *
      *******************************************************************************
      */
    -#define MERGE_LINK_OBJ_MAX   (5U)
    +#define MERGE_LINK_OBJ_MAX   (2U)
     
     /**
      *******************************************************************************
    diff --git a/links_fw/src/rtos/links_common/null/nullLink_priv.h b/links_fw/src/rtos/links_common/null/nullLink_priv.h
    index 1d7606575..999491bef 100755
    --- a/links_fw/src/rtos/links_common/null/nullLink_priv.h
    +++ b/links_fw/src/rtos/links_common/null/nullLink_priv.h
    @@ -110,7 +110,7 @@ extern "C" {
      *
      *******************************************************************************
      */
    -#define NULL_LINK_OBJ_MAX    (3U)
    +#define NULL_LINK_OBJ_MAX    (1U)
     
     /*******************************************************************************
      *  Data structure's
    diff --git a/links_fw/src/rtos/links_common/select/selectLink_priv.h b/links_fw/src/rtos/links_common/select/selectLink_priv.h
    old mode 100644
    new mode 100755
    index bfbc96be7..726cae3e0
    --- a/links_fw/src/rtos/links_common/select/selectLink_priv.h
    +++ b/links_fw/src/rtos/links_common/select/selectLink_priv.h
    @@ -112,7 +112,7 @@ extern "C" {
      *
      *******************************************************************************
      */
    -#define SELECT_LINK_OBJ_MAX    (6U)
    +#define SELECT_LINK_OBJ_MAX    (1U)
     
     /**
      *******************************************************************************
    diff --git a/links_fw/src/rtos/links_common/sync/syncLink_priv.h b/links_fw/src/rtos/links_common/sync/syncLink_priv.h
    index db61d8ede..78301a56c 100755
    --- a/links_fw/src/rtos/links_common/sync/syncLink_priv.h
    +++ b/links_fw/src/rtos/links_common/sync/syncLink_priv.h
    @@ -102,7 +102,7 @@ Limited License.
      *
      *******************************************************************************
      */
    -#define SYNC_LINK_OBJ_MAX    (4U)
    +#define SYNC_LINK_OBJ_MAX    (1U)
     
     /**
      *******************************************************************************
    diff --git a/links_fw/src/rtos/links_common/system/system_initDeinitLinks.c b/links_fw/src/rtos/links_common/system/system_initDeinitLinks.c
    index e7c0fef2f..ae9cff183 100755
    --- a/links_fw/src/rtos/links_common/system/system_initDeinitLinks.c
    +++ b/links_fw/src/rtos/links_common/system/system_initDeinitLinks.c
    @@ -178,16 +178,16 @@ Void System_initLinks(void)
         /*  Links init based on the links which are part of the build
          */
         #ifdef links_common_avb_rx
    -        AvbRxLink_init();
    +        //AvbRxLink_init();
         #endif
         #ifdef links_common_avb_tx
    -        AvbTxLink_init();
    +        //AvbTxLink_init();
         #endif
         #ifdef links_common_dup
             DupLink_init();
         #endif
         #ifdef links_common_gate
    -        GateLink_init();
    +        //GateLink_init();
         #endif
         #ifdef links_common_ipcIn
             IpcInLink_init();
    @@ -199,13 +199,13 @@ Void System_initLinks(void)
             MergeLink_init();
         #endif
         #ifdef links_common_network_tx
    -        NetworkTxLink_init();
    +        //NetworkTxLink_init();
         #endif
         #ifdef links_common_network_rx
    -        NetworkRxLink_init();
    +        //NetworkRxLink_init();
         #endif
         #ifdef links_common_null
    -        NullLink_init();
    +        //NullLink_init();
         #endif
         #ifdef links_common_nullSrc
             NullSrcLink_init();
    @@ -217,7 +217,7 @@ Void System_initLinks(void)
             SyncLink_init();
         #endif
         #ifdef links_common_tfdtp_rx
    -        TfdtpRxLink_init();
    +        //TfdtpRxLink_init();
         #endif
         #ifdef links_ipu_display
             DisplayLink_init();
    @@ -226,23 +226,23 @@ Void System_initLinks(void)
             DisplayCtrlLink_init();
         #endif
         #ifdef links_ipu_iss_capture
    -        IssCaptureLink_init();
    +        //IssCaptureLink_init();
         #endif
         #ifdef links_ipu_iss_m2misp
    -        IssM2mIspLink_init();
    +        //IssM2mIspLink_init();
         #endif
         #ifdef links_ipu_iss_m2mresizer
    -        IssRszLink_init();
    +        //IssRszLink_init();
         #endif
         #ifdef links_ipu_iss_m2msimcop
    -        IssM2mSimcopLink_init();
    +        //IssM2mSimcopLink_init();
         #endif
         #ifdef links_ipu_iva
    -        EncLink_init();
    +        //EncLink_init();
             DecLink_init();
         #endif
         #ifdef links_ipu_vip_capture
    -        CaptureLink_init();
    +        //CaptureLink_init();
         #endif
         #ifdef links_ipu_vpe
             VpeLink_init();
    @@ -251,7 +251,7 @@ Void System_initLinks(void)
             AlgorithmLink_init();
         #endif
         #ifdef links_ipu_dssM2mWb
    -        DssM2mWbLink_init();
    +        //DssM2mWbLink_init();
         #endif
     
         Vps_printf(" SYSTEM: Initializing Links ... DONE !!! \r\n");
    diff --git a/links_fw/src/rtos/links_ipu/display/displayLink_priv.h b/links_fw/src/rtos/links_ipu/display/displayLink_priv.h
    index 86161b9a3..ec0e3b0c2 100755
    --- a/links_fw/src/rtos/links_ipu/display/displayLink_priv.h
    +++ b/links_fw/src/rtos/links_ipu/display/displayLink_priv.h
    @@ -112,7 +112,7 @@ extern "C" {
      *
      *******************************************************************************
      */
    -#define DISPLAY_LINK_OBJ_MAX                           (4U)
    +#define DISPLAY_LINK_OBJ_MAX                           (1U)
     
     /**
      *******************************************************************************
    diff --git a/links_fw/src/rtos/links_ipu/vip_capture/captureLink_priv.h b/links_fw/src/rtos/links_ipu/vip_capture/captureLink_priv.h
    old mode 100644
    new mode 100755
    index 4926ccc68..2e893dd50
    --- a/links_fw/src/rtos/links_ipu/vip_capture/captureLink_priv.h
    +++ b/links_fw/src/rtos/links_ipu/vip_capture/captureLink_priv.h
    @@ -137,7 +137,7 @@ Limited License.
      *
      *******************************************************************************
      */
    -#define CAPTURE_LINK_OBJ_MAX                     (2U)
    +#define CAPTURE_LINK_OBJ_MAX                     (1U)
     
     /**
      *******************************************************************************
    diff --git a/links_fw/src/rtos/links_ipu/vpe/vpeLink_priv.h b/links_fw/src/rtos/links_ipu/vpe/vpeLink_priv.h
    old mode 100644
    new mode 100755
    index 5e18de4ba..ef409ddf2
    --- a/links_fw/src/rtos/links_ipu/vpe/vpeLink_priv.h
    +++ b/links_fw/src/rtos/links_ipu/vpe/vpeLink_priv.h
    @@ -115,7 +115,7 @@ extern "C" {
      *
      *******************************************************************************
      */
    -#define VPE_LINK_OBJ_MAX                     (4U)
    +#define VPE_LINK_OBJ_MAX                     (1U)
     
     /**
      *******************************************************************************
    diff --git a/links_fw/src/rtos/utils_common/include/utils_mbx.h b/links_fw/src/rtos/utils_common/include/utils_mbx.h
    old mode 100644
    new mode 100755
    index c4cba6a4f..960657bea
    --- a/links_fw/src/rtos/utils_common/include/utils_mbx.h
    +++ b/links_fw/src/rtos/utils_common/include/utils_mbx.h
    @@ -142,7 +142,7 @@ Limited License.
      *        on different ack msgs
      *******************************************************************************
     */
    -#define UTILS_MBX_ACK_QUE_CNT_MAX  (4U)
    +#define UTILS_MBX_ACK_QUE_CNT_MAX  (8U)
     
     /**
      *******************************************************************************
    (END)
    

    Here I've again optimized the resource by reducing the LINK_OBJ_MAX. Please think about how can you optimized further & do changes according to your use-case.

    After applying the above-mentioned changes you should do a clean build & run the use-case with the new appimage & MLO (SBL image).

    The steps to build the code is

    make clean -j
    make allclean -j
    make -s -j depend
    make -s -j
    make -s appimage
    make -s sbl

    Thanks

    Gaviraju

  • Hi,

    I am sorry, I haven't tried your latest reply, because the links may increase in the future.

    But during your reply, I tried to find something, then i find the macro in ti_components\drivers\pdk_01_10_01_06\packages\ti\drv\vps\include\osal\bsp_osalCfg.h

    This macro looks like defines the maximum number of the semaphore object, if increase it and increase UTILS_MBX_ACK_QUE_CNT_MAX at the same time, the system will can be operational.

    Could this change cause system instability?

  • Hi,

    Let's try & let me know status.

    Thanks

    Gaviraju