Skip to content
Snippets Groups Projects
Select Git revision
  • fc28ffb4ac1230bb932d63fa285a8fb09eb67fd4
  • main default protected
  • pippin/media_framework
  • release/1.1.1
  • release/1.1.0
  • fpletz/flake
  • sec/auto-nick
  • rahix/flow3rseeds
  • compressor
  • sec/blinky
  • pippin/uhm_flash_access_bust
  • release/1.0.0
  • fm_fix2
  • fm_fix
  • pippin/make_empty_drawlists_skip_render_and_blit
  • pressable_bugfix
  • moon2_gay_drums
  • moon2_applications
  • schneider/application-remove-name
  • anon/webflasher
  • pippin/display-python-errors-on-display
  • v1.1.1
  • v1.1.0
  • v1.1.0+rc1
  • v1.0.0
  • v1.0.0+rc6
  • v1.0.0+rc5
  • v1.0.0+rc4
  • v1.0.0+rc3
  • v1.0.0+rc2
  • v1.0.0+rc1
31 results

modesp32.c

Blame
  • Forked from flow3r / flow3r firmware
    Source project has a limited visibility.
    main.c 700 B
    #include "py/runtime.h"
    #include "py/gc.h"
    #include "lib/utils/pyexec.h"
    #include "py/stackctrl.h"
    #include <stdio.h>
    
    #include "max32665.h"
    
    static char heap[4096];
    
    extern int __StackTop, __StackLimit;
    
    int main(void)
    {
    	if (0) {
    		mp_stack_set_top(&__StackTop);
    		mp_stack_set_limit((mp_int_t)&__StackLimit);
    	}
    
    	/* TMR5 is used to notify on keyboard interrupt */
    	NVIC_EnableIRQ(TMR5_IRQn);
    
    	while (1) {
    		gc_init(heap, heap + sizeof(heap));
    
    		mp_init();
    		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();
    }