hard_hdma_int.c 851 B

123456789101112131415161718192021222324
  1. #include "hard_hdma_int.h"
  2. #include "hpm_dma_drv.h"
  3. #include "board.h"
  4. volatile bool uart2_tx_dma_done;
  5. volatile bool uart3_tx_dma_done;
  6. /*--------------------------------------------------------------------------*/
  7. /* DMA 发送完成中断服务程序 */
  8. /*--------------------------------------------------------------------------*/
  9. SDK_DECLARE_EXT_ISR_M(IRQn_HDMA, dma_isr)
  10. void dma_isr(void)
  11. {
  12. volatile hpm_stat_t stat_tx_chn;
  13. stat_tx_chn = dma_check_transfer_status(SBUS_UART2_DMA_CONTROLLER, SBUS_UART2_TX_DMA_CH);
  14. if (stat_tx_chn & DMA_CHANNEL_STATUS_TC) {
  15. uart2_tx_dma_done = true;
  16. }
  17. stat_tx_chn = dma_check_transfer_status(IMU_UART3_DMA_CONTROLLER, IMU_UART3_TX_DMA_CH);
  18. if (stat_tx_chn & DMA_CHANNEL_STATUS_TC) {
  19. uart3_tx_dma_done = true;
  20. }
  21. }