6#ifndef ZEPHYR_INCLUDE_LOGGING_LOG_FRONTEND_STMESP_H_
7#define ZEPHYR_INCLUDE_LOGGING_LOG_FRONTEND_STMESP_H_
11#ifdef CONFIG_LOG_FRONTEND_STMESP
53#ifdef CONFIG_LOG_FRONTEND_STMESP
57 __ASSERT_NO_MSG(err == 0);
60 IS_ENABLED(CONFIG_LOG_FRONTEND_STMESP_GUARANTEED_ACCESS));
75#ifdef CONFIG_LOG_FRONTEND_STMESP
79 __ASSERT_NO_MSG(err == 0);
82 IS_ENABLED(CONFIG_LOG_FRONTEND_STMESP_GUARANTEED_ACCESS));
109#define LOG_FRONTEND_STMESP_LOG0(_source, ...) \
111 static const char _str[] __in_section(_log_stmesp_str, static, _) \
112 __used __noasan __aligned(sizeof(uint32_t)) = GET_ARG_N(1, __VA_ARGS__); \
113 static const char *_str_ptr __in_section(_log_stmesp_ptr, static, _) \
114 __used __noasan = _str; \
116 ((uintptr_t)&_str_ptr - (uintptr_t)TYPE_SECTION_START(log_stmesp_ptr)) / \
118 log_frontend_stmesp_log0(_source, idx); \
126#define LOG_FRONTEND_STMESP_LOG1(_source, ...) \
128 static const char _str[] __in_section(_log_stmesp_str, static, _) \
129 __used __noasan __aligned(sizeof(uint32_t)) = GET_ARG_N(1, __VA_ARGS__); \
130 static const char *_str_ptr __in_section(_log_stmesp_ptr, static, _) \
131 __used __noasan = _str; \
133 ((uintptr_t)&_str_ptr - (uintptr_t)TYPE_SECTION_START(log_stmesp_ptr)) / \
135 log_frontend_stmesp_log1(_source, idx, (uintptr_t)(GET_ARG_N(2, __VA_ARGS__))); \
irp nz macro MOVR cc d
Definition asm-macro-32-bit-gnu.h:11
#define TYPE_SECTION_START_EXTERN(type, secname)
iterable section extern for start symbol for a generic type
Definition iterable_sections.h:78
static void stmesp_flag(STMESP_Type *reg, uint32_t data, bool ts, bool guaranteed)
Write flag to STMESP.
Definition stmesp.h:99
static int stmesp_get_port(uint32_t idx, STMESP_Type **port)
Return address of a STM extended stimulus port.
Definition stmesp.h:169
static void stmesp_data32(STMESP_Type *reg, uint32_t data, bool ts, bool marked, bool guaranteed)
Write 32 bit data to STMESP.
Definition stmesp.h:152
#define IS_ENABLED(config_macro)
Check for macro definition in compiler-visible expressions.
Definition util_macro.h:140
static void log_frontend_stmesp_tp_d32(uint16_t x, uint32_t d)
Trace point with 32 bit data.
Definition log_frontend_stmesp.h:73
void log_frontend_stmesp_log1(const void *source, uint32_t x, uint32_t arg)
Function called for log message with one argument when turbo logging is enabled.
static void log_frontend_stmesp_tp(uint16_t x)
Trace point.
Definition log_frontend_stmesp.h:51
void log_frontend_stmesp_dummy_write(void)
Perform a dummy write to STMESP.
void log_frontend_stmesp_pre_sleep(void)
Hook to be called before going to sleep.
void log_frontend_stmesp_log0(const void *source, uint32_t x)
Function called for log message with no arguments when turbo logging is enabled.
int log_frontend_stmesp_etr_ready(void)
Notify frontend that ETR/STM is ready.
__UINT32_TYPE__ uint32_t
Definition stdint.h:90
__UINT16_TYPE__ uint16_t
Definition stdint.h:89