From 2c0310ca9adc09c267c9da60ff9f8d3d1fe1b580 Mon Sep 17 00:00:00 2001 From: Phil Howard Date: Fri, 24 Mar 2023 20:35:20 +0000 Subject: [PATCH] MicroPython: Switch C++ allocation mode in boot.py. --- micropython/modules/cppmem/cppmem.cpp | 12 +----------- micropython/modules/micropython-badger2040w.cmake | 1 + micropython/modules/micropython-common.cmake | 1 + .../modules/micropython-picow_cosmic_unicorn.cmake | 1 + micropython/modules/micropython-picow_enviro.cmake | 1 + .../modules/micropython-picow_galactic_unicorn.cmake | 1 + .../modules/micropython-picow_inky_frame.cmake | 1 + micropython/modules/micropython-tufty2040.cmake | 1 + micropython/modules_py/boot.py | 3 +++ 9 files changed, 11 insertions(+), 11 deletions(-) create mode 100644 micropython/modules_py/boot.py diff --git a/micropython/modules/cppmem/cppmem.cpp b/micropython/modules/cppmem/cppmem.cpp index 9a1dcb73..5fa01e6e 100644 --- a/micropython/modules/cppmem/cppmem.cpp +++ b/micropython/modules/cppmem/cppmem.cpp @@ -105,14 +105,4 @@ void operator delete(void *p, __unused std::size_t n) noexcept { stat_free(p); } void operator delete[](void *p, __unused std::size_t n) noexcept { stat_free(p); } -#endif - -namespace { - struct SwitchAllocatorMode { - public: - SwitchAllocatorMode() { - mode = MICROPYTHON; - } - }; - SwitchAllocatorMode switchallocatormode __attribute__ ((init_priority (65535))); -} \ No newline at end of file +#endif \ No newline at end of file diff --git a/micropython/modules/micropython-badger2040w.cmake b/micropython/modules/micropython-badger2040w.cmake index 02ed89ce..2ca78c4d 100644 --- a/micropython/modules/micropython-badger2040w.cmake +++ b/micropython/modules/micropython-badger2040w.cmake @@ -40,6 +40,7 @@ include(motor/micropython) # include(micropython-common) include(modules_py/modules_py) +copy_module(boot.py) # C++ Magic Memory include(cppmem/micropython) \ No newline at end of file diff --git a/micropython/modules/micropython-common.cmake b/micropython/modules/micropython-common.cmake index 04fac22f..c65f4474 100644 --- a/micropython/modules/micropython-common.cmake +++ b/micropython/modules/micropython-common.cmake @@ -48,6 +48,7 @@ if(PICO_BOARD STREQUAL "pico_w") copy_module(automation.py) copy_module(inventor.py) endif() +copy_module(boot.py) # Must call `enable_ulab()` to enable include(micropython-common-ulab) \ No newline at end of file diff --git a/micropython/modules/micropython-picow_cosmic_unicorn.cmake b/micropython/modules/micropython-picow_cosmic_unicorn.cmake index 20d99ab3..bbaa0a4c 100644 --- a/micropython/modules/micropython-picow_cosmic_unicorn.cmake +++ b/micropython/modules/micropython-picow_cosmic_unicorn.cmake @@ -35,6 +35,7 @@ include(micropython-common-ulab) enable_ulab() include(modules_py/modules_py) +copy_module(boot.py) # C++ Magic Memory include(cppmem/micropython) diff --git a/micropython/modules/micropython-picow_enviro.cmake b/micropython/modules/micropython-picow_enviro.cmake index cd5f00c6..3c03044f 100644 --- a/micropython/modules/micropython-picow_enviro.cmake +++ b/micropython/modules/micropython-picow_enviro.cmake @@ -45,6 +45,7 @@ include(motor/micropython) # include(micropython-common) include(modules_py/modules_py) +copy_module(boot.py) # C++ Magic Memory include(cppmem/micropython) \ No newline at end of file diff --git a/micropython/modules/micropython-picow_galactic_unicorn.cmake b/micropython/modules/micropython-picow_galactic_unicorn.cmake index ea276c59..8c140f16 100644 --- a/micropython/modules/micropython-picow_galactic_unicorn.cmake +++ b/micropython/modules/micropython-picow_galactic_unicorn.cmake @@ -35,6 +35,7 @@ include(micropython-common-ulab) enable_ulab() include(modules_py/modules_py) +copy_module(boot.py) # C++ Magic Memory include(cppmem/micropython) diff --git a/micropython/modules/micropython-picow_inky_frame.cmake b/micropython/modules/micropython-picow_inky_frame.cmake index 64810a5a..d625550c 100644 --- a/micropython/modules/micropython-picow_inky_frame.cmake +++ b/micropython/modules/micropython-picow_inky_frame.cmake @@ -46,6 +46,7 @@ include(motor/micropython) include(modules_py/modules_py) copy_module(inky_frame.py) +copy_module(boot.py) # C++ Magic Memory include(cppmem/micropython) diff --git a/micropython/modules/micropython-tufty2040.cmake b/micropython/modules/micropython-tufty2040.cmake index 5b4fe1cc..6fea711d 100644 --- a/micropython/modules/micropython-tufty2040.cmake +++ b/micropython/modules/micropython-tufty2040.cmake @@ -40,6 +40,7 @@ include(micropython-common-ulab) enable_ulab() include(modules_py/modules_py) +copy_module(boot.py) # C++ Magic Memory include(cppmem/micropython) \ No newline at end of file diff --git a/micropython/modules_py/boot.py b/micropython/modules_py/boot.py new file mode 100644 index 00000000..46e338cc --- /dev/null +++ b/micropython/modules_py/boot.py @@ -0,0 +1,3 @@ +import cppmem +# Switch C++ memory allocations to use MicroPython's heap +cppmem.set_mode(cppmem.MICROPYTHON)