summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--include/rtthread.h2
-rw-r--r--src/kservice.c25
2 files changed, 27 insertions, 0 deletions
diff --git a/include/rtthread.h b/include/rtthread.h
index 4091e538f8..b8809474f6 100644
--- a/include/rtthread.h
+++ b/include/rtthread.h
@@ -488,8 +488,10 @@ void rt_components_board_init(void);
*/
#ifndef RT_USING_CONSOLE
#define rt_kprintf(...)
+#define rt_kputs(str)
#else
void rt_kprintf(const char *fmt, ...);
+void rt_kputs(const char *str);
#endif
rt_int32_t rt_vsprintf(char *dest, const char *format, va_list arg_ptr);
rt_int32_t rt_vsnprintf(char *buf, rt_size_t size, const char *fmt, va_list args);
diff --git a/src/kservice.c b/src/kservice.c
index 614399e1e0..10fcfb0cf9 100644
--- a/src/kservice.c
+++ b/src/kservice.c
@@ -1108,6 +1108,31 @@ WEAK void rt_hw_console_output(const char *str)
RTM_EXPORT(rt_hw_console_output);
/**
+ * This function will put string to the console.
+ *
+ * @param str the string output to the console.
+ */
+void rt_kputs(const char *str)
+{
+#ifdef RT_USING_DEVICE
+ if (_console_device == RT_NULL)
+ {
+ rt_hw_console_output(str);
+ }
+ else
+ {
+ rt_uint16_t old_flag = _console_device->open_flag;
+
+ _console_device->open_flag |= RT_DEVICE_FLAG_STREAM;
+ rt_device_write(_console_device, 0, str, rt_strlen(str));
+ _console_device->open_flag = old_flag;
+ }
+#else
+ rt_hw_console_output(str);
+#endif
+}
+
+/**
* This function will print a formatted string on system console
*
* @param fmt the format