浏览代码

add pyexec_str

zyh 5 年之前
父节点
当前提交
4f9e5d7642
共有 2 个文件被更改,包括 15 次插入3 次删除
  1. 7 3
      lib/utils/pyexec.c
  2. 8 0
      port/mphalport.c

+ 7 - 3
lib/utils/pyexec.c

@@ -53,9 +53,10 @@ STATIC bool repl_display_debugging_info = 0;
 #define EXEC_FLAG_PRINT_EOF (1)
 #define EXEC_FLAG_ALLOW_DEBUGGING (2)
 #define EXEC_FLAG_IS_REPL (4)
-#define EXEC_FLAG_SOURCE_IS_RAW_CODE (8)
-#define EXEC_FLAG_SOURCE_IS_VSTR (16)
-#define EXEC_FLAG_SOURCE_IS_FILENAME (32)
+#define EXEC_FLAG_RERAISE (8)
+#define EXEC_FLAG_SOURCE_IS_RAW_CODE (16)
+#define EXEC_FLAG_SOURCE_IS_VSTR (32)
+#define EXEC_FLAG_SOURCE_IS_FILENAME (64)
 
 // parses, compiles and executes the code in the lexer
 // frees the lexer before returning
@@ -550,6 +551,9 @@ friendly_repl_reset:
 int pyexec_file(const char *filename) {
     return parse_compile_execute(filename, MP_PARSE_FILE_INPUT, EXEC_FLAG_SOURCE_IS_FILENAME);
 }
+int pyexec_str(vstr_t *str) {
+    return parse_compile_execute(str, MP_PARSE_FILE_INPUT, EXEC_FLAG_RERAISE | EXEC_FLAG_SOURCE_IS_VSTR);
+}
 
 int pyexec_file_if_exists(const char *filename) {
     #if MICROPY_MODULE_FROZEN

+ 8 - 0
port/mphalport.c

@@ -63,10 +63,18 @@ int mp_hal_stdin_rx_chr(void) {
 // Send string of given length
 void mp_hal_stdout_tx_strn(const char *str, mp_uint_t len) {
     mp_putsn(str, len);
+#ifdef PKG_USING_OPENMV_CP
+    extern void serial_dbg_send_strn(const char *str, int len);
+    serial_dbg_send_strn(str, len);
+#endif
 }
 
 void mp_hal_stdout_tx_strn_stream(const char *str, size_t len) {
     mp_putsn_stream(str, len);
+#ifdef PKG_USING_OPENMV_CP
+    extern void serial_dbg_send_strn_cooked(const char *str, int len);
+    serial_dbg_send_strn_cooked(str, len);
+#endif
 }
 
 mp_uint_t mp_hal_ticks_us(void) {