logging: add SWO syst backend support

add SWO syst backend support.

Fixes: #19841.

Signed-off-by: Wentong Wu <wentong.wu@intel.com>
This commit is contained in:
Wentong Wu 2019-10-29 05:56:10 +08:00 committed by Andrew Boie
commit 84809dbccf
2 changed files with 18 additions and 3 deletions

View file

@ -312,6 +312,12 @@ config LOG_BACKEND_SWO_FREQ_HZ
reset. To ensure flawless operation the frequency configured here and reset. To ensure flawless operation the frequency configured here and
by the SWO viewer program has to match. by the SWO viewer program has to match.
config LOG_BACKEND_SWO_SYST_ENABLE
bool "Enable SWO syst backend"
depends on LOG_MIPI_SYST_ENABLE
help
When enabled backend is using SWO to output syst format logs.
endif # LOG_BACKEND_SWO endif # LOG_BACKEND_SWO
config LOG_BACKEND_RTT config LOG_BACKEND_RTT

View file

@ -63,7 +63,10 @@ LOG_OUTPUT_DEFINE(log_output, char_out, buf, sizeof(buf));
static void log_backend_swo_put(const struct log_backend *const backend, static void log_backend_swo_put(const struct log_backend *const backend,
struct log_msg *msg) struct log_msg *msg)
{ {
log_backend_std_put(&log_output, 0, msg); u32_t flag = IS_ENABLED(CONFIG_LOG_BACKEND_SWO_SYST_ENABLE) ?
LOG_OUTPUT_FLAG_FORMAT_SYST : 0;
log_backend_std_put(&log_output, flag, msg);
} }
static void log_backend_swo_init(void) static void log_backend_swo_init(void)
@ -107,7 +110,10 @@ static void log_backend_swo_sync_string(const struct log_backend *const backend,
struct log_msg_ids src_level, u32_t timestamp, struct log_msg_ids src_level, u32_t timestamp,
const char *fmt, va_list ap) const char *fmt, va_list ap)
{ {
log_backend_std_sync_string(&log_output, 0, src_level, u32_t flag = IS_ENABLED(CONFIG_LOG_BACKEND_SWO_SYST_ENABLE) ?
LOG_OUTPUT_FLAG_FORMAT_SYST : 0;
log_backend_std_sync_string(&log_output, flag, src_level,
timestamp, fmt, ap); timestamp, fmt, ap);
} }
@ -116,7 +122,10 @@ static void log_backend_swo_sync_hexdump(
struct log_msg_ids src_level, u32_t timestamp, struct log_msg_ids src_level, u32_t timestamp,
const char *metadata, const u8_t *data, u32_t length) const char *metadata, const u8_t *data, u32_t length)
{ {
log_backend_std_sync_hexdump(&log_output, 0, src_level, u32_t flag = IS_ENABLED(CONFIG_LOG_BACKEND_SWO_SYST_ENABLE) ?
LOG_OUTPUT_FLAG_FORMAT_SYST : 0;
log_backend_std_sync_hexdump(&log_output, flag, src_level,
timestamp, metadata, data, length); timestamp, metadata, data, length);
} }