Просмотр исходного кода

【提升】字符串输出效率。

Signed-off-by: armink <armink.ztl@gmail.com>
armink 7 лет назад
Родитель
Сommit
49a7fdc0a3
3 измененных файлов с 10 добавлено и 5 удалено
  1. 5 5
      port/mpconfigport.h
  2. 4 0
      port/mphalport.c
  3. 1 0
      port/mphalport.h

+ 5 - 5
port/mpconfigport.h

@@ -286,12 +286,12 @@ typedef unsigned mp_uint_t; // must be pointer size
 
 typedef long mp_off_t;
 
-#define MP_PLAT_PRINT_STRN(str, len) mp_hal_stdout_tx_strn_cooked(str, len)
+#define MP_PLAT_PRINT_STRN(str, len)   mp_hal_stdout_tx_strn_stream(str, len)
 
-#define MICROPY_PY_SYS_PLATFORM "rt-thread"
-#define MICROPY_HW_BOARD_NAME "Universal python platform"
-#define MICROPY_HW_MCU_NAME   "RT-Thread"
-#define MICROPY_PY_PATH       "/libs/mpy/"
+#define MICROPY_PY_SYS_PLATFORM        "rt-thread"
+#define MICROPY_HW_BOARD_NAME          "Universal python platform"
+#define MICROPY_HW_MCU_NAME            "RT-Thread"
+#define MICROPY_PY_PATH                "/libs/mpy/"
 
 #define MICROPY_BEGIN_ATOMIC_SECTION()     rt_hw_interrupt_disable()
 #define MICROPY_END_ATOMIC_SECTION(state)  rt_hw_interrupt_enable(state)

+ 4 - 0
port/mphalport.c

@@ -56,6 +56,10 @@ void mp_hal_stdout_tx_strn(const char *str, mp_uint_t len) {
     }
 }
 
+void mp_hal_stdout_tx_strn_stream(const char *str, size_t len) {
+    rt_kprintf("%.*s", len, str);
+}
+
 mp_uint_t mp_hal_ticks_us(void) {
     return rt_tick_get() * 1000000UL / RT_TICK_PER_SECOND;
 }

+ 1 - 0
port/mphalport.h

@@ -32,6 +32,7 @@
 extern void mp_hal_set_interrupt_char (int c);
 extern void mp_pin_od_write(void *machine_pin, int stat);
 extern void mp_hal_pin_open_set(void *machine_pin, int mode);
+extern void mp_hal_stdout_tx_strn_stream(const char *str, size_t len);
 
 #define mp_hal_quiet_timing_enter()         MICROPY_BEGIN_ATOMIC_SECTION()
 #define mp_hal_quiet_timing_exit(irq_state) MICROPY_END_ATOMIC_SECTION(irq_state)