diff --git a/extmod/machine_pinbase.c b/extmod/machine_pinbase.c index 90c17d7ab..981dadf0f 100644 --- a/extmod/machine_pinbase.c +++ b/extmod/machine_pinbase.c @@ -24,10 +24,10 @@ * THE SOFTWARE. */ -#include "py/mpconfig.h" -#if MICROPY_PY_MACHINE - #include "py/runtime.h" + +#if MICROPY_PY_MACHINE_PIN_BASE + #include "extmod/modmachine.h" #include "extmod/virtpin.h" @@ -84,4 +84,4 @@ MP_DEFINE_CONST_OBJ_TYPE( protocol, &pinbase_pin_p ); -#endif // MICROPY_PY_MACHINE +#endif // MICROPY_PY_MACHINE_PIN_BASE diff --git a/extmod/modmachine.c b/extmod/modmachine.c index 311d5dc03..e3baea521 100644 --- a/extmod/modmachine.c +++ b/extmod/modmachine.c @@ -81,7 +81,10 @@ STATIC const mp_rom_map_elem_t machine_module_globals_table[] = { { MP_ROM_QSTR(MP_QSTR_time_pulse_us), MP_ROM_PTR(&machine_time_pulse_us_obj) }, #endif - // Class for Signal. + // Classes for PinBase and Signal. + #if MICROPY_PY_MACHINE_PIN_BASE + { MP_ROM_QSTR(MP_QSTR_PinBase), MP_ROM_PTR(&machine_pinbase_type) }, + #endif { MP_ROM_QSTR(MP_QSTR_Signal), MP_ROM_PTR(&machine_signal_type) }, // Classes for software bus protocols. diff --git a/ports/qemu-arm/modmachine.c b/ports/qemu-arm/modmachine.c index 59694f92f..72eaad6ea 100644 --- a/ports/qemu-arm/modmachine.c +++ b/ports/qemu-arm/modmachine.c @@ -27,9 +27,6 @@ // This file is never compiled standalone, it's included directly from // extmod/modmachine.c via MICROPY_PY_MACHINE_INCLUDEFILE. -#define MICROPY_PY_MACHINE_EXTRA_GLOBALS \ - { MP_ROM_QSTR(MP_QSTR_PinBase), MP_ROM_PTR(&machine_pinbase_type) }, \ - // This variable is needed for machine.soft_reset(), but the variable is otherwise unused. int pyexec_system_exit = 0; diff --git a/ports/qemu-arm/mpconfigport.h b/ports/qemu-arm/mpconfigport.h index 36ce2db84..3efa1412d 100644 --- a/ports/qemu-arm/mpconfigport.h +++ b/ports/qemu-arm/mpconfigport.h @@ -48,6 +48,7 @@ #define MICROPY_PY_HASHLIB (1) #define MICROPY_PY_MACHINE (1) #define MICROPY_PY_MACHINE_INCLUDEFILE "ports/qemu-arm/modmachine.c" +#define MICROPY_PY_MACHINE_PIN_BASE (1) #define MICROPY_PY_MICROPYTHON_MEM_INFO (1) #define MICROPY_USE_INTERNAL_PRINTF (1) #define MICROPY_VFS (1) diff --git a/ports/unix/modmachine.c b/ports/unix/modmachine.c index 9eacd5539..40d08d911 100644 --- a/ports/unix/modmachine.c +++ b/ports/unix/modmachine.c @@ -36,9 +36,6 @@ #define MICROPY_PAGE_MASK (MICROPY_PAGE_SIZE - 1) #endif -#define MICROPY_PY_MACHINE_EXTRA_GLOBALS \ - { MP_ROM_QSTR(MP_QSTR_PinBase), MP_ROM_PTR(&machine_pinbase_type) }, \ - // This variable is needed for machine.soft_reset(), but the variable is otherwise unused. int pyexec_system_exit = 0; diff --git a/ports/unix/variants/mpconfigvariant_common.h b/ports/unix/variants/mpconfigvariant_common.h index 082938ed5..981babca9 100644 --- a/ports/unix/variants/mpconfigvariant_common.h +++ b/ports/unix/variants/mpconfigvariant_common.h @@ -116,3 +116,4 @@ // Enable the "machine" module, mostly for machine.mem*. #define MICROPY_PY_MACHINE (1) #define MICROPY_PY_MACHINE_PULSE (1) +#define MICROPY_PY_MACHINE_PIN_BASE (1) diff --git a/ports/windows/mpconfigport.h b/ports/windows/mpconfigport.h index 9dce520c2..2e1521b9c 100644 --- a/ports/windows/mpconfigport.h +++ b/ports/windows/mpconfigport.h @@ -156,6 +156,7 @@ #define MICROPY_PY_MACHINE (1) #define MICROPY_PY_MACHINE_INCLUDEFILE "ports/unix/modmachine.c" #define MICROPY_PY_MACHINE_PULSE (1) +#define MICROPY_PY_MACHINE_PIN_BASE (1) #define MICROPY_MACHINE_MEM_GET_READ_ADDR mod_machine_mem_get_addr #define MICROPY_MACHINE_MEM_GET_WRITE_ADDR mod_machine_mem_get_addr