/** * @brief DMA IRQ * * @param None * * @return None * * @details The DMA default IRQ, declared in startup_NUC472_442.s. */ void PDMA_IRQHandler(void) { uint32_t status = PDMA_GET_INT_STATUS(); if (status & 0x1) { /* abort */ printf("target abort interrupt !!\n"); if (PDMA_GET_ABORT_STS() & 0x4) u32IsTestOver = 2; PDMA_CLR_ABORT_FLAG(PDMA_ABTSTS_ABTIF_Msk); } else if (status & 0x2) { /* done */ if ( (PDMA_GET_TD_STS() & (1 << 0)) && (PDMA_GET_TD_STS() & (1 << 1)) ) { u32IsTestOver = 1; PDMA_CLR_TD_FLAG(PDMA_TDSTS_TDIF_Msk); } } else if (status & 0x300) { /* channel 2 timeout */ printf("timeout interrupt !!\n"); u32IsTestOver = 3; PDMA_CLR_TMOUT_FLAG(0); PDMA_CLR_TMOUT_FLAG(1); } else printf("unknown interrupt !!\n"); }
/** * @brief DMA IRQ * * @param None * * @return None * * @details The DMA default IRQ, declared in startup_nuc400series.s. */ void PDMA_IRQHandler(void) { uint32_t status = PDMA_GET_INT_STATUS(); if (status & 0x1) { /* abort */ if (PDMA_GET_ABORT_STS() & 0x4) u32IsTestOver = 2; PDMA_CLR_ABORT_FLAG(PDMA_ABTF_TABORT_F_Msk); } else if (status & 0x2) { /* done */ if (PDMA_GET_TD_STS() & 0x4) u32IsTestOver = 1; PDMA_CLR_TD_FLAG(PDMA_TDF_TD_F_Msk); } else if (status & 0x400) { /* channel 2 timeout */ u32IsTestOver = 3; PDMA_CLR_TMOUT_FLAG(2); } else printf("unknown interrupt !!\n"); }