Explorar o código

【修改】MicroPython uos 模块,默认关闭。

Signed-off-by: armink <armink.ztl@gmail.com>
armink %!s(int64=8) %!d(string=hai) anos
pai
achega
81acc0edbc
Modificáronse 8 ficheiros con 60 adicións e 44 borrados
  1. 3 1
      port/file.c
  2. 0 1
      port/modpyb.c
  3. 0 7
      port/modrtthread.c
  4. 5 0
      port/moduos.c
  5. 4 1
      port/moduos_file.c
  6. 4 3
      port/modusocket.c
  7. 39 28
      port/mpconfigport.h
  8. 5 3
      port/mpy_main.c

+ 3 - 1
port/file.c

@@ -25,6 +25,9 @@
  */
  */
 
 
 #include "py/mpconfig.h"
 #include "py/mpconfig.h"
+
+#if MICROPY_PY_IO
+
 #include "py/runtime.h"
 #include "py/runtime.h"
 #include "py/stream.h"
 #include "py/stream.h"
 #include "py/builtin.h"
 #include "py/builtin.h"
@@ -38,7 +41,6 @@
 #include <sys/stat.h>
 #include <sys/stat.h>
 #include <sys/types.h>
 #include <sys/types.h>
 
 
-#if MICROPY_PY_IO
 
 
 #ifdef _WIN32
 #ifdef _WIN32
 #define fsync _commit
 #define fsync _commit

+ 0 - 1
port/modpyb.c

@@ -97,7 +97,6 @@ STATIC const mp_rom_map_elem_t pyb_module_globals_table[] = {
     { MP_ROM_QSTR(MP_QSTR_elapsed_micros), MP_ROM_PTR(&pyb_elapsed_micros_obj) },
     { MP_ROM_QSTR(MP_QSTR_elapsed_micros), MP_ROM_PTR(&pyb_elapsed_micros_obj) },
     { MP_ROM_QSTR(MP_QSTR_delay), MP_ROM_PTR(&mp_utime_sleep_ms_obj) },
     { MP_ROM_QSTR(MP_QSTR_delay), MP_ROM_PTR(&mp_utime_sleep_ms_obj) },
     { MP_ROM_QSTR(MP_QSTR_udelay), MP_ROM_PTR(&mp_utime_sleep_us_obj) },
     { MP_ROM_QSTR(MP_QSTR_udelay), MP_ROM_PTR(&mp_utime_sleep_us_obj) },
-    { MP_ROM_QSTR(MP_QSTR_sync), MP_ROM_PTR(&mod_os_sync_obj) },
     { MP_ROM_QSTR(MP_QSTR_mount), MP_ROM_PTR(&mp_os_mount_obj) },
     { MP_ROM_QSTR(MP_QSTR_mount), MP_ROM_PTR(&mp_os_mount_obj) },
 
 
 //    { MP_ROM_QSTR(MP_QSTR_Timer), MP_ROM_PTR(&pyb_timer_type) },
 //    { MP_ROM_QSTR(MP_QSTR_Timer), MP_ROM_PTR(&pyb_timer_type) },

+ 0 - 7
port/modrtthread.c

@@ -56,13 +56,6 @@ STATIC mp_obj_t mod_stacks_analyze(void) {
 }
 }
 STATIC MP_DEFINE_CONST_FUN_OBJ_0(mod_stacks_analyze_obj, mod_stacks_analyze);
 STATIC MP_DEFINE_CONST_FUN_OBJ_0(mod_stacks_analyze_obj, mod_stacks_analyze);
 
 
-//STATIC mp_obj_t os_sync(void) {
-//    //TODO
-//    MP_RTT_NOT_IMPL_PRINT;
-//    return mp_const_none;
-//}
-//MP_DEFINE_CONST_FUN_OBJ_0(mod_os_sync_obj, os_sync);
-
 STATIC mp_obj_t mp_os_mount(size_t n_args, const mp_obj_t *pos_args, mp_map_t *kw_args) {
 STATIC mp_obj_t mp_os_mount(size_t n_args, const mp_obj_t *pos_args, mp_map_t *kw_args) {
     //TODO
     //TODO
     MP_RTT_NOT_IMPL_PRINT;
     MP_RTT_NOT_IMPL_PRINT;

+ 5 - 0
port/moduos.c

@@ -24,6 +24,10 @@
  * THE SOFTWARE.
  * THE SOFTWARE.
  */
  */
 
 
+#include "py/mpconfig.h"
+
+#if MICROPY_PY_MODUOS
+
 #include <stdint.h>
 #include <stdint.h>
 #include <string.h>
 #include <string.h>
 
 
@@ -131,3 +135,4 @@ const mp_obj_module_t mp_module_uos = {
     .globals = (mp_obj_dict_t*)&os_module_globals,
     .globals = (mp_obj_dict_t*)&os_module_globals,
 };
 };
 
 
+#endif /* MICROPY_PY_MODUOS */

+ 4 - 1
port/moduos_file.c

@@ -24,6 +24,10 @@
  * THE SOFTWARE.
  * THE SOFTWARE.
  */
  */
 
 
+#include "py/mpconfig.h"
+
+#if MICROPY_PY_MODUOS_FILE
+
 #include <stdint.h>
 #include <stdint.h>
 #include <string.h>
 #include <string.h>
 #include <dfs_posix.h>
 #include <dfs_posix.h>
@@ -33,7 +37,6 @@
 #include "py/mperrno.h"
 #include "py/mperrno.h"
 #include "moduos_file.h"
 #include "moduos_file.h"
 
 
-#if MICROPY_PY_MODUOS_FILE
 
 
 mp_obj_t mp_posix_mount(size_t n_args, const mp_obj_t *pos_args, mp_map_t *kw_args) {
 mp_obj_t mp_posix_mount(size_t n_args, const mp_obj_t *pos_args, mp_map_t *kw_args) {
 
 

+ 4 - 3
port/modusocket.c

@@ -24,6 +24,10 @@
  * THE SOFTWARE.
  * THE SOFTWARE.
  */
  */
 
 
+#include "py/mpconfig.h"
+
+#if MICROPY_PY_USOCKET
+
 #include <stdio.h>
 #include <stdio.h>
 #include <string.h>
 #include <string.h>
 #include <stdio.h>
 #include <stdio.h>
@@ -42,9 +46,6 @@
 #include "lib/netutils/netutils.h"
 #include "lib/netutils/netutils.h"
 #include "modnetwork.h"
 #include "modnetwork.h"
 
 
-
-#if MICROPY_PY_USOCKET
-
 /******************************************************************************/
 /******************************************************************************/
 // socket class
 // socket class
 
 

+ 39 - 28
port/mpconfigport.h

@@ -103,8 +103,6 @@
 #define MICROPY_PY_COLLECTIONS_ORDEREDDICT (1)
 #define MICROPY_PY_COLLECTIONS_ORDEREDDICT (1)
 #define MICROPY_PY_MATH             (1)
 #define MICROPY_PY_MATH             (1)
 #define MICROPY_PY_MATH_SPECIAL_FUNCTIONS (1)
 #define MICROPY_PY_MATH_SPECIAL_FUNCTIONS (1)
-#define MICROPY_PY_IO               (1)
-#define MICROPY_PY_IO_FILEIO        (1)
 #define MICROPY_PY_MICROPYTHON_MEM_INFO (1)
 #define MICROPY_PY_MICROPYTHON_MEM_INFO (1)
 #define MICROPY_STREAMS_NON_BLOCK   (1)
 #define MICROPY_STREAMS_NON_BLOCK   (1)
 #define MICROPY_MODULE_WEAK_LINKS   (1)
 #define MICROPY_MODULE_WEAK_LINKS   (1)
@@ -123,8 +121,6 @@
 #define MICROPY_PY_OS_DUPTERM       (1)
 #define MICROPY_PY_OS_DUPTERM       (1)
 #define MICROPY_VFS                 (0)
 #define MICROPY_VFS                 (0)
 #define MICROPY_VFS_FAT             (0)
 #define MICROPY_VFS_FAT             (0)
-#define MICROPY_PY_MODUOS_FILE      (1)
-#define MICROPY_PY_SYS_STDFILES     (1)
 #define MICROPY_PY_UTIME            (1)
 #define MICROPY_PY_UTIME            (1)
 #define MICROPY_PY_MACHINE          (1)
 #define MICROPY_PY_MACHINE          (1)
 #define MICROPY_PY_MACHINE_PIN_MAKE_NEW mp_pin_make_new
 #define MICROPY_PY_MACHINE_PIN_MAKE_NEW mp_pin_make_new
@@ -135,6 +131,17 @@
 /*****************************************************************************/
 /*****************************************************************************/
 /* System Module                                                             */
 /* System Module                                                             */
 
 
+#ifdef MICROPYTHON_USING_OS
+#define MICROPY_PY_IO               (1)
+#define MICROPY_PY_IO_FILEIO        (1)
+#define MICROPY_PY_MODUOS           (1)
+#define MICROPY_PY_MODUOS_FILE      (1)
+#define MICROPY_PY_SYS_STDFILES     (1)
+#else
+#define MICROPY_PY_IO               (0)
+#define MICROPY_PY_MODUOS           (0)
+#endif /* MICROPYTHON_USING_OS */
+
 #ifdef MICROPYTHON_USING_USELECT
 #ifdef MICROPYTHON_USING_USELECT
 #define MICROPY_PY_USELECT          (1)
 #define MICROPY_PY_USELECT          (1)
 #endif
 #endif
@@ -261,12 +268,6 @@ typedef long mp_off_t;
 
 
 #define MP_PLAT_PRINT_STRN(str, len) mp_hal_stdout_tx_strn_cooked(str, len)
 #define MP_PLAT_PRINT_STRN(str, len) mp_hal_stdout_tx_strn_cooked(str, len)
 
 
-#define mp_import_stat(x) mp_posix_import_stat(x)
-
-// extra built in names to add to the global namespace
-#define MICROPY_PORT_BUILTINS \
-    { MP_ROM_QSTR(MP_QSTR_open), MP_ROM_PTR(&mp_builtin_open_obj) },
-
 #define MICROPY_HW_BOARD_NAME "Universal python platform"
 #define MICROPY_HW_BOARD_NAME "Universal python platform"
 #define MICROPY_HW_MCU_NAME   "RT-Thread"
 #define MICROPY_HW_MCU_NAME   "RT-Thread"
 #define MICROPY_PY_PATH       "/libs/mpy/"
 #define MICROPY_PY_PATH       "/libs/mpy/"
@@ -275,11 +276,6 @@ typedef long mp_off_t;
 #define MICROPY_MIN_USE_STDOUT (1)
 #define MICROPY_MIN_USE_STDOUT (1)
 #endif
 #endif
 
 
-#ifdef __thumb__
-#define MICROPY_MIN_USE_CORTEX_CPU (1)
-#define MICROPY_MIN_USE_STM32_MCU (1)
-#endif
-
 #define MP_STATE_PORT                  MP_STATE_VM
 #define MP_STATE_PORT                  MP_STATE_VM
 
 
 #define MICROPY_PORT_ROOT_POINTERS     const char *readline_hist[8];
 #define MICROPY_PORT_ROOT_POINTERS     const char *readline_hist[8];
@@ -294,31 +290,46 @@ extern const struct _mp_obj_module_t mp_module_usocket;
 extern const struct _mp_obj_module_t mp_module_io;
 extern const struct _mp_obj_module_t mp_module_io;
 
 
 #if MICROPY_PY_RTTHREAD
 #if MICROPY_PY_RTTHREAD
-#define MICROPY_PY_RTTHREAD_MODULE { MP_ROM_QSTR(MP_QSTR_rtthread), MP_ROM_PTR(&mp_module_rtthread) },
+#define RTTHREAD_PORT_BUILTIN_MODULES { MP_ROM_QSTR(MP_QSTR_rtthread), MP_ROM_PTR(&mp_module_rtthread) },
 #else
 #else
-#define MICROPY_PY_RTTHREAD_MODULE
-#endif
+#define RTTHREAD_PORT_BUILTIN_MODULES
+#endif /* MICROPY_PY_RTTHREAD */
+
+#if MICROPY_PY_MODUOS
+#define MODUOS_PORT_BUILTINS                     { MP_ROM_QSTR(MP_QSTR_open), MP_ROM_PTR(&mp_builtin_open_obj) },
+#define MODUOS_PORT_BUILTIN_MODULES              { MP_ROM_QSTR(MP_QSTR_os), MP_ROM_PTR(&mp_module_uos) },
+#define MODUOS_PORT_BUILTIN_MODULE_WEAK_LINKS    { MP_ROM_QSTR(MP_QSTR_os), MP_ROM_PTR(&mp_module_uos) },
+#define mp_import_stat(x)                        mp_posix_import_stat(x)
+#else
+#define MODUOS_PORT_BUILTINS
+#define MODUOS_PORT_BUILTIN_MODULES
+#define MODUOS_PORT_BUILTIN_MODULE_WEAK_LINKS
+#endif /* MICROPY_PY_MODUOS */
 
 
 #if MICROPY_PY_USOCKET
 #if MICROPY_PY_USOCKET
-#define SOCKET_BUILTIN_MODULE               { MP_ROM_QSTR(MP_QSTR_usocket), MP_ROM_PTR(&mp_module_usocket) },
-#define SOCKET_BUILTIN_MODULE_WEAK_LINKS    { MP_ROM_QSTR(MP_QSTR_socket), MP_ROM_PTR(&mp_module_usocket) },
+#define SOCKET_PORT_BUILTIN_MODULES              { MP_ROM_QSTR(MP_QSTR_usocket), MP_ROM_PTR(&mp_module_usocket) },
+#define SOCKET_PORT_BUILTIN_MODULE_WEAK_LINKS    { MP_ROM_QSTR(MP_QSTR_socket), MP_ROM_PTR(&mp_module_usocket) },
 #else
 #else
-#define SOCKET_BUILTIN_MODULE
-#define SOCKET_BUILTIN_MODULE_WEAK_LINKS
-#endif
+#define SOCKET_PORT_BUILTIN_MODULES
+#define SOCKET_PORT_BUILTIN_MODULE_WEAK_LINKS
+#endif /* MICROPY_PY_USOCKET */
+
+// extra built in names to add to the global namespace
+#define MICROPY_PORT_BUILTINS \
+    MODUOS_PORT_BUILTINS \
 
 
 #define MICROPY_PORT_BUILTIN_MODULES \
 #define MICROPY_PORT_BUILTIN_MODULES \
     { MP_ROM_QSTR(MP_QSTR_machine), MP_ROM_PTR(&mp_module_machine) }, \
     { MP_ROM_QSTR(MP_QSTR_machine), MP_ROM_PTR(&mp_module_machine) }, \
     { MP_ROM_QSTR(MP_QSTR_pyb), MP_ROM_PTR(&pyb_module) }, \
     { MP_ROM_QSTR(MP_QSTR_pyb), MP_ROM_PTR(&pyb_module) }, \
-    MICROPY_PY_RTTHREAD_MODULE \
-    { MP_ROM_QSTR(MP_QSTR_uos), MP_ROM_PTR(&mp_module_uos) }, \
-    SOCKET_BUILTIN_MODULE \
+    RTTHREAD_PORT_BUILTIN_MODULES \
+    MODUOS_PORT_BUILTIN_MODULES \
+    SOCKET_PORT_BUILTIN_MODULES \
     { MP_ROM_QSTR(MP_QSTR_utime), MP_ROM_PTR(&mp_module_time) }, \
     { MP_ROM_QSTR(MP_QSTR_utime), MP_ROM_PTR(&mp_module_time) }, \
 
 
 #define MICROPY_PORT_BUILTIN_MODULE_WEAK_LINKS \
 #define MICROPY_PORT_BUILTIN_MODULE_WEAK_LINKS \
     { MP_ROM_QSTR(MP_QSTR_time), MP_ROM_PTR(&mp_module_time) }, \
     { MP_ROM_QSTR(MP_QSTR_time), MP_ROM_PTR(&mp_module_time) }, \
-    { MP_ROM_QSTR(MP_QSTR_os), MP_ROM_PTR(&mp_module_uos) }, \
-    SOCKET_BUILTIN_MODULE_WEAK_LINKS \
+    MODUOS_PORT_BUILTIN_MODULE_WEAK_LINKS \
+    SOCKET_PORT_BUILTIN_MODULE_WEAK_LINKS \
     { MP_ROM_QSTR(MP_QSTR_struct), MP_ROM_PTR(&mp_module_ustruct) }, \
     { MP_ROM_QSTR(MP_QSTR_struct), MP_ROM_PTR(&mp_module_ustruct) }, \
 
 
 #define MP_RTT_NOT_IMPL_PRINT rt_kprintf("Not implement on %s:%ld, Please add for your board!\n", __FILE__, __LINE__)
 #define MP_RTT_NOT_IMPL_PRINT rt_kprintf("Not implement on %s:%ld, Please add for your board!\n", __FILE__, __LINE__)

+ 5 - 3
port/mpy_main.c

@@ -129,9 +129,11 @@ void gc_collect(void) {
     gc_dump_info();
     gc_dump_info();
 }
 }
 
 
-//mp_lexer_t *mp_lexer_new_from_file(const char *filename) {
-//    mp_raise_OSError(ENOENT);
-//}
+#if !MICROPY_PY_MODUOS_FILE
+mp_import_stat_t mp_import_stat(const char *path) {
+    return MP_IMPORT_STAT_NO_EXIST;
+}
+#endif
 
 
 NORETURN void nlr_jump_fail(void *val) {
 NORETURN void nlr_jump_fail(void *val) {
     DEBUG_printf("nlr_jump_fail\n");
     DEBUG_printf("nlr_jump_fail\n");