You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 
Edd Barrett 8146aea8ef malloc.h is obsolete. 11 years ago
py py: change declaration of mp_map_t in obj.h (for issue #24). 11 years ago
pybv3 Add PYBv3 EAGLE files, gerbers, schematic, BOM and assembly guide. 11 years ago
stm Use rm -rf to remove build dir, so it doesn't error out if dir doesn't exist. 11 years ago
tests py: make closures work. 11 years ago
tools Add tools/dfu.py, and use it in stm/Makefile. 11 years ago
unix malloc.h is obsolete. 11 years ago
unix-cpy Use rm -rf to remove build dir, so it doesn't error out if dir doesn't exist. 11 years ago
CODECONVENTIONS.md Add CODECONVENTIONS, and modify i2c module to conform. 11 years ago
LICENSE Add LICENSE and README. 11 years ago
README.md Update README with disclaimer for changing code; use gmake on BSD. 11 years ago

README.md

The Micro Python project

This is the Micro Python project, which aims to put an implementation of Python 3.x on a microcontroller. The project also includes a small microcontroller board based around the STM32F405RG.

WARNING: this project is in its early stages and is subject to large changes of the code-base, including project-wide name changes and API changes. The software will not start to mature until March 2014 at the earliest. For the moment the priority is the hardware.

Major components:

  • py/ -- the core Python implementation, including compiler and runtime.
  • unix/ -- a version of Micro Python that runs on Unix.
  • stm/ -- a version of Micro Python that runs on the Micro Python board with an STM32F405RG.
  • pybv3/ -- schematics, gerbers and EAGLE files for revision 3 of the Micro Python board.

Additional components:

  • unix-cpy/ -- a version of Micro Python that outputs bytecode (for testing).
  • tests/ -- test framework and test scripts.
  • tools/ -- various tools.

"make" is used to build the components, or "gmake" on BSD-based systems.

The Unix version

The "unix" part requires a standard Unix environment with gcc. It works only for 64-bit machines due to a small piece of x86-64 assembler for the exception handling.

To build:

$ cd unix
$ make

Then to test it:

$ ./py
>>> list(5 * x + y for x in range(10) for y in [4, 2, 1])

Ubuntu and Mint derivatives will require build-essentials and libreadline-dev packages installed.

The STM version

The "stm" part requires an ARM compiler, arm-none-eabi-gcc, and associated bin-utils. For those using Arch Linux, you need arm-none-eabi-binutils and arm-none-eabi-gcc packages from the AUR. Otherwise, try here: https://launchpad.net/gcc-arm-embedded

To build:

$ cd stm
$ make

Then to flash it via USB DFU to your device:

$ dfu-util -a 0 -D build/flash.dfu

You will need the dfu-util program, on Arch Linux it's dfu-util-git in the AUR.