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.

DRA821U: MCU1_0 配置 DoMain MCSPI0初始化失败。

Part Number: DRA821U
Other Parts Discussed in Thread: SYSCONFIG

PDK Version 08_04

在MCU1_0 APP想用 DoMain MCSPI0 去驱动 EEP,在初始化过程中遇到如下问题

1.配置中断路由失败,

调用 Sciclient_rmIrqSet 返回失败,追踪发现由 【Sciclient_rmIrqFindRoute】返回错误导致。

具体配置代码如下:

    struct tisci_msg_rm_irq_set_req     rmIrqReq;
    struct tisci_msg_rm_irq_set_resp    rmIrqResp;
    uint32 retVal;

    rmIrqReq.valid_params           = TISCI_MSG_VALUE_RM_DST_ID_VALID;
    rmIrqReq.valid_params          |= TISCI_MSG_VALUE_RM_DST_HOST_IRQ_VALID;
    rmIrqReq.src_id                 = TISCI_DEV_MCSPI0;
    rmIrqReq.global_event           = 0U;
    rmIrqReq.src_index              = 0U;
    rmIrqReq.dst_id                 = TISCI_DEV_MCU_R5FSS0_CORE0;
    rmIrqReq.dst_host_irq           = CSLR_MCU_R5FSS0_CORE0_INTR_MAIN2MCU_LVL_INTRTR0_OUTL_0 + 1;
    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((uint32)0 != retVal)
    {
        ERR("Sciclient_rmIrqSet[%s] interrupt cfg err!", g_name_list[chn]);
    }

2.MCSPI0 初始化失败

调用 MCAL 【Spi_Init】会卡住,追踪发现执行到【 Spi_mcspiReset】,在写【SYSCONFIG】寄存器时程序卡住,没有返回

SPI_FUNC_TEXT_SECTION static void Spi_mcspiReset(uint32 baseAddr)
{
    StatusType status;
    TickType   startCount = 0U, tempCount, elaspsedCount = 0U;
    /* Set the SOFTRESET field of MCSPI_SYSCONFIG register. */
    CSL_REG32_FINS(
        baseAddr + MCSPI_SYSCONFIG,
        MCSPI_SYSCONFIG_SOFTRESET,
        MCSPI_SYSCONFIG_SOFTRESET_ON);
    
    ....
 }