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));
10extern "C" void DMA2_Channel5_IRQHandler(
void) __attribute__((interrupt));
11extern "C" void DMA2_Channel4_IRQHandler(
void) __attribute__((interrupt));
12extern "C" void DMA2_Channel6_IRQHandler(
void) __attribute__((interrupt));
13extern "C" void DMA2_Channel8_IRQHandler(
void) __attribute__((interrupt));
14extern "C" void DMA2_Channel10_IRQHandler(
void) __attribute__((interrupt));
16extern "C" void DMA1_Channel4_IRQHandler(
void)
18 LibXR::CH32UART::TxDmaIRQHandler(DMA1_Channel4, ch32_uart_id_t::CH32_USART1);
21extern "C" void DMA1_Channel7_IRQHandler(
void)
23 LibXR::CH32UART::TxDmaIRQHandler(DMA1_Channel7, ch32_uart_id_t::CH32_USART2);
26extern "C" void DMA1_Channel2_IRQHandler(
void)
28 LibXR::CH32UART::TxDmaIRQHandler(DMA1_Channel2, ch32_uart_id_t::CH32_USART3);
31extern "C" void DMA2_Channel5_IRQHandler(
void)
33 LibXR::CH32UART::TxDmaIRQHandler(DMA2_Channel5, ch32_uart_id_t::CH32_UART4);
36extern "C" void DMA2_Channel4_IRQHandler(
void)
38 LibXR::CH32UART::TxDmaIRQHandler(DMA2_Channel4, ch32_uart_id_t::CH32_UART5);
41extern "C" void DMA2_Channel6_IRQHandler(
void)
43 LibXR::CH32UART::TxDmaIRQHandler(DMA2_Channel6, ch32_uart_id_t::CH32_UART6);
46extern "C" void DMA2_Channel8_IRQHandler(
void)
48 LibXR::CH32UART::TxDmaIRQHandler(DMA2_Channel8, ch32_uart_id_t::CH32_UART7);
51extern "C" void DMA2_Channel10_IRQHandler(
void)
53 LibXR::CH32UART::TxDmaIRQHandler(DMA2_Channel10, ch32_uart_id_t::CH32_UART8);
58extern "C" void DMA1_Channel5_IRQHandler(
void) __attribute__((interrupt));
59extern "C" void DMA1_Channel6_IRQHandler(
void) __attribute__((interrupt));
60extern "C" void DMA1_Channel3_IRQHandler(
void) __attribute__((interrupt));
61extern "C" void DMA2_Channel3_IRQHandler(
void) __attribute__((interrupt));
62extern "C" void DMA2_Channel2_IRQHandler(
void) __attribute__((interrupt));
63extern "C" void DMA2_Channel7_IRQHandler(
void) __attribute__((interrupt));
64extern "C" void DMA2_Channel9_IRQHandler(
void) __attribute__((interrupt));
65extern "C" void DMA2_Channel11_IRQHandler(
void) __attribute__((interrupt));
67extern "C" void DMA1_Channel5_IRQHandler(
void)
69 LibXR::CH32UART::RxDmaIRQHandler(DMA1_Channel5, ch32_uart_id_t::CH32_USART1);
72extern "C" void DMA1_Channel6_IRQHandler(
void)
74 LibXR::CH32UART::RxDmaIRQHandler(DMA1_Channel6, ch32_uart_id_t::CH32_USART2);
77extern "C" void DMA1_Channel3_IRQHandler(
void)
79 LibXR::CH32UART::RxDmaIRQHandler(DMA1_Channel3, ch32_uart_id_t::CH32_USART3);
82extern "C" void DMA2_Channel3_IRQHandler(
void)
84 LibXR::CH32UART::RxDmaIRQHandler(DMA2_Channel3, ch32_uart_id_t::CH32_UART4);
87extern "C" void DMA2_Channel2_IRQHandler(
void)
89 LibXR::CH32UART::RxDmaIRQHandler(DMA2_Channel2, ch32_uart_id_t::CH32_UART5);
92extern "C" void DMA2_Channel7_IRQHandler(
void)
94 LibXR::CH32UART::RxDmaIRQHandler(DMA2_Channel7, ch32_uart_id_t::CH32_UART6);
97extern "C" void DMA2_Channel9_IRQHandler(
void)
99 LibXR::CH32UART::RxDmaIRQHandler(DMA2_Channel9, ch32_uart_id_t::CH32_UART7);
102extern "C" void DMA2_Channel11_IRQHandler(
void)
104 LibXR::CH32UART::RxDmaIRQHandler(DMA2_Channel11, ch32_uart_id_t::CH32_UART8);
107ch32_dma_channel_t CH32_DMA_GetID(DMA_Channel_TypeDef *channel)
109#if defined(DMA1_Channel1)
110 if (channel == DMA1_Channel1)
112 return CH32_DMA1_CHANNEL1;
116#if defined(DMA1_Channel2)
117 if (channel == DMA1_Channel2)
119 return CH32_DMA1_CHANNEL2;
123#if defined(DMA1_Channel3)
124 if (channel == DMA1_Channel3)
126 return CH32_DMA1_CHANNEL3;
130#if defined(DMA1_Channel4)
131 if (channel == DMA1_Channel4)
133 return CH32_DMA1_CHANNEL4;
137#if defined(DMA1_Channel5)
138 if (channel == DMA1_Channel5)
140 return CH32_DMA1_CHANNEL5;
144#if defined(DMA1_Channel6)
145 if (channel == DMA1_Channel6)
147 return CH32_DMA1_CHANNEL6;
151#if defined(DMA1_Channel7)
152 if (channel == DMA1_Channel7)
154 return CH32_DMA1_CHANNEL7;
158#if defined(DMA2_Channel1)
159 if (channel == DMA2_Channel1)
161 return CH32_DMA2_CHANNEL1;
165#if defined(DMA2_Channel2)
166 if (channel == DMA2_Channel2)
168 return CH32_DMA2_CHANNEL2;
172#if defined(DMA2_Channel3)
173 if (channel == DMA2_Channel3)
175 return CH32_DMA2_CHANNEL3;
179#if defined(DMA2_Channel4)
180 if (channel == DMA2_Channel4)
182 return CH32_DMA2_CHANNEL4;
186#if defined(DMA2_Channel5)
187 if (channel == DMA2_Channel5)
189 return CH32_DMA2_CHANNEL5;
193#if defined(DMA2_Channel6)
194 if (channel == DMA2_Channel6)
196 return CH32_DMA2_CHANNEL6;
200#if defined(DMA2_Channel7)
201 if (channel == DMA2_Channel7)
203 return CH32_DMA2_CHANNEL7;
207#if defined(DMA2_Channel8)
208 if (channel == DMA2_Channel8)
210 return CH32_DMA2_CHANNEL8;
214#if defined(DMA2_Channel9)
215 if (channel == DMA2_Channel9)
217 return CH32_DMA2_CHANNEL9;
221#if defined(DMA2_Channel10)
222 if (channel == DMA2_Channel10)
224 return CH32_DMA2_CHANNEL10;
228#if defined(DMA2_Channel11)
229 if (channel == DMA2_Channel11)
231 return CH32_DMA2_CHANNEL11;
235 return CH32_DMA_CHANNEL_NONE;
238DMA_Channel_TypeDef *CH32_DMA_GetChannel(ch32_dma_channel_t
id)
240#if defined(DMA1_Channel1)
241 if (
id == CH32_DMA1_CHANNEL1)
243 return DMA1_Channel1;
247#if defined(DMA1_Channel2)
248 if (
id == CH32_DMA1_CHANNEL2)
250 return DMA1_Channel2;
254#if defined(DMA1_Channel3)
255 if (
id == CH32_DMA1_CHANNEL3)
257 return DMA1_Channel3;
261#if defined(DMA1_Channel4)
262 if (
id == CH32_DMA1_CHANNEL4)
264 return DMA1_Channel4;
268#if defined(DMA1_Channel5)
269 if (
id == CH32_DMA1_CHANNEL5)
271 return DMA1_Channel5;
275#if defined(DMA1_Channel6)
276 if (
id == CH32_DMA1_CHANNEL6)
278 return DMA1_Channel6;
282#if defined(DMA1_Channel7)
283 if (
id == CH32_DMA1_CHANNEL7)
285 return DMA1_Channel7;
289#if defined(DMA2_Channel1)
290 if (
id == CH32_DMA2_CHANNEL1)
292 return DMA2_Channel1;
296#if defined(DMA2_Channel2)
297 if (
id == CH32_DMA2_CHANNEL2)
299 return DMA2_Channel2;
303#if defined(DMA2_Channel3)
304 if (
id == CH32_DMA2_CHANNEL3)
306 return DMA2_Channel3;
310#if defined(DMA2_Channel4)
311 if (
id == CH32_DMA2_CHANNEL4)
313 return DMA2_Channel4;
317#if defined(DMA2_Channel5)
318 if (
id == CH32_DMA2_CHANNEL5)
320 return DMA2_Channel5;
324#if defined(DMA2_Channel6)
325 if (
id == CH32_DMA2_CHANNEL6)
327 return DMA2_Channel6;
331#if defined(DMA2_Channel7)
332 if (
id == CH32_DMA2_CHANNEL7)
334 return DMA2_Channel7;
338#if defined(DMA2_Channel8)
339 if (
id == CH32_DMA2_CHANNEL8)
341 return DMA2_Channel8;
345#if defined(DMA2_Channel9)
346 if (
id == CH32_DMA2_CHANNEL9)
348 return DMA2_Channel9;
352#if defined(DMA2_Channel10)
353 if (
id == CH32_DMA2_CHANNEL10)
355 return DMA2_Channel10;
359#if defined(DMA2_Channel11)
360 if (
id == CH32_DMA2_CHANNEL11)
362 return DMA2_Channel11;