hard_hdma_int.c 987 B

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