:Author: Dean Hall :Copyright: Copyright 2002 Dean Hall. See License_ for details. :Release: 09 :Site: http://www.pythononachip.org
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
See the LICENSE_ file to understand the terms of licensing for each component of the Python-on-a-Chip program.
.. _LICENSE: LICENSE
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
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
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
- Oscar Lindberg: Porting p14p to the MoSync platform.
- Alex Litz: Reported an error on the windows platform.
- Tonio Monnet: Recommended to use 'const' for the native func table to save RAM, enhancements to src/tools/pmHeapDump.py.
- Michael (michaelnt): Reporting mbed sys.time() and including a patch.
- Angus Gratton: enhancements to lib/avr, port to Teensy++
- J.W. Bruce: Reporting build issue and provided fix.
- Michael (xinx): Found mbed name conflict, reported PySerial issue in ipm and provided fix, reported error in the porting document, donated code to allow hex string formatting.
- Michael Reithinger: Reported GC defects and provided fixes.
- Davide Carboni: Reported a build break, implemented module loading in ipm.
- Markus Gritsch: Feedback on PIC port and ipm docs.
- Bryan Jones: Making Doxygen docs, developing port to PIC24/dsPIC33 platform, mainlining VM bug fixes and helping the windows port.
- Trammell Hudson: Patches for string concatenation and backtick operator (UNARY_CONVERT).
- Duncan McGreggor: Creating an excellent Python-on-a-Chip logo.
- Jan Wedel: Reporting an issue and providing a fix for the DELETE_ATTR bytecode.
- Tyler Wilson: Porting and maintaining p14p on the Windows platform and making good VM improvement suggestions.
- Thomas Fenzl: Patching and testing for 64-bit systems.
- Alex Clausen: Reporting a build break and including a patch for 64-bit systems.
- James Snyder: Porting and maintaining p14p on the STM32 platform.
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¶m=en533465
.. _ET-STM32 Stamp Module
: http://www.futurlec.com/ET-STM32_Stamp.shtml
.. _Teensy++ 2.0
: http://www.pjrc.com/teensy/
This is release 09
-
Release 09, 2010/09/21
For a complete list of changes for this release,
go here
_. Added support for the following major new features:- Classes with multiple inheritance - Generators with iterators, expressions and coroutines - String concatenation using the addition operator '+' - Migrated to Python 2.6 compiler and bytecodes - The backtick operator (s=`x`) for integers and floats - String format (%) using %d,s,f format chars - Closures. Also allows decorators with an argument - The Bytearray class: packet = bytearray(128); b = bytearray(b"abc")
And:
- Improved appearance of ipm - Fixed three nasty defects in the Garbage Collector - Improved readability of exception tracebacks for some platforms - Moved native function tables to "const" to save RAM - Added iter() to builtins (commented out) - Fixed string.count and string.find
-
Release 08, 2009/04/20
-
Release 07, 2009/03/08
-
Release 06, 2009/01/30
-
Release 05, 2007/05/10
-
Release 04, 2006/12/14
-
Release 03, 2006/09/17
-
Release 02, 2006/08/11
-
Release 01, 2003/03/18
.. _go here
: http://code.google.com/p/python-on-a-chip/issues/list?can=1&q=Milestone%3D09
.. :mode=rest:
:Author: Dean Hall :Email: [email protected]
The Python-on-a-Chip program consists of the PyMite virtual machine, ports to specific platforms, libraries, tests, tools and documentation. This document explains the licensing terms of the different components of the Python-on-a-Chip program.
The Python-on-a-Chip program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
The following table explains which license applies to which files in the Python-on-a-Chip program:
===================== ========================================================
The files in . . . are licensed under the . . .
===================== ========================================================
src/vm/ The MIT License
_
src/lib/ The MIT License
_
src/platform/ GNU LESSER GENERAL PUBLIC LICENSE Version 2.1
_
src/tests/ The MIT License
_
src/tools/ The MIT License
_
docs/ The MIT License
_
===================== ========================================================
.. _GNU LESSER GENERAL PUBLIC LICENSE Version 2.1
: http://opensource.org/licenses/LGPL-2.1
.. _The MIT License
: http://opensource.org/licenses/mit-license.php
Dean Hall is the copyright holder for all files in src/vm. Dean Hall is the majority copyright holder for all other files in Python-on-a-Chip with these exceptions:
Bryan Jones contributed all files in src/platform/pic24. James Snyder contributed all files in src/platform/stm32.
Python-on-a-Chip was formerly offered under a dual-license: a commercial license and the GPL. On 2012/08/29, Dean Hall changed the license to the MIT License for all files except those in src/platform/. This license change applies only to the r09 release and specifically does not apply to the software in the repository under the v10 branch.
The cumulitive effect of the licensing above results in the r09 code having a very liberal license and obtaining a commercial license from Dean Hall is no longer necessary for the r09 code.
.. :mode=rest: