工具/软件:
您好、
我在定制电路板上使用 SDK:RTOS-09_02_00_05、该定制电路板具有与 SK-TDA4VM 相同的原理图 (MCU_MCAN0、MCAN0、MCAN5 和 MCAN9)。 例如、我遵循 pdk_jacinto_09_02_00_30/packages/ti/csl/example/mcanEvmLoopback/mcan_evm_loopback_app_main_k3.c 源代码。
我要将 MCAN5 和 MCAN9 IR 路由到 MCU1_0 R5F 处理器。 要配置主 MCAN IRQ、我将使用以下代码: 
static int32_t MCAN_CfgIrqRouterMain2Mcu(uint32_t devId, uint32_t offset, uint32_t intNum)
{
    int32_t retVal;
    struct tisci_msg_rm_irq_set_req     rmIrqReq;
    struct tisci_msg_rm_irq_set_resp    rmIrqResp;
    rmIrqReq.valid_params           = TISCI_MSG_VALUE_RM_DST_ID_VALID;
    rmIrqReq.valid_params          |= TISCI_MSG_VALUE_RM_DST_HOST_IRQ_VALID;
    rmIrqReq.src_id                 = devId;
    rmIrqReq.global_event           = 0U;
    rmIrqReq.src_index              = 1U; /* mcanss_mcan_lvl_int Line 0 */
    rmIrqReq.dst_id                 = TISCI_DEV_MCU_R5FSS0_CORE0;
    rmIrqReq.dst_host_irq           = intNum;
    rmIrqReq.ia_id                  = 0U;
    rmIrqReq.vint                   = 0U;
    rmIrqReq.vint_status_bit_index  = 0U;
    rmIrqReq.secondary_host         = TISCI_MSG_VALUE_RM_UNUSED_SECONDARY_HOST;
    retVal = Sciclient_rmIrqSet(&rmIrqReq, &rmIrqResp, SCICLIENT_SERVICE_WAIT_FOREVER);
    if(CSL_PASS != retVal)
    {
        uart_write(DEBUG_UART, "Error in SciClient Interrupt Params Configuration!!!");
        snprintf(buffer, sizeof(buffer), "offset: %d \n", offset);
        uart_write(DEBUG_UART, buffer);
    }
    else
    {
        snprintf(buffer, sizeof(buffer), 
                "SciClient Interrupt Params Configuration passed for intNum: %08X \n", intNum);
        uart_write(DEBUG_UART, buffer);
    }
    return retVal;
}
对于注册中断、可以执行以下操作: 
static int32_t MCAN_regiterISR(uint32_t intNum, void f(uintptr_t))
{
   int32_t configStatus = STW_SOK;
    OsalRegisterIntrParams_t    intrPrms;
    OsalInterruptRetCode_e      osalRetVal;
    HwiP_Handle                 hwiHandle = NULL;
    /* Enable CPU Interrupts and register ISR */
    Osal_RegisterInterrupt_initParams(&intrPrms);
    /* Populate the interrupt parameters */
    intrPrms.corepacConfig.arg              = (uintptr_t) NULL;
    intrPrms.corepacConfig.isrRoutine       = f;
    intrPrms.corepacConfig.priority         = 1U;
    intrPrms.corepacConfig.corepacEventNum  = 0U;
    intrPrms.corepacConfig.intVecNum        = intNum;
    /* Register interrupts */
    osalRetVal = Osal_RegisterInterrupt(&intrPrms, &hwiHandle);
    if(OSAL_INT_SUCCESS != osalRetVal)
    {
        configStatus = CSL_EFAIL;
        uart_write(DEBUG_UART, "Error in registering ISR!!!");
    }
    return configStatus;
}
我的目的是测试 MCAN5 和 MCAN9 之间的外部环回模式。 由于 rmIrqReq.src_id、我配置了 TISCI_DEV_MCAN5 和 TISCI_MCAN9 、并且 src_index =1、但我不知道 rmIrqReq.dst_host_IRQ 我应该配置什么? 对于这两者、dst_id 均为 TISCI_DEV_MCU_R5FSS0_CORE0。
此致、 
Tamas 
 
				 
		 
					 
				


