Zephyr API Documentation 4.0.99
A Scalable Open Source RTOS
Loading...
Searching...
No Matches
log_frontend_stmesp.h File Reference
#include <errno.h>
#include <zephyr/types.h>

Go to the source code of this file.

Macros

#define LOG_FRONTEND_STMESP_LOG0(_source, ...)
 Macro for handling a turbo log message with no arguments.
 
#define LOG_FRONTEND_STMESP_LOG1(_source, ...)
 Macro for handling a turbo log message with one argument.
 

Functions

int log_frontend_stmesp_etr_ready (void)
 Notify frontend that ETR/STM is ready.
 
void log_frontend_stmesp_pre_sleep (void)
 Hook to be called before going to sleep.
 
void log_frontend_stmesp_dummy_write (void)
 Perform a dummy write to STMESP.
 
static void log_frontend_stmesp_tp (uint16_t x)
 Trace point.
 
static void log_frontend_stmesp_tp_d32 (uint16_t x, uint32_t d)
 Trace point with 32 bit data.
 
void log_frontend_stmesp_log0 (const void *source, uint32_t x)
 Function called for log message with no arguments when turbo logging is enabled.
 
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.
 
 TYPE_SECTION_START_EXTERN (const char *, log_stmesp_ptr)
 

Macro Definition Documentation

◆ LOG_FRONTEND_STMESP_LOG0

#define LOG_FRONTEND_STMESP_LOG0 ( _source,
... )
Value:
do { \
static const char _str[] __in_section(_log_stmesp_str, static, _) \
__used __noasan __aligned(sizeof(uint32_t)) = GET_ARG_N(1, __VA_ARGS__); \
static const char *_str_ptr __in_section(_log_stmesp_ptr, static, _) \
__used __noasan = _str; \
uint32_t idx = \
((uintptr_t)&_str_ptr - (uintptr_t)TYPE_SECTION_START(log_stmesp_ptr)) / \
sizeof(void *); \
log_frontend_stmesp_log0(_source, idx); \
} while (0)
#define TYPE_SECTION_START(secname)
iterable section start symbol for a generic type
Definition iterable_sections.h:55
#define GET_ARG_N(N,...)
Get nth argument from argument list.
Definition util_macro.h:383
__UINT32_TYPE__ uint32_t
Definition stdint.h:90
__UINTPTR_TYPE__ uintptr_t
Definition stdint.h:105

Macro for handling a turbo log message with no arguments.

Parameters
_sourcePointer to the source structure.
...String.

◆ LOG_FRONTEND_STMESP_LOG1

#define LOG_FRONTEND_STMESP_LOG1 ( _source,
... )
Value:
do { \
static const char _str[] __in_section(_log_stmesp_str, static, _) \
__used __noasan __aligned(sizeof(uint32_t)) = GET_ARG_N(1, __VA_ARGS__); \
static const char *_str_ptr __in_section(_log_stmesp_ptr, static, _) \
__used __noasan = _str; \
uint32_t idx = \
((uintptr_t)&_str_ptr - (uintptr_t)TYPE_SECTION_START(log_stmesp_ptr)) / \
sizeof(void *); \
log_frontend_stmesp_log1(_source, idx, (uintptr_t)(GET_ARG_N(2, __VA_ARGS__))); \
} while (0)

Macro for handling a turbo log message with one argument.

Parameters
_sourcePointer to the source structure.
...String with one numeric argument.

Function Documentation

◆ log_frontend_stmesp_dummy_write()

void log_frontend_stmesp_dummy_write ( void )

Perform a dummy write to STMESP.

It can be used to force flushing STM data.

◆ log_frontend_stmesp_etr_ready()

int log_frontend_stmesp_etr_ready ( void )

Notify frontend that ETR/STM is ready.

Log frontend optionally dumps buffered data and start to write to the STM stimulus port.

Note
Function is applicable only for the domain that performs initial ETR/STM setup.
Return values
0on success.
-EIOif there was an internal failure.

◆ log_frontend_stmesp_log0()

void log_frontend_stmesp_log0 ( const void * source,
uint32_t x )

Function called for log message with no arguments when turbo logging is enabled.

Parameters
sourcePointer to the source structure.
xIndex of the string used for the log message.

◆ log_frontend_stmesp_log1()

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.

Parameters
sourcePointer to the source structure.
xIndex of the string used for the log message.
argArgument.

◆ log_frontend_stmesp_pre_sleep()

void log_frontend_stmesp_pre_sleep ( void )

Hook to be called before going to sleep.

Hook writes dummy data to the STM Stimulus Port to ensure that all logging data is flushed.

◆ log_frontend_stmesp_tp()

static void log_frontend_stmesp_tp ( uint16_t x)
inlinestatic

Trace point.

Write a trace point information using STM. Number of unique trace points is limited to 32768 - CONFIG_LOG_FRONTEND_STMESP_TP_CHAN_BASE per core.

Parameters
xTrace point ID.

◆ log_frontend_stmesp_tp_d32()

static void log_frontend_stmesp_tp_d32 ( uint16_t x,
uint32_t d )
inlinestatic

Trace point with 32 bit data.

Write a trace point information using STM. Number of unique trace points is limited to 32768 - CONFIG_LOG_FRONTEND_STMESP_TP_CHAN_BASE per core.

Parameters
xTrace point ID.
dData. 32 bit word.

◆ TYPE_SECTION_START_EXTERN()

TYPE_SECTION_START_EXTERN ( const char * ,
log_stmesp_ptr  )