Micropython:如何在启动时释放所有RAM内存



我正在使用一个库,当程序停止时,它不会释放所有内存。结果,重新启动程序时出现ENOMEM异常。有没有办法在程序重新启动时释放所有RAM内存?

目前,我正在使用硬重置作为解决方法,但我希望能够停止并重新启动程序,并让它在启动时清理 RAM。像这样:clean_ram(). clean_ram()将强制垃圾回收器释放所有分配的内存。

最好的方法是在C级别重新启动MicroPython解释器本身。退出 Python 程序并再次执行整个解释器设置。

在 Python 级别,您可以手动"取消导入"所有模块,然后调用 GC:

# main.py
# do not use any global imports here, except builtins
import gc, sys
while True:
    import program
    del program
    for key in sys.modules:
        del sys.modules[key]
    gc.collect()

然后在program.py做任何你想在main做的事情.

最新更新