esp8266: Add basic support for duplicating REPL output.

This commit is contained in:
Paul Sokolovsky 2016-03-29 11:13:32 +03:00
parent 6ca17c1922
commit c961889e34
2 changed files with 11 additions and 4 deletions

View File

@ -33,6 +33,7 @@
#include "ets_alt_task.h" #include "ets_alt_task.h"
#include "py/obj.h" #include "py/obj.h"
#include "py/mpstate.h" #include "py/mpstate.h"
#include "extmod/misc.h"
extern void ets_wdt_disable(void); extern void ets_wdt_disable(void);
extern void wdt_feed(void); extern void wdt_feed(void);
@ -68,24 +69,29 @@ int mp_hal_stdin_rx_chr(void) {
} }
} }
void mp_hal_stdout_tx_char(char c) {
uart_tx_one_char(UART0, c);
mp_uos_dupterm_tx_strn(&c, 1);
}
void mp_hal_stdout_tx_str(const char *str) { void mp_hal_stdout_tx_str(const char *str) {
while (*str) { while (*str) {
uart_tx_one_char(UART0, *str++); mp_hal_stdout_tx_char(*str++);
} }
} }
void mp_hal_stdout_tx_strn(const char *str, uint32_t len) { void mp_hal_stdout_tx_strn(const char *str, uint32_t len) {
while (len--) { while (len--) {
uart_tx_one_char(UART0, *str++); mp_hal_stdout_tx_char(*str++);
} }
} }
void mp_hal_stdout_tx_strn_cooked(const char *str, uint32_t len) { void mp_hal_stdout_tx_strn_cooked(const char *str, uint32_t len) {
while (len--) { while (len--) {
if (*str == '\n') { if (*str == '\n') {
uart_tx_one_char(UART0, '\r'); mp_hal_stdout_tx_char('\r');
} }
uart_tx_one_char(UART0, *str++); mp_hal_stdout_tx_char(*str++);
} }
} }

View File

@ -51,6 +51,7 @@
#define MICROPY_PY_LWIP (1) #define MICROPY_PY_LWIP (1)
#define MICROPY_PY_MACHINE (1) #define MICROPY_PY_MACHINE (1)
#define MICROPY_PY_MICROPYTHON_MEM_INFO (1) #define MICROPY_PY_MICROPYTHON_MEM_INFO (1)
#define MICROPY_PY_OS_DUPTERM (1)
#define MICROPY_CPYTHON_COMPAT (1) #define MICROPY_CPYTHON_COMPAT (1)
#define MICROPY_LONGINT_IMPL (MICROPY_LONGINT_IMPL_MPZ) #define MICROPY_LONGINT_IMPL (MICROPY_LONGINT_IMPL_MPZ)
#define MICROPY_FLOAT_IMPL (MICROPY_FLOAT_IMPL_FLOAT) #define MICROPY_FLOAT_IMPL (MICROPY_FLOAT_IMPL_FLOAT)