3#include "ch32_uart.hpp"
7extern "C" void DMA1_Channel4_IRQHandler(
void) __attribute__((interrupt));
8extern "C" void DMA1_Channel7_IRQHandler(
void) __attribute__((interrupt));
9extern "C" void DMA1_Channel2_IRQHandler(
void) __attribute__((interrupt));
11extern "C" void DMA1_Channel4_IRQHandler(
void)
13 LibXR::CH32UART::TxDmaIRQHandler(DMA1_Channel4, ch32_uart_id_t::CH32_USART1);
16extern "C" void DMA1_Channel7_IRQHandler(
void)
18 LibXR::CH32UART::TxDmaIRQHandler(DMA1_Channel7, ch32_uart_id_t::CH32_USART2);
21extern "C" void DMA1_Channel2_IRQHandler(
void)
23 LibXR::CH32UART::TxDmaIRQHandler(DMA1_Channel2, ch32_uart_id_t::CH32_USART3);
26#if !defined(DMA2_BASE)
27extern "C" void DMA1_Channel8_IRQHandler(
void) __attribute__((interrupt));
28extern "C" void DMA1_Channel8_IRQHandler(
void)
30 LibXR::CH32UART::RxDmaIRQHandler(DMA1_Channel8, ch32_uart_id_t::CH32_UART4);
33extern "C" void DMA1_Channel1_IRQHandler(
void) __attribute__((interrupt));
34extern "C" void DMA1_Channel1_IRQHandler(
void)
36 LibXR::CH32UART::TxDmaIRQHandler(DMA1_Channel1, ch32_uart_id_t::CH32_UART4);
42extern "C" void DMA2_Channel5_IRQHandler(
void) __attribute__((interrupt));
43extern "C" void DMA2_Channel4_IRQHandler(
void) __attribute__((interrupt));
44extern "C" void DMA2_Channel6_IRQHandler(
void) __attribute__((interrupt));
45extern "C" void DMA2_Channel8_IRQHandler(
void) __attribute__((interrupt));
46extern "C" void DMA2_Channel10_IRQHandler(
void) __attribute__((interrupt));
48extern "C" void DMA2_Channel5_IRQHandler(
void)
50 LibXR::CH32UART::TxDmaIRQHandler(DMA2_Channel5, ch32_uart_id_t::CH32_UART4);
53extern "C" void DMA2_Channel4_IRQHandler(
void)
55 LibXR::CH32UART::TxDmaIRQHandler(DMA2_Channel4, ch32_uart_id_t::CH32_UART5);
58extern "C" void DMA2_Channel6_IRQHandler(
void)
60 LibXR::CH32UART::TxDmaIRQHandler(DMA2_Channel6, ch32_uart_id_t::CH32_UART6);
63extern "C" void DMA2_Channel8_IRQHandler(
void)
65 LibXR::CH32UART::TxDmaIRQHandler(DMA2_Channel8, ch32_uart_id_t::CH32_UART7);
68extern "C" void DMA2_Channel10_IRQHandler(
void)
70 LibXR::CH32UART::TxDmaIRQHandler(DMA2_Channel10, ch32_uart_id_t::CH32_UART8);
75extern "C" void DMA2_Channel3_IRQHandler(
void) __attribute__((interrupt));
76extern "C" void DMA2_Channel2_IRQHandler(
void) __attribute__((interrupt));
77extern "C" void DMA2_Channel7_IRQHandler(
void) __attribute__((interrupt));
78extern "C" void DMA2_Channel9_IRQHandler(
void) __attribute__((interrupt));
79extern "C" void DMA2_Channel11_IRQHandler(
void) __attribute__((interrupt));
81extern "C" void DMA2_Channel3_IRQHandler(
void)
83 LibXR::CH32UART::RxDmaIRQHandler(DMA2_Channel3, ch32_uart_id_t::CH32_UART4);
86extern "C" void DMA2_Channel2_IRQHandler(
void)
88 LibXR::CH32UART::RxDmaIRQHandler(DMA2_Channel2, ch32_uart_id_t::CH32_UART5);
91extern "C" void DMA2_Channel7_IRQHandler(
void)
93 LibXR::CH32UART::RxDmaIRQHandler(DMA2_Channel7, ch32_uart_id_t::CH32_UART6);
96extern "C" void DMA2_Channel9_IRQHandler(
void)
98 LibXR::CH32UART::RxDmaIRQHandler(DMA2_Channel9, ch32_uart_id_t::CH32_UART7);
101extern "C" void DMA2_Channel11_IRQHandler(
void)
103 LibXR::CH32UART::RxDmaIRQHandler(DMA2_Channel11, ch32_uart_id_t::CH32_UART8);
108extern "C" void DMA1_Channel5_IRQHandler(
void) __attribute__((interrupt));
109extern "C" void DMA1_Channel6_IRQHandler(
void) __attribute__((interrupt));
110extern "C" void DMA1_Channel3_IRQHandler(
void) __attribute__((interrupt));
112extern "C" void DMA1_Channel5_IRQHandler(
void)
114 LibXR::CH32UART::RxDmaIRQHandler(DMA1_Channel5, ch32_uart_id_t::CH32_USART1);
117extern "C" void DMA1_Channel6_IRQHandler(
void)
119 LibXR::CH32UART::RxDmaIRQHandler(DMA1_Channel6, ch32_uart_id_t::CH32_USART2);
122extern "C" void DMA1_Channel3_IRQHandler(
void)
124 LibXR::CH32UART::RxDmaIRQHandler(DMA1_Channel3, ch32_uart_id_t::CH32_USART3);
127ch32_dma_channel_t CH32_DMA_GetID(DMA_Channel_TypeDef *channel)
129#if defined(DMA1_Channel1)
130 if (channel == DMA1_Channel1)
132 return CH32_DMA1_CHANNEL1;
136#if defined(DMA1_Channel2)
137 if (channel == DMA1_Channel2)
139 return CH32_DMA1_CHANNEL2;
143#if defined(DMA1_Channel3)
144 if (channel == DMA1_Channel3)
146 return CH32_DMA1_CHANNEL3;
150#if defined(DMA1_Channel4)
151 if (channel == DMA1_Channel4)
153 return CH32_DMA1_CHANNEL4;
157#if defined(DMA1_Channel5)
158 if (channel == DMA1_Channel5)
160 return CH32_DMA1_CHANNEL5;
164#if defined(DMA1_Channel6)
165 if (channel == DMA1_Channel6)
167 return CH32_DMA1_CHANNEL6;
171#if defined(DMA1_Channel7)
172 if (channel == DMA1_Channel7)
174 return CH32_DMA1_CHANNEL7;
178#if defined(DMA1_Channel8)
179 if (channel == DMA1_Channel8)
181 return CH32_DMA1_CHANNEL8;
185#if defined(DMA2_Channel1)
186 if (channel == DMA2_Channel1)
188 return CH32_DMA2_CHANNEL1;
192#if defined(DMA2_Channel2)
193 if (channel == DMA2_Channel2)
195 return CH32_DMA2_CHANNEL2;
199#if defined(DMA2_Channel3)
200 if (channel == DMA2_Channel3)
202 return CH32_DMA2_CHANNEL3;
206#if defined(DMA2_Channel4)
207 if (channel == DMA2_Channel4)
209 return CH32_DMA2_CHANNEL4;
213#if defined(DMA2_Channel5)
214 if (channel == DMA2_Channel5)
216 return CH32_DMA2_CHANNEL5;
220#if defined(DMA2_Channel6)
221 if (channel == DMA2_Channel6)
223 return CH32_DMA2_CHANNEL6;
227#if defined(DMA2_Channel7)
228 if (channel == DMA2_Channel7)
230 return CH32_DMA2_CHANNEL7;
234#if defined(DMA2_Channel8)
235 if (channel == DMA2_Channel8)
237 return CH32_DMA2_CHANNEL8;
241#if defined(DMA2_Channel9)
242 if (channel == DMA2_Channel9)
244 return CH32_DMA2_CHANNEL9;
248#if defined(DMA2_Channel10)
249 if (channel == DMA2_Channel10)
251 return CH32_DMA2_CHANNEL10;
255#if defined(DMA2_Channel11)
256 if (channel == DMA2_Channel11)
258 return CH32_DMA2_CHANNEL11;
262 return CH32_DMA_CHANNEL_NONE;
265DMA_Channel_TypeDef *CH32_DMA_GetChannel(ch32_dma_channel_t
id)
267#if defined(DMA1_Channel1)
268 if (
id == CH32_DMA1_CHANNEL1)
270 return DMA1_Channel1;
274#if defined(DMA1_Channel2)
275 if (
id == CH32_DMA1_CHANNEL2)
277 return DMA1_Channel2;
281#if defined(DMA1_Channel3)
282 if (
id == CH32_DMA1_CHANNEL3)
284 return DMA1_Channel3;
288#if defined(DMA1_Channel4)
289 if (
id == CH32_DMA1_CHANNEL4)
291 return DMA1_Channel4;
295#if defined(DMA1_Channel5)
296 if (
id == CH32_DMA1_CHANNEL5)
298 return DMA1_Channel5;
302#if defined(DMA1_Channel6)
303 if (
id == CH32_DMA1_CHANNEL6)
305 return DMA1_Channel6;
309#if defined(DMA1_Channel7)
310 if (
id == CH32_DMA1_CHANNEL7)
312 return DMA1_Channel7;
316#if defined(DMA2_Channel1)
317 if (
id == CH32_DMA2_CHANNEL1)
319 return DMA2_Channel1;
323#if defined(DMA2_Channel2)
324 if (
id == CH32_DMA2_CHANNEL2)
326 return DMA2_Channel2;
330#if defined(DMA2_Channel3)
331 if (
id == CH32_DMA2_CHANNEL3)
333 return DMA2_Channel3;
337#if defined(DMA2_Channel4)
338 if (
id == CH32_DMA2_CHANNEL4)
340 return DMA2_Channel4;
344#if defined(DMA2_Channel5)
345 if (
id == CH32_DMA2_CHANNEL5)
347 return DMA2_Channel5;
351#if defined(DMA2_Channel6)
352 if (
id == CH32_DMA2_CHANNEL6)
354 return DMA2_Channel6;
358#if defined(DMA2_Channel7)
359 if (
id == CH32_DMA2_CHANNEL7)
361 return DMA2_Channel7;
365#if defined(DMA2_Channel8)
366 if (
id == CH32_DMA2_CHANNEL8)
368 return DMA2_Channel8;
372#if defined(DMA2_Channel9)
373 if (
id == CH32_DMA2_CHANNEL9)
375 return DMA2_Channel9;
379#if defined(DMA2_Channel10)
380 if (
id == CH32_DMA2_CHANNEL10)
382 return DMA2_Channel10;
386#if defined(DMA2_Channel11)
387 if (
id == CH32_DMA2_CHANNEL11)
389 return DMA2_Channel11;