22#include "ms_semaphore.h"
32#define MAX_LOG_SIZE (size_t)200
33#define LOG_TIMEOUT_MS 10
37#define LOG_UART_PORT UART_PORT_1
38#define LOG_GPIO_PORT GPIO_PORT_B
44#define LOG_UART_PORT UART_PORT_1
45#define LOG_GPIO_PORT GPIO_PORT_A
51#define LOG_UART_PORT UART_PORT_3
52#define LOG_GPIO_PORT GPIO_PORT_C
58#define LOG_UART_PORT UART_PORT_1
62#define LOG_GPIO_PORT GPIO_PORT_B
74#define IN_ORDER_LOGS 1
84extern char g_log_buffer[MAX_LOG_SIZE];
87#define LOG_DEBUG(fmt, ...) LOG(LOG_LEVEL_DEBUG, fmt, ##__VA_ARGS__)
88#define LOG_WARN(fmt, ...) LOG(LOG_LEVEL_WARN, fmt, ##__VA_ARGS__)
89#define LOG_CRITICAL(fmt, ...) LOG(LOG_LEVEL_CRITICAL, fmt, ##__VA_ARGS__)
92 { uart_init(LOG_UART_PORT, &log_uart_settings); }
95#define LOG(level, fmt, ...) printf("[%u] %s:%u: " fmt, (level), __FILE__, __LINE__, ##__VA_ARGS__)
97#define LOG(level, fmt, ...) \
99 if (xTaskGetSchedulerState() == taskSCHEDULER_RUNNING) { \
100 size_t msg_size = (size_t)snprintf(g_log_buffer, MAX_LOG_SIZE, "\r[%u] %s:%u: " fmt, (level), __FILE__, __LINE__, ##__VA_ARGS__); \
101 uart_tx(LOG_UART_PORT, (uint8_t *)g_log_buffer, msg_size); \
105#define LOG(level, fmt, ...) \
LogLevel
Definition: log.h:77
@ LOG_LEVEL_CRITICAL
Definition: log.h:80
@ NUM_LOG_LEVELS
Definition: log.h:81
@ LOG_LEVEL_DEBUG
Definition: log.h:78
@ LOG_LEVEL_WARN
Definition: log.h:79
UART Settings.
Definition: network.h:67