Przeglądaj źródła

Merge pull request #34 from qgyhd1234/weak

[增加]: 增加模块的弱引用
朱天龙 (Armink) 7 lat temu
rodzic
commit
4e1a006521
1 zmienionych plików z 103 dodań i 3 usunięć
  1. 103 3
      port/mpconfigport.h

+ 103 - 3
port/mpconfigport.h

@@ -322,6 +322,92 @@ extern const struct _mp_obj_fun_builtin_fixed_t machine_soft_reset_obj;
 #define SOCKET_PORT_BUILTIN_MODULE_WEAK_LINKS
 #define SOCKET_PORT_BUILTIN_MODULE_WEAK_LINKS
 #endif /* MICROPY_PY_USOCKET */
 #endif /* MICROPY_PY_USOCKET */
 
 
+#ifdef MICROPYTHON_USING_UBINASCII
+#define MODUBINASCII_PORT_BUILTIN_MODULE_WEAK_LINKS        { MP_ROM_QSTR(MP_QSTR_binascii), MP_ROM_PTR(&mp_module_ubinascii) },
+#else
+#define MODUBINASCII_PORT_BUILTIN_MODULE_WEAK_LINKS
+#endif /* MICROPY_PY_UBINASCII */
+
+#ifdef MICROPY_PY_COLLECTIONS
+#define MODUCOLLECTIONS_PORT_BUILTIN_MODULE_WEAK_LINKS     { MP_ROM_QSTR(MP_QSTR_collections), MP_ROM_PTR(&mp_module_collections ) },
+#else
+#define MODUCOLLECTIONS_PORT_BUILTIN_MODULE_WEAK_LINKS
+#endif /* MICROPY_PY_COLLECTIONS */
+
+#ifdef MICROPYTHON_USING_UERRNO
+#define MODUERRNO_PORT_BUILTIN_MODULE_WEAK_LINKS           { MP_ROM_QSTR(MP_QSTR_errno), MP_ROM_PTR(&mp_module_uerrno ) },
+#else
+#define MODUERRNO_PORT_BUILTIN_MODULE_WEAK_LINKS
+#endif /* MICROPY_PY_UERRNO */
+
+#ifdef MICROPYTHON_USING_UHASHLIB
+#define MODUHASHLIB_PORT_BUILTIN_MODULE_WEAK_LINKS         { MP_ROM_QSTR(MP_QSTR_hashlib), MP_ROM_PTR(&mp_module_uhashlib ) },
+#else
+#define MODUHASHLIB_PORT_BUILTIN_MODULE_WEAK_LINKS
+#endif /* MICROPY_PY_UHASHLIB */
+
+#ifdef MICROPYTHON_USING_UHEAPQ
+#define MODUHEAPQ_PORT_BUILTIN_MODULE_WEAK_LINKS           { MP_ROM_QSTR(MP_QSTR_heapq), MP_ROM_PTR(&mp_module_uheapq ) },
+#else
+#define MODUHEAPQ_PORT_BUILTIN_MODULE_WEAK_LINKS
+#endif /* MICROPY_PY_UHEAPQ */
+
+#if MICROPY_PY_IO
+#define MODUIO_PORT_BUILTIN_MODULE_WEAK_LINKS              { MP_ROM_QSTR(MP_QSTR_io), MP_ROM_PTR(&mp_module_io ) },
+#else
+#define MODUIO_PORT_BUILTIN_MODULE_WEAK_LINKS
+#endif /* MICROPY_PY_UIO */
+
+#ifdef MICROPYTHON_USING_UJSON
+#define MODUJSON_PORT_BUILTIN_MODULE_WEAK_LINKS            { MP_ROM_QSTR(MP_QSTR_json), MP_ROM_PTR(&mp_module_ujson ) },
+#else
+#define MODUJSON_PORT_BUILTIN_MODULE_WEAK_LINKS
+#endif /* MICROPY_PY_UJSON */
+
+#ifdef MICROPYTHON_USING_URANDOM
+#define MODURANDOM_PORT_BUILTIN_MODULE_WEAK_LINKS          { MP_ROM_QSTR(MP_QSTR_random), MP_ROM_PTR(&mp_module_urandom ) },
+#else
+#define MODURANDOM_PORT_BUILTIN_MODULE_WEAK_LINKS
+#endif /* MICROPY_PY_URANDOM */
+
+#ifdef MICROPYTHON_USING_URE
+#define MODURE_PORT_BUILTIN_MODULE_WEAK_LINKS              { MP_ROM_QSTR(MP_QSTR_re), MP_ROM_PTR(&mp_module_ure ) },
+#else
+#define MODURE_PORT_BUILTIN_MODULE_WEAK_LINKS
+#endif /* MICROPY_PY_URE */
+
+#ifdef MICROPYTHON_USING_USELECT
+#define MODUSELECT_PORT_BUILTIN_MODULE_WEAK_LINKS          { MP_ROM_QSTR(MP_QSTR_select), MP_ROM_PTR(&mp_module_uselect ) },
+#else
+#define MODUSELECT_PORT_BUILTIN_MODULE_WEAK_LINKS
+#endif /* MICROPY_PY_USELECT */
+
+#if MICROPY_PY_USSL
+#define MODUSSL_PORT_BUILTIN_MODULE_WEAK_LINKS             { MP_ROM_QSTR(MP_QSTR_ssl), MP_ROM_PTR(&mp_module_ussl ) },
+#else
+#define MODUSSL_PORT_BUILTIN_MODULE_WEAK_LINKS
+#endif /* MICROPY_PY_USSL */
+
+#if MICROPY_PY_STRUCT
+#define MODUSTRUCT_PORT_BUILTIN_MODULE_WEAK_LINKS          { MP_ROM_QSTR(MP_QSTR_struct), MP_ROM_PTR(&mp_module_ustruct ) },
+#else
+#define MODUSTRUCT_PORT_BUILTIN_MODULE_WEAK_LINKS
+#endif /* MICROPY_PY_USTRUCT */
+
+#ifdef MICROPY_PY_UTIME
+#define MODUTIME_PORT_BUILTIN_MODULES                      { MP_ROM_QSTR(MP_QSTR_utime), MP_ROM_PTR(&mp_module_time) },
+#define MODUTIME_PORT_BUILTIN_MODULE_WEAK_LINKS            { MP_ROM_QSTR(MP_QSTR_time), MP_ROM_PTR(&mp_module_time ) },
+#else
+#define SOCKET_PORT_BUILTIN_MODULES    
+#define MODUTIME_PORT_BUILTIN_MODULE_WEAK_LINKS
+#endif /* MICROPY_PY_UTIME */
+
+#ifdef MICROPYTHON_USING_UZLIB
+#define MODUZLIB_PORT_BUILTIN_MODULE_WEAK_LINKS            { MP_ROM_QSTR(MP_QSTR_zlib), MP_ROM_PTR(&mp_module_uzlib ) },
+#else
+#define MODUZLIB_PORT_BUILTIN_MODULE_WEAK_LINKS
+#endif /* MICROPY_PY_UZLIB */
+
 // extra built in names to add to the global namespace
 // extra built in names to add to the global namespace
 #define MICROPY_PORT_BUILTINS \
 #define MICROPY_PORT_BUILTINS \
     { MP_ROM_QSTR(MP_QSTR_exit), MP_ROM_PTR(&machine_soft_reset_obj) }, \
     { MP_ROM_QSTR(MP_QSTR_exit), MP_ROM_PTR(&machine_soft_reset_obj) }, \
@@ -334,13 +420,27 @@ extern const struct _mp_obj_fun_builtin_fixed_t machine_soft_reset_obj;
     RTTHREAD_PORT_BUILTIN_MODULES \
     RTTHREAD_PORT_BUILTIN_MODULES \
     MODUOS_PORT_BUILTIN_MODULES \
     MODUOS_PORT_BUILTIN_MODULES \
     SOCKET_PORT_BUILTIN_MODULES \
     SOCKET_PORT_BUILTIN_MODULES \
-    { MP_ROM_QSTR(MP_QSTR_utime), MP_ROM_PTR(&mp_module_time) }, \
+    MODUTIME_PORT_BUILTIN_MODULES \
 
 
 #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) }, \
+    MODUTIME_PORT_BUILTIN_MODULE_WEAK_LINKS \
     MODUOS_PORT_BUILTIN_MODULE_WEAK_LINKS \
     MODUOS_PORT_BUILTIN_MODULE_WEAK_LINKS \
     SOCKET_PORT_BUILTIN_MODULE_WEAK_LINKS \
     SOCKET_PORT_BUILTIN_MODULE_WEAK_LINKS \
-    { MP_ROM_QSTR(MP_QSTR_struct), MP_ROM_PTR(&mp_module_ustruct) }, \
+    MODUBINASCII_PORT_BUILTIN_MODULE_WEAK_LINKS \
+    MODUCOLLECTIONS_PORT_BUILTIN_MODULE_WEAK_LINKS \
+    MODUERRNO_PORT_BUILTIN_MODULE_WEAK_LINKS \
+    MODUHASHLIB_PORT_BUILTIN_MODULE_WEAK_LINKS \
+    MODUHEAPQ_PORT_BUILTIN_MODULE_WEAK_LINKS \
+    MODUIO_PORT_BUILTIN_MODULE_WEAK_LINKS \
+    MODUJSON_PORT_BUILTIN_MODULE_WEAK_LINKS \
+    MODURANDOM_PORT_BUILTIN_MODULE_WEAK_LINKS \
+    MODURE_PORT_BUILTIN_MODULE_WEAK_LINKS \
+    MODUSELECT_PORT_BUILTIN_MODULE_WEAK_LINKS \
+    MODUSSL_PORT_BUILTIN_MODULE_WEAK_LINKS \
+    MODUSTRUCT_PORT_BUILTIN_MODULE_WEAK_LINKS \
+    MODUTIME_PORT_BUILTIN_MODULE_WEAK_LINKS \
+    MODUZLIB_PORT_BUILTIN_MODULE_WEAK_LINKS \
+    MODUSTRUCT_PORT_BUILTIN_MODULE_WEAK_LINKS \
 
 
 #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__)