工具与软件:
目前、我的设置是 OSPI 有1个 UDMA 实例、该实例使用 uDMA_INST_ID_BCDMA_0、我想为 UART 添加另一个 UDMA 实例、即 uDMA_INST_ID_PKTDMA_0。
但第二个"udma_chOpen()"失败、因为"drvHandleInt->drvInitDone"尚未完成。 如果我调试这个函数、它会运行到"uDMA_chPair ()"并返回失败。
因此、我在评估模块的 UART DMA echo 示例中对其进行测试、并观察到如果我在代码中添加另一个实例(通过在 example.syscfg 中添加它):
/* UDMA driver instance object */ Udma_DrvObject gUdmaDrvObj[CONFIG_UDMA_NUM_INSTANCES]; /* UDMA driver instance init params */ static Udma_InitPrms gUdmaInitPrms[CONFIG_UDMA_NUM_INSTANCES] = { { .instId = UDMA_INST_ID_PKTDMA_0, .skipGlobalEventReg = FALSE, .virtToPhyFxn = Udma_defaultVirtToPhyFxn, .phyToVirtFxn = Udma_defaultPhyToVirtFxn, }, { .instId = UDMA_INST_ID_BCDMA_0, .skipGlobalEventReg = FALSE, .virtToPhyFxn = Udma_defaultVirtToPhyFxn, .phyToVirtFxn = Udma_defaultPhyToVirtFxn, }, };