VSF Documented
usart_template.inc
Go to the documentation of this file.
1/*****************************************************************************
2 * Copyright(C)2009-2022 by VSF Team *
3 * *
4 * Licensed under the Apache License, Version 2.0 (the "License"); *
5 * you may not use this file except in compliance with the License. *
6 * You may obtain a copy of the License at *
7 * *
8 * http://www.apache.org/licenses/LICENSE-2.0 *
9 * *
10 * Unless required by applicable law or agreed to in writing, software *
11 * distributed under the License is distributed on an "AS IS" BASIS, *
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. *
13 * See the License for the specific language governing permissions and *
14 * limitations under the License. *
15 * *
16 ****************************************************************************/
17
18#if VSF_HAL_USE_USART == ENABLED
19
20/*============================ INCLUDES ======================================*/
21/*============================ MACROS ========================================*/
22
23#ifndef VSF_USART_CFG_REIMPLEMENT_API_REQUEST
24# define VSF_USART_CFG_REIMPLEMENT_API_REQUEST DISABLED
25#endif
26
27#ifndef VSF_USART_CFG_REIMPLEMENT_API_CAPABILITY
28# define VSF_USART_CFG_REIMPLEMENT_API_CAPABILITY DISABLED
29#endif
30
31#ifndef VSF_USART_CFG_REIMPLEMENT_API_CTRL
32# define VSF_USART_CFG_REIMPLEMENT_API_CTRL DISABLED
33#endif
34
35#ifndef VSF_USART_CFG_REIMPLEMENT_API_GET_CONFIGURATION
36# define VSF_USART_CFG_REIMPLEMENT_API_GET_CONFIGURATION DISABLED
37#endif
38
39#ifdef VSF_USART_CFG_IMP_REMAP_PREFIX
40# undef VSF_USART_CFG_REIMPLEMENT_API_REQUEST
41# undef VSF_USART_CFG_REIMPLEMENT_API_CAPABILITY
42# undef VSF_USART_CFG_REIMPLEMENT_API_CTRL
43# undef VSF_USART_CFG_REIMPLEMENT_API_GET_CONFIGURATION
44# define VSF_USART_CFG_REIMPLEMENT_API_REQUEST ENABLED
45# define VSF_USART_CFG_REIMPLEMENT_API_CAPABILITY ENABLED
46# define VSF_USART_CFG_REIMPLEMENT_API_CTRL ENABLED
47# define VSF_USART_CFG_REIMPLEMENT_API_GET_CONFIGURATION ENABLED
48#endif
49
50#if VSF_USART_CFG_REIMPLEMENT_API_CAPABILITY == DISABLED
51# ifndef VSF_USART_CFG_CAPABILITY_IRQ_MASK
52# define VSF_USART_CFG_CAPABILITY_IRQ_MASK VSF_USART_IRQ_ALL_BITS_MASK
53# endif
54# ifndef VSF_USART_CFG_CAPABILITY_MAX_BAUDRATE
55# define VSF_USART_CFG_CAPABILITY_MAX_BAUDRATE 921600
56# endif
57# ifndef VSF_USART_CFG_CAPABILITY_MIN_BAUDRATE
58# define VSF_USART_CFG_CAPABILITY_MIN_BAUDRATE 4800
59# endif
60# ifndef VSF_USART_CFG_CAPABILITY_TXFIFO_DEPTH
61# define VSF_USART_CFG_CAPABILITY_TXFIFO_DEPTH 64
62# endif
63# ifndef VSF_USART_CFG_CAPABILITY_RXFIFO_DEPTH
64# define VSF_USART_CFG_CAPABILITY_RXFIFO_DEPTH 64
65# endif
66# ifndef VSF_USART_CFG_CAPABILITY_MAX_DATA_BITS
67# define VSF_USART_CFG_CAPABILITY_MAX_DATA_BITS 9
68# endif
69# ifndef VSF_USART_CFG_CAPABILITY_MIN_DATA_BITS
70# define VSF_USART_CFG_CAPABILITY_MIN_DATA_BITS 8
71# endif
72# ifndef VSF_USART_CFG_CAPABILITY_SUPPORT_RX_TIMEOUT
73# define VSF_USART_CFG_CAPABILITY_SUPPORT_RX_TIMEOUT 1
74# endif
75# ifndef VSF_USART_CFG_CAPABILITY_SUPPORT_SEND_BREAK
76# define VSF_USART_CFG_CAPABILITY_SUPPORT_SEND_BREAK 1
77# endif
78# ifndef VSF_USART_CFG_CAPABILITY_SUPPORT_SET_AND_CLEAR_BREAK
79# define VSF_USART_CFG_CAPABILITY_SUPPORT_SET_AND_CLEAR_BREAK 0
80# endif
81#endif
82
83#define vsf_real_usart_t VSF_MCONNECT(VSF_USART_CFG_IMP_PREFIX, _usart_t)
84#define vsf_real_usart_request_rx VSF_MCONNECT(VSF_USART_CFG_IMP_PREFIX, _usart_request_rx)
85#define vsf_real_usart_cancel_rx VSF_MCONNECT(VSF_USART_CFG_IMP_PREFIX, _usart_cancel_rx)
86#define vsf_real_usart_get_rx_count VSF_MCONNECT(VSF_USART_CFG_IMP_PREFIX, _usart_get_rx_count)
87#define vsf_real_usart_request_tx VSF_MCONNECT(VSF_USART_CFG_IMP_PREFIX, _usart_request_tx)
88#define vsf_real_usart_cancel_tx VSF_MCONNECT(VSF_USART_CFG_IMP_PREFIX, _usart_cancel_tx)
89#define vsf_real_usart_get_tx_count VSF_MCONNECT(VSF_USART_CFG_IMP_PREFIX, _usart_get_tx_count)
90#define vsf_real_usart_capability VSF_MCONNECT(VSF_USART_CFG_IMP_PREFIX, _usart_capability)
91#define vsf_real_usart_ctrl VSF_MCONNECT(VSF_USART_CFG_IMP_PREFIX, _usart_ctrl)
92#define vsf_real_usart_get_configuration VSF_MCONNECT(VSF_USART_CFG_IMP_PREFIX, _usart_get_configuration)
93#define vsf_real_usart_tx_send_break VSF_MCONNECT(VSF_USART_CFG_IMP_PREFIX, _usart_tx_send_break)
94
95/*============================ IMPLEMENTATION ================================*/
96
97#if VSF_USART_CFG_REIMPLEMENT_API_REQUEST == DISABLED
98
99vsf_err_t vsf_real_usart_request_rx(vsf_real_usart_t *usart_ptr, void *buffer_ptr, uint_fast32_t count)
100{
101 VSF_HAL_ASSERT(NULL != usart_ptr);
103 return VSF_ERR_FAIL;
104}
105
106vsf_err_t vsf_real_usart_cancel_rx(vsf_real_usart_t *usart_ptr)
107{
108 VSF_HAL_ASSERT(NULL != usart_ptr);
110 return VSF_ERR_FAIL;
111}
112
113int_fast32_t vsf_real_usart_get_rx_count(vsf_real_usart_t *usart_ptr)
114{
115 VSF_HAL_ASSERT(NULL != usart_ptr);
117 return -1;
118}
119
120vsf_err_t vsf_real_usart_request_tx(vsf_real_usart_t *usart_ptr, void *buffer_ptr, uint_fast32_t count)
121{
122 VSF_HAL_ASSERT(NULL != usart_ptr);
124 return VSF_ERR_FAIL;
125}
126
127vsf_err_t vsf_real_usart_cancel_tx(vsf_real_usart_t *usart_ptr)
128{
129 VSF_HAL_ASSERT(NULL != usart_ptr);
131 return VSF_ERR_FAIL;
132}
133
134int_fast32_t vsf_real_usart_get_tx_count(vsf_real_usart_t *usart_ptr)
135{
136 VSF_HAL_ASSERT(NULL != usart_ptr);
138 return -1;
139}
140
141#endif
142
143#if VSF_USART_CFG_REIMPLEMENT_API_CAPABILITY == DISABLED
144vsf_usart_capability_t vsf_real_usart_capability(vsf_real_usart_t *usart_ptr)
145{
146 VSF_HAL_ASSERT(NULL != usart_ptr);
147
148 vsf_usart_capability_t usart_capability = {
149 .irq_mask = VSF_USART_CFG_CAPABILITY_IRQ_MASK,
150 .max_baudrate = VSF_USART_CFG_CAPABILITY_MAX_BAUDRATE,
151 .min_baudrate = VSF_USART_CFG_CAPABILITY_MIN_BAUDRATE,
152 .txfifo_depth = VSF_USART_CFG_CAPABILITY_TXFIFO_DEPTH,
153 .rxfifo_depth = VSF_USART_CFG_CAPABILITY_RXFIFO_DEPTH,
154 .max_data_bits = VSF_USART_CFG_CAPABILITY_MAX_DATA_BITS,
155 .min_data_bits = VSF_USART_CFG_CAPABILITY_MIN_DATA_BITS,
156 .support_rx_timeout = VSF_USART_CFG_CAPABILITY_SUPPORT_RX_TIMEOUT,
157 .support_send_break = VSF_USART_CFG_CAPABILITY_SUPPORT_SEND_BREAK,
158 .support_set_and_clear_break = VSF_USART_CFG_CAPABILITY_SUPPORT_SET_AND_CLEAR_BREAK,
159 };
160
161 return usart_capability;
162}
163#endif
164
165#if VSF_USART_CFG_REIMPLEMENT_API_CTRL == DISABLED
166vsf_err_t vsf_real_usart_ctrl(vsf_real_usart_t *usart_ptr, vsf_usart_ctrl_t ctrl, void * param)
167{
168 VSF_HAL_ASSERT(NULL != usart_ptr);
169
170 // Default implementation: not supported, trigger assertion
172
173 return VSF_ERR_NOT_SUPPORT;
174}
175#endif
176
177#if VSF_USART_CFG_REIMPLEMENT_API_GET_CONFIGURATION == DISABLED
178vsf_err_t vsf_real_usart_get_configuration(vsf_real_usart_t *usart_ptr, vsf_usart_cfg_t *cfg_ptr)
179{
180 VSF_HAL_ASSERT(NULL != usart_ptr);
181 VSF_HAL_ASSERT(NULL != cfg_ptr);
182
183 // Default implementation: not supported, trigger assertion
185
186 return VSF_ERR_NOT_SUPPORT;
187}
188#endif
189
190/*============================ MACROS ========================================*/
191
192#undef VSF_USART_CFG_REIMPLEMENT_API_CAPABILITY
193#undef VSF_USART_CFG_CAPABILITY_IRQ_MASK
194#undef VSF_USART_CFG_CAPABILITY_MAX_BAUDRATE
195#undef VSF_USART_CFG_CAPABILITY_MIN_BAUDRATE
196#undef VSF_USART_CFG_CAPABILITY_TXFIFO_DEPTH
197#undef VSF_USART_CFG_CAPABILITY_RXFIFO_DEPTH
198#undef VSF_USART_CFG_CAPABILITY_MAX_DATA_BITS
199#undef VSF_USART_CFG_CAPABILITY_MIN_DATA_BITS
200#undef VSF_USART_CFG_CAPABILITY_SUPPORT_RX_TIMEOUT
201#undef VSF_USART_CFG_REIMPLEMENT_API_REQUEST
202#undef VSF_USART_CFG_REIMPLEMENT_API_CTRL
203#undef VSF_USART_CFG_REIMPLEMENT_API_GET_CONFIGURATION
204#undef vsf_real_usart_t
205#undef vsf_real_usart_init
206#undef vsf_real_usart_fini
207#undef vsf_real_usart_rxfifo_read
208#undef vsf_real_usart_txfifo_write
209#undef vsf_real_usart_irq_enable
210#undef vsf_real_usart_irq_disable
211#undef vsf_real_usart_request_rx
212#undef vsf_real_usart_cancel_rx
213#undef vsf_real_usart_get_rx_count
214#undef vsf_real_usart_request_tx
215#undef vsf_real_usart_cancel_tx
216#undef vsf_real_usart_get_tx_count
217#undef vsf_real_usart_capability
218#undef vsf_real_usart_ctrl
219#undef vsf_real_usart_get_configuration
220#undef vsf_real_usart_tx_send_break
221
222/*============================ IMPLEMENTATION ================================*/
223/*============================ MACROS ========================================*/
224
225#ifdef VSF_USART_CFG_IMP_REMAP_PREFIX
226# define vsf_imp_usart_t VSF_MCONNECT(VSF_USART_CFG_IMP_PREFIX, _usart_t)
227# define vsf_imp_usart_init VSF_MCONNECT(VSF_USART_CFG_IMP_PREFIX, _usart_init)
228# define vsf_imp_usart_fini VSF_MCONNECT(VSF_USART_CFG_IMP_PREFIX, _usart_fini)
229# define vsf_imp_usart_capability VSF_MCONNECT(VSF_USART_CFG_IMP_PREFIX, _usart_capability)
230# define vsf_imp_usart_enable VSF_MCONNECT(VSF_USART_CFG_IMP_PREFIX, _usart_enable)
231# define vsf_imp_usart_disable VSF_MCONNECT(VSF_USART_CFG_IMP_PREFIX, _usart_disable)
232# define vsf_imp_usart_irq_enable VSF_MCONNECT(VSF_USART_CFG_IMP_PREFIX, _usart_irq_enable)
233# define vsf_imp_usart_irq_disable VSF_MCONNECT(VSF_USART_CFG_IMP_PREFIX, _usart_irq_disable)
234# define vsf_imp_usart_status VSF_MCONNECT(VSF_USART_CFG_IMP_PREFIX, _usart_status)
235# define vsf_imp_usart_rxfifo_get_data_count VSF_MCONNECT(VSF_USART_CFG_IMP_PREFIX, _usart_rxfifo_get_data_count)
236# define vsf_imp_usart_rxfifo_read VSF_MCONNECT(VSF_USART_CFG_IMP_PREFIX, _usart_rxfifo_read)
237# define vsf_imp_usart_txfifo_get_free_count VSF_MCONNECT(VSF_USART_CFG_IMP_PREFIX, _usart_txfifo_get_free_count)
238# define vsf_imp_usart_txfifo_write VSF_MCONNECT(VSF_USART_CFG_IMP_PREFIX, _usart_txfifo_write)
239# define vsf_imp_usart_request_rx VSF_MCONNECT(VSF_USART_CFG_IMP_PREFIX, _usart_request_rx)
240# define vsf_imp_usart_request_tx VSF_MCONNECT(VSF_USART_CFG_IMP_PREFIX, _usart_request_tx)
241# define vsf_imp_usart_cancel_rx VSF_MCONNECT(VSF_USART_CFG_IMP_PREFIX, _usart_cancel_rx)
242# define vsf_imp_usart_cancel_tx VSF_MCONNECT(VSF_USART_CFG_IMP_PREFIX, _usart_cancel_tx)
243# define vsf_imp_usart_get_rx_count VSF_MCONNECT(VSF_USART_CFG_IMP_PREFIX, _usart_get_rx_count)
244# define vsf_imp_usart_get_tx_count VSF_MCONNECT(VSF_USART_CFG_IMP_PREFIX, _usart_get_tx_count)
245# define vsf_imp_usart_ctrl VSF_MCONNECT(VSF_USART_CFG_IMP_PREFIX, _usart_ctrl)
246# define vsf_imp_usart_get_configuration VSF_MCONNECT(VSF_USART_CFG_IMP_PREFIX, _usart_get_configuration)
247
248# define vsf_remap_usart_t VSF_MCONNECT(VSF_USART_CFG_IMP_REMAP_PREFIX, _usart_t)
249# define vsf_remap_usart_init VSF_MCONNECT(VSF_USART_CFG_IMP_REMAP_PREFIX, _usart_init)
250# define vsf_remap_usart_fini VSF_MCONNECT(VSF_USART_CFG_IMP_REMAP_PREFIX, _usart_fini)
251# define vsf_remap_usart_capability VSF_MCONNECT(VSF_USART_CFG_IMP_REMAP_PREFIX, _usart_capability)
252# define vsf_remap_usart_enable VSF_MCONNECT(VSF_USART_CFG_IMP_REMAP_PREFIX, _usart_enable)
253# define vsf_remap_usart_disable VSF_MCONNECT(VSF_USART_CFG_IMP_REMAP_PREFIX, _usart_disable)
254# define vsf_remap_usart_irq_enable VSF_MCONNECT(VSF_USART_CFG_IMP_REMAP_PREFIX, _usart_irq_enable)
255# define vsf_remap_usart_irq_disable VSF_MCONNECT(VSF_USART_CFG_IMP_REMAP_PREFIX, _usart_irq_disable)
256# define vsf_remap_usart_status VSF_MCONNECT(VSF_USART_CFG_IMP_REMAP_PREFIX, _usart_status)
257# define vsf_remap_usart_rxfifo_get_data_count VSF_MCONNECT(VSF_USART_CFG_IMP_REMAP_PREFIX, _usart_rxfifo_get_data_count)
258# define vsf_remap_usart_rxfifo_read VSF_MCONNECT(VSF_USART_CFG_IMP_REMAP_PREFIX, _usart_rxfifo_read)
259# define vsf_remap_usart_txfifo_get_free_count VSF_MCONNECT(VSF_USART_CFG_IMP_REMAP_PREFIX, _usart_txfifo_get_free_count)
260# define vsf_remap_usart_txfifo_write VSF_MCONNECT(VSF_USART_CFG_IMP_REMAP_PREFIX, _usart_txfifo_write)
261# define vsf_remap_usart_request_rx VSF_MCONNECT(VSF_USART_CFG_IMP_REMAP_PREFIX, _usart_request_rx)
262# define vsf_remap_usart_request_tx VSF_MCONNECT(VSF_USART_CFG_IMP_REMAP_PREFIX, _usart_request_tx)
263# define vsf_remap_usart_cancel_rx VSF_MCONNECT(VSF_USART_CFG_IMP_REMAP_PREFIX, _usart_cancel_rx)
264# define vsf_remap_usart_cancel_tx VSF_MCONNECT(VSF_USART_CFG_IMP_REMAP_PREFIX, _usart_cancel_tx)
265# define vsf_remap_usart_get_rx_count VSF_MCONNECT(VSF_USART_CFG_IMP_REMAP_PREFIX, _usart_get_rx_count)
266# define vsf_remap_usart_get_tx_count VSF_MCONNECT(VSF_USART_CFG_IMP_REMAP_PREFIX, _usart_get_tx_count)
267# define vsf_remap_usart_ctrl VSF_MCONNECT(VSF_USART_CFG_IMP_REMAP_PREFIX, _usart_ctrl)
268# define vsf_remap_usart_get_configuration VSF_MCONNECT(VSF_USART_CFG_IMP_REMAP_PREFIX, _usart_get_configuration)
269# define VSF_USART_CFG_IMP_REMAP_FUNCTIONS \
270 vsf_err_t vsf_imp_usart_init(vsf_imp_usart_t *usart_ptr, vsf_usart_cfg_t *cfg_ptr) \
271 { \
272 VSF_HAL_ASSERT(usart_ptr != NULL); \
273 return vsf_remap_usart_init(usart_ptr, cfg_ptr); \
274 } \
275 void vsf_imp_usart_fini(vsf_imp_usart_t *usart_ptr) \
276 { \
277 VSF_HAL_ASSERT(usart_ptr != NULL); \
278 vsf_remap_usart_fini(usart_ptr); \
279 } \
280 fsm_rt_t vsf_imp_usart_enable(vsf_imp_usart_t *usart_ptr) \
281 { \
282 VSF_HAL_ASSERT(usart_ptr != NULL); \
283 return vsf_remap_usart_enable(usart_ptr); \
284 } \
285 fsm_rt_t vsf_imp_usart_disable(vsf_imp_usart_t *usart_ptr) \
286 { \
287 VSF_HAL_ASSERT(usart_ptr != NULL); \
288 return vsf_remap_usart_disable(usart_ptr); \
289 } \
290 void vsf_imp_usart_irq_enable(vsf_imp_usart_t *usart_ptr, vsf_usart_irq_mask_t irq_mask) \
291 { \
292 VSF_HAL_ASSERT(usart_ptr != NULL); \
293 vsf_remap_usart_irq_enable(usart_ptr, irq_mask); \
294 } \
295 void vsf_imp_usart_irq_disable(vsf_imp_usart_t *usart_ptr, vsf_usart_irq_mask_t irq_mask) \
296 { \
297 VSF_HAL_ASSERT(usart_ptr != NULL); \
298 vsf_remap_usart_irq_disable(usart_ptr, irq_mask); \
299 } \
300 vsf_usart_status_t vsf_imp_usart_status(vsf_imp_usart_t *usart_ptr) \
301 { \
302 VSF_HAL_ASSERT(usart_ptr != NULL); \
303 return vsf_remap_usart_status(usart_ptr); \
304 } \
305 vsf_usart_capability_t vsf_imp_usart_capability(vsf_imp_usart_t *usart_ptr) \
306 { \
307 VSF_HAL_ASSERT(usart_ptr != NULL); \
308 return vsf_remap_usart_capability(usart_ptr); \
309 } \
310 uint_fast16_t vsf_imp_usart_rxfifo_get_data_count(vsf_imp_usart_t *usart_ptr) \
311 { \
312 VSF_HAL_ASSERT(usart_ptr != NULL); \
313 return vsf_remap_usart_rxfifo_get_data_count(usart_ptr); \
314 } \
315 uint_fast16_t vsf_imp_usart_rxfifo_read(vsf_imp_usart_t *usart_ptr, void *buffer_ptr, uint_fast16_t count) \
316 { \
317 VSF_HAL_ASSERT(usart_ptr != NULL); \
318 return vsf_remap_usart_rxfifo_read(usart_ptr, buffer_ptr, count); \
319 } \
320 uint_fast16_t vsf_imp_usart_txfifo_get_free_count(vsf_imp_usart_t *usart_ptr) \
321 { \
322 VSF_HAL_ASSERT(usart_ptr != NULL); \
323 return vsf_remap_usart_txfifo_get_free_count(usart_ptr); \
324 } \
325 uint_fast16_t vsf_imp_usart_txfifo_write(vsf_imp_usart_t *usart_ptr, void *buffer_ptr, uint_fast16_t count) \
326 { \
327 VSF_HAL_ASSERT(usart_ptr != NULL); \
328 return vsf_remap_usart_txfifo_write(usart_ptr, buffer_ptr, count); \
329 } \
330 vsf_err_t vsf_imp_usart_request_rx(vsf_imp_usart_t *usart_ptr, void *buffer_ptr, uint_fast32_t count) \
331 { \
332 VSF_HAL_ASSERT(usart_ptr != NULL); \
333 return vsf_remap_usart_request_rx(usart_ptr, buffer_ptr, count); \
334 } \
335 vsf_err_t vsf_imp_usart_request_tx(vsf_imp_usart_t *usart_ptr, void *buffer_ptr, uint_fast32_t count) \
336 { \
337 VSF_HAL_ASSERT(usart_ptr != NULL); \
338 return vsf_remap_usart_request_tx(usart_ptr, buffer_ptr, count); \
339 } \
340 vsf_err_t vsf_imp_usart_cancel_rx(vsf_imp_usart_t *usart_ptr) \
341 { \
342 VSF_HAL_ASSERT(usart_ptr != NULL); \
343 return vsf_remap_usart_cancel_rx(usart_ptr); \
344 } \
345 vsf_err_t vsf_imp_usart_cancel_tx(vsf_imp_usart_t *usart_ptr) \
346 { \
347 VSF_HAL_ASSERT(usart_ptr != NULL); \
348 return vsf_remap_usart_cancel_tx(usart_ptr); \
349 } \
350 int_fast32_t vsf_imp_usart_get_rx_count(vsf_imp_usart_t *usart_ptr) \
351 { \
352 VSF_HAL_ASSERT(usart_ptr != NULL); \
353 return vsf_remap_usart_get_rx_count(usart_ptr); \
354 } \
355 int_fast32_t vsf_imp_usart_get_tx_count(vsf_imp_usart_t *usart_ptr) \
356 { \
357 VSF_HAL_ASSERT(usart_ptr != NULL); \
358 return vsf_remap_usart_get_tx_count(usart_ptr); \
359 } \
360 vsf_err_t vsf_imp_usart_ctrl(vsf_imp_usart_t *usart_ptr, vsf_usart_ctrl_t ctrl, void *param) \
361 { \
362 VSF_HAL_ASSERT(usart_ptr != NULL); \
363 return vsf_remap_usart_ctrl(usart_ptr, ctrl, param); \
364 } \
365 vsf_err_t vsf_imp_usart_get_configuration(vsf_imp_usart_t *usart_ptr, vsf_usart_cfg_t *cfg_ptr) \
366 { \
367 VSF_HAL_ASSERT(usart_ptr != NULL); \
368 VSF_HAL_ASSERT(cfg_ptr != NULL); \
369 return vsf_remap_usart_get_configuration(usart_ptr, cfg_ptr); \
370 }
371#endif
372
373/*============================ GLOBAL VARIABLES ==============================*/
374
375#define VSF_HAL_TEMPLATE_IMP_NAME _usart
376#define VSF_HAL_TEMPLATE_IMP_UPCASE_NAME _USART
377
378#if !defined(VSF_USART_CFG_IMP_PREFIX) && !defined(VSF_USART_CFG_IMP_DEVICE_PREFIX)
379# error "Please define VSF_USART_CFG_IMP_PREFIX in usart driver"
380#endif
381
382#if !defined(VSF_USART_CFG_IMP_UPCASE_PREFIX) && !defined(VSF_USART_CFG_IMP_DEVICE_UPCASE_PREFIX)
383# error "Please define VSF_USART_CFG_IMP_UPCASE_PREFIX in usart driver"
384#endif
385
386#ifndef VSF_USART_CFG_IMP_COUNT_MASK_PREFIX
387# define VSF_USART_CFG_IMP_COUNT_MASK_PREFIX VSF_USART_CFG_IMP_UPCASE_PREFIX
388#endif
389
390#ifdef VSF_USART_CFG_IMP_REMAP_FUNCTIONS
391# define VSF_HAL_CFG_IMP_REMAP_FUNCTIONS VSF_USART_CFG_IMP_REMAP_FUNCTIONS
392#endif
393
395
396#undef VSF_USART_CFG_IMP_PREFIX
397#undef VSF_USART_CFG_IMP_COUNT_MASK_PREFIX
398#undef VSF_USART_CFG_IMP_UPCASE_PREFIX
399#undef VSF_USART_CFG_IMP_DEVICE_PREFIX
400#undef VSF_USART_CFG_IMP_DEVICE_UPCASE_PREFIX
401#undef VSF_USART_CFG_IMP_REMAP_PREFIX
402#undef VSF_USART_CFG_IMP_LV0
403#undef VSF_USART_CFG_IMP_REMAP_FUNCTIONS
404#undef VSF_USART_CFG_IMP_HAS_OP
405#undef VSF_USART_CFG_IMP_EXTERN_OP
406
407#undef vsf_imp_usart_t
408#undef vsf_imp_usart_init
409#undef vsf_imp_usart_fini
410#undef vsf_imp_usart_capability
411#undef vsf_imp_usart_enable
412#undef vsf_imp_usart_disable
413#undef vsf_imp_usart_irq_enable
414#undef vsf_imp_usart_irq_disable
415#undef vsf_imp_usart_status
416#undef vsf_imp_usart_rxfifo_get_data_count
417#undef vsf_imp_usart_rxfifo_read
418#undef vsf_imp_usart_txfifo_get_free_count
419#undef vsf_imp_usart_txfifo_write
420#undef vsf_imp_usart_request_rx
421#undef vsf_imp_usart_request_tx
422#undef vsf_imp_usart_cancel_rx
423#undef vsf_imp_usart_cancel_tx
424#undef vsf_imp_usart_get_rx_count
425#undef vsf_imp_usart_get_tx_count
426#undef vsf_imp_usart_ctrl
427#undef vsf_imp_usart_get_configuration
428#undef vsf_imp_usart_tx_send_break
429
430#undef vsf_remap_usart_t
431#undef vsf_remap_usart_init
432#undef vsf_remap_usart_fini
433#undef vsf_remap_usart_capability
434#undef vsf_remap_usart_enable
435#undef vsf_remap_usart_disable
436#undef vsf_remap_usart_irq_enable
437#undef vsf_remap_usart_irq_disable
438#undef vsf_remap_usart_status
439#undef vsf_remap_usart_rxfifo_get_data_count
440#undef vsf_remap_usart_rxfifo_read
441#undef vsf_remap_usart_txfifo_get_free_count
442#undef vsf_remap_usart_txfifo_write
443#undef vsf_remap_usart_request_rx
444#undef vsf_remap_usart_request_tx
445#undef vsf_remap_usart_cancel_rx
446#undef vsf_remap_usart_cancel_tx
447#undef vsf_remap_usart_get_rx_count
448#undef vsf_remap_usart_get_tx_count
449#undef vsf_remap_usart_ctrl
450#undef vsf_remap_usart_get_configuration
451#undef vsf_remap_usart_tx_send_break
452
453#endif /* VSF_HAL_USE_USART */
vsf_err_t
Definition __type.h:42
@ VSF_ERR_NOT_SUPPORT
function not supported
Definition __type.h:46
@ VSF_ERR_FAIL
failed
Definition __type.h:51
#define NULL
Definition lvgl.h:26
unsigned int uint_fast32_t
Definition stdint.h:27
int int_fast32_t
Definition stdint.h:26
USART capability structure Defines the hardware capabilities and limitations of the USART interface.
Definition vsf_template_usart.h:797
vsf_usart_irq_mask_t irq_mask
Definition usart.h:387
USART configuration structure Contains all parameters needed to initialize and configure a USART inst...
Definition vsf_template_usart.h:687
#define VSF_HAL_ASSERT(__CON)
all hal modules use this configuration file
Definition vsf_hal_cfg.h:36
vsf_usart_ctrl_t
USART control commands Defines the available control operations for USART instances.
Definition vsf_template_usart.h:707
Generated from commit: vsfteam/vsf@74aa6ce