Hi @LeoYang-,
As per the debug session that I checked with you, we can conclude that the cause is: somehow, the CH0_ES[ERR] bit was set before calling the Dma_Ip_Init() function, and after, the destination address and source address can't be written into the DADDR and SADDR registers by Dma_Ip_SetLogicChannelTransferList() function.
This is the solution: write 1 to clear the CH0_ES[ERR] bit before calling the Dma_Ip_Init() function.
Best regards,
Dan