static void App_udmaRxHpdInit(Udma_ChHandle rxChHandle,
uint8_t *pHpdMem,
const uint32_t *destBuf,
uint32_t length)
{
CSL_UdmapCppi5HMPD *pHpd = (CSL_UdmapCppi5HMPD *) pHpdMem;
uint32_t descType = (uint32_t)CSL_UDMAP_CPPI5_PD_DESCINFO_DTYPE_VAL_HOST;
/* Setup descriptor */
CSL_udmapCppi5SetDescType(pHpd, descType);
CSL_udmapCppi5SetEpiDataPresent(pHpd, FALSE);
CSL_udmapCppi5SetPsDataLoc(pHpd, 0U);
CSL_udmapCppi5SetPsDataLen(pHpd, 0U);
CSL_udmapCppi5SetPktLen(pHpd, descType, length);
CSL_udmapCppi5SetPsFlags(pHpd, 0U);
CSL_udmapCppi5SetIds(pHpd, descType, 0x321, UDMA_DEFAULT_FLOW_ID);
CSL_udmapCppi5SetSrcTag(pHpd, 0x0000); /* Not used */
CSL_udmapCppi5SetDstTag(pHpd, 0x0000); /* Not used */
/* Return Policy descriptors are reserved in case of AM243X/Am64X */
CSL_udmapCppi5SetReturnPolicy(
pHpd,
descType,
0U,
0U,
0U,
0U);
CSL_udmapCppi5LinkDesc(pHpd, 0U);
CSL_udmapCppi5SetBufferAddr(pHpd, (uint64_t) Udma_defaultVirtToPhyFxn(destBuf, 0U, NULL));
CSL_udmapCppi5SetBufferLen(pHpd, length);
CSL_udmapCppi5SetOrgBufferAddr(pHpd, (uint64_t) Udma_defaultVirtToPhyFxn(destBuf, 0U, NULL));
CSL_udmapCppi5SetOrgBufferLen(pHpd, length);
/* Writeback cache */
CacheP_wb(pHpdMem, UDMA_TEST_DESC_SIZE, CacheP_TYPE_ALLD);
return;
}
我使用的是mcu_plus_sdk_am64x_08_03_00_18\examples\drivers\udma\udma_adc_read例程,我看上面DMAINIT的代码中没有写DMA是从哪个ADC通道搬运数据的,哪我应该从哪个地方知道DMA是从哪个ADC通道搬运数据的?