Kestrel Interface
Loading...
Searching...
No Matches
kest_printf.c
Go to the documentation of this file.
1
#include <stdarg.h>
2
#include "
kest_int.h
"
3
4
static
const
char
*FNAME =
"kest_printf.c"
;
5
6
int
prints_initd
= 0;
7
#ifdef KEST_USE_FREERTOS
8
static
SemaphoreHandle_t print_mutex;
9
#endif
10
11
void
kest_printf_init
()
12
{
13
#ifdef KEST_ENABLE_PRINTF
14
#ifdef KEST_USE_FREERTOS
15
print_mutex = xSemaphoreCreateMutex();
16
#endif
17
prints_initd
= 1;
18
#endif
19
}
20
21
void
kest_printf
(
const
char
*fmt, ...)
22
{
23
#ifdef KEST_ENABLE_PRINTF
24
#ifdef KEST_USE_FREERTOS
25
if
(!
prints_initd
|| xSemaphoreTake(print_mutex, portMAX_DELAY) != pdPASS)
return
;
26
#endif
27
28
char
buf[1024];
29
va_list args;
30
va_start(args, fmt);
31
vsnprintf(buf, 1024, fmt, args);
32
va_end(args);
33
34
fputs(buf, stdout);
35
36
#ifdef KEST_USE_FREERTOS
37
xSemaphoreGive(print_mutex);
38
#endif
39
#endif
40
}
kest_int.h
kest_printf
void kest_printf(const char *fmt,...)
Definition
kest_printf.c:21
kest_printf_init
void kest_printf_init()
Definition
kest_printf.c:11
prints_initd
int prints_initd
Definition
kest_printf.c:6
components
core
kest_printf.c
Generated by
1.14.0