commit | f909034400b3552c933582357d1986dae5b70d04 | [log] [tgz] |
---|---|---|
author | Paul Sokolovsky <pfalcon@users.sourceforge.net> | Sun Mar 23 21:19:02 2014 +0200 |
committer | Paul Sokolovsky <pfalcon@users.sourceforge.net> | Sun Mar 23 22:00:04 2014 +0200 |
tree | 31c68a910a97eccc88bd3df61a94e77a30303afa | |
parent | 4b2b7ceca7915d014a191d3776bc29bdbc5faf02 [diff] |
py: Implement support for "except Exception as var" clause. For this, needed to implement DELETE_NAME bytecode (because var bound in except clause is automatically deleted at its end). http://docs.python.org/3/reference/compound_stmts.html#except : "When an exception has been assigned using as target, it is cleared at the end of the except clause."
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:
Additional components:
"make" is used to build the components, or "gmake" on BSD-based systems. You will also need bash and python (2.7 or 3.3) for the stm port.
The "unix" part requires a standard Unix environment with gcc and GNU make. x86 and x64 architectures are supported (i.e. x86 32- and 64-bit). ARM to be confirmed. Porting to other architectures require writing some assembly code for the exception handling.
To build:
$ cd unix $ make
Then to test it:
$ ./micropython >>> list(5 * x + y for x in range(10) for y in [4, 2, 1])
Debian/Ubuntu/Mint derivative Linux distros will require build-essentials and libreadline-dev packages installed. To build FFI (Foreign Function Interface) module (recommended, enable in unix/mpconfigport.mk), libffi-dev is required.
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.