From 07f2ccd990de5f55ce7d194846fff91b6c3aedf6 Mon Sep 17 00:00:00 2001 From: Chen Pei Date: Wed, 18 Oct 2023 10:42:05 +0800 Subject: [PATCH] lib: utils/serial: Optimize semihosting_putc implementation For some debuggers that do not implement SYSWRITEC and SYSREADC operations, we can use SYSWRITE and SYSREAD instead like the implementation of semihosting_getc(). Signed-off-by: Chen Pei Reviewed-by: Xiang W Reviewed-by: Anup Patel --- lib/utils/serial/semihosting.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/lib/utils/serial/semihosting.c b/lib/utils/serial/semihosting.c index ce65887d..a27c69ee 100644 --- a/lib/utils/serial/semihosting.c +++ b/lib/utils/serial/semihosting.c @@ -160,11 +160,6 @@ static long semihosting_write(long fd, const void *memp, size_t len) /* clang-format on */ -static void semihosting_putc(char ch) -{ - semihosting_trap(SYSWRITEC, &ch); -} - static unsigned long semihosting_puts(const char *str, unsigned long len) { char ch; @@ -183,6 +178,11 @@ static unsigned long semihosting_puts(const char *str, unsigned long len) return (ret < 0) ? 0 : ret; } +static void semihosting_putc(char ch) +{ + semihosting_puts(&ch, 1); +} + static int semihosting_getc(void) { char ch = 0;