From 25f44c19f17085a09ad0f857c6ccc0d33d7c0344 Mon Sep 17 00:00:00 2001 From: Paul Sokolovsky Date: Tue, 27 Dec 2016 01:00:12 +0300 Subject: [PATCH] cc3200: Re-add support for UART REPL (MICROPY_STDIO_UART setting). UART REPL support was lost in os.dupterm() refactorings, etc. As os.dupterm() is there, implement UART REPL support at the high level - if MICROPY_STDIO_UART is set, make default boot.py contain os.dupterm() call for a UART. This means that changing MICROPY_STDIO_UART value will also require erasing flash on a module to force boot.py re-creation. --- cc3200/mptask.c | 7 ++++++- py/misc.h | 4 ++++ 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/cc3200/mptask.c b/cc3200/mptask.c index eb673b08cf..3c34ceeca0 100644 --- a/cc3200/mptask.c +++ b/cc3200/mptask.c @@ -98,7 +98,12 @@ static FATFS *sflash_fatfs; static const char fresh_main_py[] = "# main.py -- put your code here!\r\n"; static const char fresh_boot_py[] = "# boot.py -- run on boot-up\r\n" - "# can run arbitrary Python, but best to keep it minimal\r\n"; + "# can run arbitrary Python, but best to keep it minimal\r\n" + #if MICROPY_STDIO_UART + "import os, machine\r\n" + "os.dupterm(machine.UART(0, " MP_STRINGIFY(MICROPY_STDIO_UART_BAUD) "))\r\n" + #endif + ; /****************************************************************************** DECLARE PUBLIC FUNCTIONS diff --git a/py/misc.h b/py/misc.h index 7584bc0176..146b9a8e4a 100644 --- a/py/misc.h +++ b/py/misc.h @@ -46,6 +46,10 @@ typedef unsigned int uint; #define MAX(x, y) ((x) > (y) ? (x) : (y)) #endif +// Classical double-indirection stringification of preprocessor macro's value +#define _MP_STRINGIFY(x) #x +#define MP_STRINGIFY(x) _MP_STRINGIFY(x) + /** memory allocation ******************************************/ // TODO make a lazy m_renew that can increase by a smaller amount than requested (but by at least 1 more element)