Morgan243 / python-on-a-chip

Automatically exported from code.google.com/p/python-on-a-chip
Other
0 stars 0 forks source link

================ Python-on-a-Chip

featuring PyMite

:Author: Dean Hall :Copyright: Copyright 2002 Dean Hall. See License_ for details. :Release: 09 :Site: http://www.pythononachip.org

Purpose

Python-on-a-Chip (p14p) is a project to develop a reduced Python virtual machine (codenamed PyMite) that runs a significant subset of the Python 2.6 language on microcontrollers without an OS. The other parts of p14p are the device drivers, high-level libraries and other tools. Please join the python-on-a-chip google group_ to discuss this project.

.. _python-on-a-chip google group: http://groups.google.com/group/python-on-a-chip

License

See the LICENSE_ file to understand the terms of licensing for each component of the Python-on-a-Chip program.

.. _LICENSE: LICENSE

Build

P14p is built, for most platforms, using a POSIX-like terminal, a Makefile (or using SCons) and a GCC [cross] compiler. The desktop64 platform is the default target platform and it builds for Mac OS X, Linux or Cygwin.

GNU Make should be installed since other forms of Make aren't 100% compatible. The development system should have installed the GNU Compiler Collection version 3.4 or later and Python 2.6. The SCons build system is experimental. Please read docs/src/BuildSystem.txt for more details.

To build p14p for the desktop platform and run the interactive prompt::

$ make ipm
...
ipm> print "Hello world."
Hello world.
ipm> ^D

Press Control+D when done with the interactive prompt. To run the system tests on the desktop::

$ make check

To cross-compile for a different platform, type make PLATFORM=<plat> where <plat> is the name of a subdirectory in src/platform/. For example::

$ make PLATFORM=avr

The author uses avr-gcc to compile for Atmel AVR microcontrollers. Other platforms use other compilers. The windows platform uses a MicroSoft IDE.

Since p14p is so deeply embedded, it does not rely on many libraries. For example, the avr platform needs only avr-libc and the econotag platform requires newlib but also uses libmc1322x for advanced wireless features.

.. GNU Compiler Collection: http://gcc.gnu.org/ .. Python: http://www.python.org/download

Discussion

Please browse the Python-on-a-chip project site for up-to-date information. and join the Python-on-a-chip maillist for discussion about the p14p project.

.. Python-on-a-chip project: http://code.google.com/p/python-on-a-chip/ .. Python-on-a-chip maillist: http://groups.google.com/group/python-on-a-chip

Thanks

My personal thanks go out to these people for their recent contribution to p14p:

r0A


- David Earlam: finding and fixing a defect with backtraces.
- JT: reporting and fixing a defect with the mbed build.
- Sitti: suggested an improvement for the mbed Makefile.
- James Thomas: Created issues and patches for ipm, mbed and __bi.py.
- Sergiu Mihai: Reported that arduino_mega port wasn't working
- Andrej Antonov: Reported and sent patch to desktop/ipm.py
- Tonio Monnet: Maintained the pmHeapDump.py tool

r09

Target Platforms

Platforms in bold are new since the previous release:

- **arduino_mega**: The Atmel ATmega1280 based `Arduino Mega board`_
- at91sam7s-ek: The Atmel `evaluation kit for the ARM7 AT91SAM7S64`_ **[Not Recommended]**
- avr: Generic `Atmel AVR`_
- desktop: Mac OS X, Linux, Cygwin or any other Posix-like desktop OS
- **desktop64**: Mac OS X, Linux, Cygwin or any other 64-bit Posix-like desktop OS
- **econotag**: The Freescale MC13224 based `Redbee EconoTAG`_ 802.15.4 wireless module
- mbed: The NXP LPC1368 based mbed_ microcontroller platform
- mmb103: The Atmel ATmega103 based Mega Mini Board **[Not Recommended]**
- **mosync**: The MoSync_ cross-platform framework for mobile platforms.
- **pic24**: The `Microchip PIC24/dsPIC family`_
- **stm32**: The ST Microelectronics STM32F103 `ET-STM32 Stamp Module`_
- **teensy**: The Atmel ATmega 1280 based `Teensy++ 2.0`_
- **windows**: The MicroSoft Windows desktop OS

.. Arduino Mega board: http://arduino.cc/en/Main/ArduinoBoardMega .. evaluation kit for the ARM7 AT91SAM7S64: http://www.atmel.com/dyn/products/tools_card.asp?tool_id=3784 .. _Atmel AVR: http://www.atmel.com/products/AVR/megaavr.asp?family_id=607&source=avrhomereadmore .. _Redbee EconoTAG: http://redwirellc.com/store/index.php?route=product/product&product_id=56 .. _mbed: http://mbed.org/ .. MoSync: http://www.mosync.com/ .. Microchip PIC24/dsPIC family: http://www.microchip.com/stellent/idcplg?IdcService=SS_GET_PAGE&nodeId=2629&param=en533465 .. _ET-STM32 Stamp Module: http://www.futurlec.com/ET-STM32_Stamp.shtml .. _Teensy++ 2.0: http://www.pjrc.com/teensy/

Release Notes

This is release 09

.. _go here: http://code.google.com/p/python-on-a-chip/issues/list?can=1&q=Milestone%3D09

.. :mode=rest: