Interactive MicroPython read-eval-print-loop See also the micropython library and its README file.

Dependencies:   mbed micropython

This program needs the micropython library - see there for Getting Started information.

See the mbed MicroPython wiki for more information.

Revision:
9:195af29eef76
Parent:
8:11e2b1ca356a
Child:
13:d8a89b43fe5b
--- a/main.cpp	Thu Apr 14 22:47:07 2016 +0100
+++ b/main.cpp	Sat Apr 16 09:01:49 2016 +0100
@@ -1,12 +1,47 @@
 #include "mbed.h"
 extern "C" {
 #include "py/runtime.h"
+#include "py/mphal.h"
 #include "lib/utils/pyexec.h"
 }
 
+// Serial communication to host PC via USB
+Serial pc(USBTX, USBRX);
+
+// Implement the micropython HAL I/O functions
+extern "C" void mp_hal_stdout_tx_chr(int c);
+void mp_hal_stdout_tx_chr(int c)
+{
+  pc.putc(c);
+}
+extern "C" int mp_hal_stdin_rx_chr(void);
+int mp_hal_stdin_rx_chr(void)
+{
+  int c = pc.getc();
+  //printf("getc=%02x\n", c);
+  return c;
+}
+
+void hexdump(const void *ptr, int len)
+{
+  int line;
+  for (line=0; line < len; line += 16) {
+    int word;
+    for (word=0; word < 16 && line+word < len; word+=4) {
+      int b;
+      for (b=0; b < 4 && line+word+b < len; b++) {
+	pc.printf(" %02x", ((const char *)ptr)[line+word+b]);
+      }
+      pc.printf(" ");
+    }
+    pc.printf("\r\n");
+  }
+}
+
 int main()
 {
   mp_init();
+  // hexdump(&MP_STATE_VM(dict_main), 64);
   pyexec_friendly_repl();
   mp_deinit();
   return 0;