#include "mphalport.h" #include "max32665.h" #include "lib/utils/pyexec.h" #include "py/gc.h" #include "py/runtime.h" #include "py/stackctrl.h" #include <stdio.h> /* Defined in linker script */ extern void *__StackTop, *__StackLimit; extern void *__HeapBase, *__HeapLimit; int main(void) { pycardium_hal_init(); mp_stack_set_top(&__StackTop); mp_stack_set_limit((mp_int_t)&__StackLimit); while (1) { gc_init(&__HeapBase + 1024 * 10, &__HeapLimit); mp_init(); pyexec_file_if_exists("main.py"); pyexec_friendly_repl(); mp_deinit(); } } void gc_collect(void) { void *sp = (void *)__get_MSP(); gc_collect_start(); gc_collect_root( sp, ((mp_uint_t)&__StackTop - (mp_uint_t)sp) / sizeof(mp_uint_t) ); gc_collect_end(); }