ra8-firmware 0.1.0
Bare-metal firmware for the Renesas RA8 family (RA8D2 / RA8P1)
Loading...
Searching...
No Matches
ra8_log.h
Go to the documentation of this file.
1
56
57#pragma once
58
59#ifdef __cplusplus
60extern "C" {
61#endif
62
63#include <stdint.h>
64
65/* =============================================================================
66 * Log levels
67 * =============================================================================
68 */
69
74#define RA8_LOG_LEVEL_NONE (0)
76#define RA8_LOG_LEVEL_ERROR (1)
78#define RA8_LOG_LEVEL_WARN (2)
80#define RA8_LOG_LEVEL_INFO (3)
82#define RA8_LOG_LEVEL_DEBUG (4)
83
91
92#ifndef RA8_LOG_LEVEL
93#ifdef DEBUG
95#define RA8_LOG_LEVEL RA8_LOG_LEVEL_INFO
96#else
98#define RA8_LOG_LEVEL RA8_LOG_LEVEL_WARN
99#endif
100#endif
101
102/* =============================================================================
103 * Backend entry points (implemented in ra8_log.c)
104 * =============================================================================
105 */
106
126void ra8_log_init(void);
127
144typedef void (*ra8_log_byte_sink_fn_t)(void* ctx, uint8_t byte);
145
169
187void ra8_log_emit_error(const char* tag, const char* message);
188
206void ra8_log_emit_warn(const char* tag, const char* message);
207
225void ra8_log_emit_info(const char* tag, const char* message);
226
244void ra8_log_emit_debug(const char* tag, const char* message);
245
264void ra8_log_emit_error_val(const char* tag, const char* message, uint32_t value);
265
284void ra8_log_emit_warn_val(const char* tag, const char* message, uint32_t value);
285
304void ra8_log_emit_info_val(const char* tag, const char* message, uint32_t value);
305
326void ra8_log_emit_debug_val(const char* tag, const char* message, int32_t value);
327
328/* =============================================================================
329 * Public macros (level-gated)
330 * =============================================================================
331 */
332
333#if RA8_LOG_LEVEL >= RA8_LOG_LEVEL_ERROR
335#define ra8_log_error(tag, message) ra8_log_emit_error((tag), (message))
337#define ra8_log_error_val(tag, message, value) ra8_log_emit_error_val((tag), (message), (value))
338#else
340#define ra8_log_error(tag, message) ((void)0)
342#define ra8_log_error_val(tag, message, value) ((void)0)
343#endif
344
345#if RA8_LOG_LEVEL >= RA8_LOG_LEVEL_WARN
347#define ra8_log_warn(tag, message) ra8_log_emit_warn((tag), (message))
349#define ra8_log_warn_val(tag, message, value) ra8_log_emit_warn_val((tag), (message), (value))
350#else
352#define ra8_log_warn(tag, message) ((void)0)
354#define ra8_log_warn_val(tag, message, value) ((void)0)
355#endif
356
357#if RA8_LOG_LEVEL >= RA8_LOG_LEVEL_INFO
359#define ra8_log_info(tag, message) ra8_log_emit_info((tag), (message))
361#define ra8_log_info_val(tag, message, value) ra8_log_emit_info_val((tag), (message), (value))
362#else
364#define ra8_log_info(tag, message) ((void)0)
366#define ra8_log_info_val(tag, message, value) ((void)0)
367#endif
368
369#if RA8_LOG_LEVEL >= RA8_LOG_LEVEL_DEBUG
371#define ra8_log_debug(tag, message) ra8_log_emit_debug((tag), (message))
373#define ra8_log_debug_val(tag, message, value) ra8_log_emit_debug_val((tag), (message), (value))
374#else
376#define ra8_log_debug(tag, message) ((void)0)
378#define ra8_log_debug_val(tag, message, value) ((void)0)
379#endif
380
381#ifdef __cplusplus
382}
383#endif
#define RA8_LOG_LEVEL_ERROR
RA8 LOG LEVEL ERROR.
Definition ra8_log.h:76
void ra8_log_init(void)
Initialise the logging backend.
Definition ra8_log.c:379
ra8_log_level_t
Compile-time and runtime log level.
Definition ra8_log.h:84
@ k_ra8_log_level_warn
Errors + warnings.
Definition ra8_log.h:87
@ k_ra8_log_level_info
Errors + warnings + info (default for Debug).
Definition ra8_log.h:88
@ k_ra8_log_level_error
Errors only.
Definition ra8_log.h:86
@ k_ra8_log_level_none
Disable all logging.
Definition ra8_log.h:85
@ k_ra8_log_level_debug
Everything, including per-iteration traces.
Definition ra8_log.h:89
#define RA8_LOG_LEVEL_DEBUG
RA8 LOG LEVEL DEBUG.
Definition ra8_log.h:82
void ra8_log_set_byte_sink(ra8_log_byte_sink_fn_t fn, void *ctx)
Install (or clear) an optional byte sink for log output.
Definition ra8_log.c:56
#define RA8_LOG_LEVEL_NONE
Definition ra8_log.h:74
void ra8_log_emit_info(const char *tag, const char *message)
Emit an INFO-level log line with only a tag and a message.
Definition ra8_log.c:512
void ra8_log_emit_error(const char *tag, const char *message)
Emit an ERROR-level log line with only a tag and a message.
Definition ra8_log.c:502
#define RA8_LOG_LEVEL_WARN
RA8 LOG LEVEL WARN.
Definition ra8_log.h:78
void ra8_log_emit_debug(const char *tag, const char *message)
Emit a DEBUG-level log line with only a tag and a message.
Definition ra8_log.c:517
void ra8_log_emit_info_val(const char *tag, const char *message, uint32_t value)
Emit an INFO log line with a uint32_t companion value.
Definition ra8_log.c:576
void ra8_log_emit_warn_val(const char *tag, const char *message, uint32_t value)
Emit a WARN log line with a uint32_t companion value.
Definition ra8_log.c:557
void(* ra8_log_byte_sink_fn_t)(void *ctx, uint8_t byte)
Optional per-byte sink for redirecting log output off ITM.
Definition ra8_log.h:144
void ra8_log_emit_debug_val(const char *tag, const char *message, int32_t value)
Emit a DEBUG log line with an int32_t companion value.
Definition ra8_log.c:595
void ra8_log_emit_error_val(const char *tag, const char *message, uint32_t value)
Emit an ERROR log line with a uint32_t companion value.
Definition ra8_log.c:538
#define RA8_LOG_LEVEL_INFO
RA8 LOG LEVEL INFO.
Definition ra8_log.h:80
void ra8_log_emit_warn(const char *tag, const char *message)
Emit a WARN-level log line with only a tag and a message.
Definition ra8_log.c:507