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: IPC MCU2_1 to MCU1_0

Part Number: TDA4VM


TDA4VM 

SDK 7.3

MCU1_0(MCUSW -- cddIpc)

MCU2_0 (vision app)

I want to achieve the IPC between MCU1_0(running AUTOSAR) and MCU2_0(running vision apps).

1. The IPC communication between MCU1 0 and MCU2 1 is successful, and Interrupt configuration is as follows

#if defined(CDD_IPC_REMOTE_CORE_MCU2_1_USED)
/** \brief Register interrupt handler for new message notification from
 *          core MCU 11
 */
static void Cdd_IpcApp_MbIntRegForMcu21(void)
{
    struct tisci_msg_rm_irq_set_req     rmIrqReq;
    struct tisci_msg_rm_irq_set_resp    rmIrqResp;
    OsalRegisterIntrParams_t    intrPrms;
    OsalInterruptRetCode_e      osalRetVal;
    Int32 retVal;
    HwiP_Handle hwiHandle;

    rmIrqReq.valid_params           = TISCI_MSG_VALUE_RM_DST_ID_VALID;
    rmIrqReq.valid_params          |= TISCI_MSG_VALUE_RM_DST_HOST_IRQ_VALID;
    rmIrqReq.valid_params          |= TISCI_MSG_VALUE_RM_SECONDARY_HOST_VALID;

    rmIrqReq.src_id                 = TISCI_DEV_NAVSS0_MAILBOX_7;
    rmIrqReq.src_index              = 0U; /* 0 for User 0, 1 for user 1... */
    rmIrqReq.dst_id                 = TISCI_DEV_MCU_R5FSS0_CORE0;
    rmIrqReq.secondary_host         = TISCI_HOST_ID_MCU_0_R5_0;
    rmIrqReq.dst_host_irq           = INTRTR_CFG_MBX_CLST7_USR0_408_MCU_2_0_TO_MCU_1_0_377;

    retVal = Sciclient_rmIrqSet(
                 &rmIrqReq, &rmIrqResp, APP_SCICLIENT_TIMEOUT);
    if(CSL_PASS != retVal)
    {
        AppUtils_Printf(MSG_NORMAL,MSG_APP_NAME
        ": Error in SciClient Interrupt Params Configuration!!!\n");
    }

    /* Interrupt hookup */
    Osal_RegisterInterrupt_initParams(&intrPrms);
    intrPrms.corepacConfig.arg          = (uintptr_t)NULL;
    intrPrms.corepacConfig.isrRoutine   = &Cdd_IpcProfile_MsgFromMcu21Isr;
    intrPrms.corepacConfig.priority     = 1U;
    intrPrms.corepacConfig.corepacEventNum = 0U;
    intrPrms.corepacConfig.intVecNum    = INTRTR_CFG_MBX_CLST7_USR0_408_MCU_2_0_TO_MCU_1_0_377;

    osalRetVal = Osal_RegisterInterrupt(&intrPrms, &hwiHandle);
    if(OSAL_INT_SUCCESS != osalRetVal)
    {
        AppUtils_Printf(MSG_NORMAL,
                        MSG_APP_NAME ": Error Could not register ISR to receive"
                        " from MCU 2 1 !!!\n");
    }
    return;
}

#endif /* CDD_IPC_REMOTE_CORE_MCU2_1_USED */

2.How do I modify the interrupt configuration if I want to receive IPC messages from MCU2_0

  • Hi,

    Can you please provide the following clarifications:

    1. Were you able to boot the device with your MCU1_0 firmware running AUTOSAR and integrated with DM Server?
    2. What MCUSW example/demo application are you using for reference? 
    3. What is your OS on the A72 processor?

    regards

    Suman