The MicroPython project
 
 
 
 
 
 
Go to file
Damien George 20006dbba9 Make VM stack grow upwards, and so no reversed args arrays.
Change state layout in VM so the stack starts at state[0] and grows
upwards.  Locals are at the top end of the state and number downwards.
This cleans up a lot of the interface connecting the VM to C: now all
functions that take an array of Micro Python objects are in order (ie no
longer in reverse).

Also clean up C API with keyword arguments (call_n and call_n_kw
replaced with single call method that takes keyword arguments).  And now
make_new takes keyword arguments.

emitnative.c has not yet been changed to comply with the new order of
stack layout.
2014-01-18 14:10:48 +00:00
examples Add dummy micropython module to enable mandel.py run with CPython. 2014-01-16 19:29:11 +02:00
logo Make GitHub logo/image a JPEG so it's smaller. 2014-01-14 23:55:53 +00:00
py Make VM stack grow upwards, and so no reversed args arrays. 2014-01-18 14:10:48 +00:00
stm stm: Add stm import support. 2014-01-16 22:09:13 +00:00
teensy made DEBUG control CFLAGS in Makefiles oter than stm as well. 2014-01-13 13:25:10 +00:00
tests Add empty (false) value testing for strings, tuples, lists, dicts. 2014-01-16 23:54:17 +02:00
tools Change dfu.py to be Python 2/3 compatible 2014-01-03 08:51:02 +02:00
unix Make VM stack grow upwards, and so no reversed args arrays. 2014-01-18 14:10:48 +00:00
unix-cpy Merge branch 'str2int' of github.com:xyb/micropython into xyb-str2int 2014-01-15 22:58:39 +00:00
.gitignore Added memzip filesystem support for teensy 2014-01-11 16:16:20 -08:00
CODECONVENTIONS.md Add CODECONVENTIONS, and modify i2c module to conform. 2013-12-29 12:12:25 +00:00
LICENSE Add LICENSE and README. 2013-12-20 11:47:41 +00:00
README.md Make GitHub logo/image a JPEG so it's smaller. 2014-01-14 23:55:53 +00:00

README.md

The Micro Python project

MicroPython Logo

This is the Micro Python project, which aims to put an implementation of Python 3.x on a microcontroller.

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.

See the repository www.github.com/micropython/pyboard for the Micro Python board. At the moment, finalising the design of the board is the top priority.

Major components in this repository:

  • 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.

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. You will also need bash and python3, and python2 for the stm port.

The Unix version

The "unix" part requires a standard Unix environment with gcc and GNU make. 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.