# The minimal port This port is intended to be a minimal MicroPython port that actually runs. It can run under Linux (or similar) and on any STM32F4xx MCU (eg the pyboard). ## Building and running Linux version By default the port will be built for the host machine: $ make To run the executable and get a basic working REPL do: $ make run ## Building for an STM32 MCU The Makefile has the ability to build for a Cortex-M CPU, and by default includes some start-up code for an STM32F4xx MCU and also enables a UART for communication. To build: $ make CROSS=1 If you previously built the Linux version, you will need to first run `make clean` to get rid of incompatible object files. Building will produce the build/firmware.dfu file which can be programmed to an MCU using: $ make CROSS=1 deploy This version of the build will work out-of-the-box on a pyboard (and anything similar), and will give you a MicroPython REPL on UART1 at 9600 baud. Pin PA13 will also be driven high, and this turns on the red LED on the pyboard. ## Building without the built-in MicroPython compiler This minimal port can be built with the built-in MicroPython compiler disabled. This will reduce the firmware by about 20k on a Thumb2 machine, and by about 40k on 32-bit x86. Without the compiler the REPL will be disabled, but pre-compiled scripts can still be executed. To test out this feature, change the `MICROPY_ENABLE_COMPILER` config option to "0" in the mpconfigport.h file in this directory. Then recompile and run the firmware and it will execute the frozentest.py file.