summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
authorPaul Sokolovsky <pfalcon@users.sourceforge.net>2016-03-29 11:48:43 +0300
committerPaul Sokolovsky <pfalcon@users.sourceforge.net>2016-03-29 11:48:43 +0300
commit402a743821e99d99e6118669ec162b902b29fcd5 (patch)
tree337ac796edc9c523ed5ca363cd5bbbd5f875f662
parent8fc5e56a6a06523ff864d309c7718885a990cb2b (diff)
downloadmicropython-402a743821e99d99e6118669ec162b902b29fcd5.tar.gz
micropython-402a743821e99d99e6118669ec162b902b29fcd5.zip
esp8266/esp_mphal: Add support for debug UART-only output.
Helpful when debugging dupterm support (because otherwise all output is spooled to dupterm too). To use: mp_printf(&mp_debug_print, "...");
-rw-r--r--esp8266/esp_mphal.c22
-rw-r--r--esp8266/esp_mphal.h4
2 files changed, 26 insertions, 0 deletions
diff --git a/esp8266/esp_mphal.c b/esp8266/esp_mphal.c
index 6a4b2f5ec3..3681a028da 100644
--- a/esp8266/esp_mphal.c
+++ b/esp8266/esp_mphal.c
@@ -39,6 +39,9 @@ extern void ets_wdt_disable(void);
extern void wdt_feed(void);
extern void ets_delay_us();
+void mp_hal_debug_tx_strn_cooked(void *env, const char *str, uint32_t len);
+const mp_print_t mp_debug_print = {NULL, mp_hal_debug_tx_strn_cooked};
+
void mp_hal_init(void) {
ets_wdt_disable(); // it's a pain while developing
mp_hal_rtc_init();
@@ -74,6 +77,15 @@ void mp_hal_stdout_tx_char(char c) {
mp_uos_dupterm_tx_strn(&c, 1);
}
+#if 0
+void mp_hal_debug_str(const char *str) {
+ while (*str) {
+ uart_tx_one_char(UART0, *str++);
+ }
+ uart_flush(UART0);
+}
+#endif
+
void mp_hal_stdout_tx_str(const char *str) {
while (*str) {
mp_hal_stdout_tx_char(*str++);
@@ -95,6 +107,16 @@ void mp_hal_stdout_tx_strn_cooked(const char *str, uint32_t len) {
}
}
+void mp_hal_debug_tx_strn_cooked(void *env, const char *str, uint32_t len) {
+ (void)env;
+ while (len--) {
+ if (*str == '\n') {
+ uart_tx_one_char(UART0, '\r');
+ }
+ uart_tx_one_char(UART0, *str++);
+ }
+}
+
uint32_t mp_hal_ticks_ms(void) {
return system_get_time() / 1000;
}
diff --git a/esp8266/esp_mphal.h b/esp8266/esp_mphal.h
index 4edf266a50..873bfec371 100644
--- a/esp8266/esp_mphal.h
+++ b/esp8266/esp_mphal.h
@@ -27,6 +27,10 @@
#ifndef _INCLUDED_MPHAL_H_
#define _INCLUDED_MPHAL_H_
+struct _mp_print_t;
+// Structure for UART-only output via mp_printf()
+extern const struct _mp_print_t mp_debug_print;
+
void mp_hal_init(void);
void mp_hal_rtc_init(void);
void mp_hal_feed_watchdog(void);