Deeply embedded Python still alive?
peter at engcorp.com
Wed Mar 27 04:59:51 CET 2002
Grant Edwards wrote:
> > On Tue, 26 Mar 2002 17:10:10 GMT, grante at visi.com (Grant Edwards) wrote:
> >>The link I have for the Deeply Embedded Python port
> >><http://www.abo.fi/~iporres/python/> has been broken for
> >>several months now. Anybody know what happened to that
> Further googling found this paper describing the project:
Thanks for the link, Grant.
In case anyone is remotely interested, between 1.5 and 1 year
ago we were deeply into porting Python to our own PC104-based
environment which at the time was a 386SX board with 1MB of
RAM and 1MB of flash, running at 33MHz.
For a variety of reasons, listed below, we abandoned the project
after prototyping and have since moved on to a higher powered
board (thankfully we had that option) running standard Linux
and standard Python, now with 32MB RAM and CompactFlash modules
(currently the image is around 24MB) on a 100MHz 486.
The main reasons for leaving the embedded effort were, in
descending order of importance to us:
1. Non-standard persistent storage: 1MB flash could not
be treated as a hard drive and code had to run from
RAM while reprogramming it. With CompactFlash under
Linux we just see a small hard drive and use open().
2. Performance: Python on a 33MHz 386 is just not the
fastest thing on the planet, and more to the point was
insufficient for our needs. If (1) hadn't been a
killer this would have.
3. Cost of supporting our own proprietary port: I mean
proprietary in the sense of we had to worry about it,
not that it had to remain closed. Going standard
let's us get the application out faster and moves
us faster towards contributing source back to the
community (which in the interim I thank most earnestly
for the shoulders we're standing on and ask patience
for those like us who have to take time working on
ancient corporate attitudes and first-to-market
concerns before we can give anything back).
The most beautiful thing about the whole effort is that
it took almost no effort to "port" our code from the
experimental platform to the current one. Python is
easily the most portable language I've had the good fortune
to program in. The only changes we made were for low-level
code which interfaced to a dual-port memory, the
serial port interface code, and some low-level locking/
messaging code which we "mocked" for a while until we
refactored and ditched the old stuff since it was made
almost entirely redundant by Queue and friends.
Just thought I'd share while we're on the subject...
More information about the Python-list