工具/软件:
您好、
我在定制电路板上使用 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



