diff --git a/drivers/segger/config/SEGGER_RTT_Conf.h b/drivers/segger/config/SEGGER_RTT_Conf.h index aab7e24c22e..67c32eba776 100644 --- a/drivers/segger/config/SEGGER_RTT_Conf.h +++ b/drivers/segger/config/SEGGER_RTT_Conf.h @@ -112,4 +112,6 @@ } \ while (0) +#define SEGGER_SYSVIEW_PRINTF_IMPLICIT_FORMAT 1 + #endif /* __DRIVERS_SEGGER_CONFIG_SEGGER_RTT_CONF_H */ diff --git a/drivers/segger/note_sysview.c b/drivers/segger/note_sysview.c index a783925fded..548b3c3b33e 100644 --- a/drivers/segger/note_sysview.c +++ b/drivers/segger/note_sysview.c @@ -84,6 +84,11 @@ static void note_sysview_wdog(FAR struct note_driver_s *drv, uint8_t event, FAR void *handler, FAR const void *arg); #endif +#ifdef CONFIG_SCHED_INSTRUMENTATION_DUMP +static void note_sysview_vprintf(FAR struct note_driver_s *drv, uintptr_t ip, + FAR const char *fmt, va_list va); +#endif + /**************************************************************************** * Private Data ****************************************************************************/ @@ -129,6 +134,11 @@ static const struct note_driver_ops_s g_note_sysview_ops = #ifdef CONFIG_SCHED_INSTRUMENTATION_HEAP note_sysview_heap, /* heap */ #endif + +#ifdef CONFIG_SCHED_INSTRUMENTATION_DUMP + NULL, /* event */ + note_sysview_vprintf, /* vprintf */ +#endif }; static struct note_sysview_driver_s g_note_sysview_driver = @@ -408,6 +418,14 @@ static void note_sysview_wdog(FAR struct note_driver_s *drv, uint8_t event, } #endif +#ifdef CONFIG_SCHED_INSTRUMENTATION_DUMP +static void note_sysview_vprintf(FAR struct note_driver_s *drv, uintptr_t ip, + FAR const char *fmt, va_list va) +{ + SEGGER_SYSVIEW_VPrintfHost(fmt, &va); +} +#endif + /**************************************************************************** * Public Functions ****************************************************************************/