Browse Source

[Kernel] Add rt_kputs routine.

bernard 8 years ago
parent
commit
2ce7382534
2 changed files with 27 additions and 0 deletions
  1. 2 0
      include/rtthread.h
  2. 25 0
      src/kservice.c

+ 2 - 0
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);

+ 25 - 0
src/kservice.c

@@ -1107,6 +1107,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
  *