Porting Squeak to Bare Hardware
Jay Carlson
nop at nop.com
Tue Oct 31 14:52:14 UTC 2000
Mark Guzdial [mailto:guzdial at cc.gatech.edu] writes:
> Jim Roberts here at GaTech is attempting to port Squeak to the TINI
> board. (See his page at http://coweb.cc.gatech.edu/csl/31 for lots
> of links and additional info.)
Cool page.
> The TINI board is cheap (~$50) and can take up to 4M on the board
> with reasonable FLASH memory.
How much does it cost with all that memory attached? The obvious alternative
to TINI for these applications is something like a uCsimm, but it's bigger
and more expensive---8M RAM, 2M flash, $240 if you buy it built. That's not
a particularly compelling price point, but welcome to the world of low
volume systems. Hm, and then there's ARM's $200 eval kit---wait, I don't
need *another* hobby architecture....
> The processor is a descendant of the
> 8088
Not really. It's a decendent of the 8051, which is a much-propagated Intel
family of 8-bit microcontrollers.
> -- it's 32 bit internally, 16 bit data path.
It's 8 bit internally, with various kludges to support expanded memory and a
bolt-on-the-side math unit that you can push 16*16 multiplies and 32/16
divides into. (Actually, their expanded external addressing is a kludge on
top of the 8051's external memory kludge....)
It is one scary CPU for C code that thinks mostly in terms of 32-bit ints
and void*s.
> We've had three strategies that we've been exploring for getting
> Squeak on there:
> (1) Put Squeak into the 4M of memory and launch it via Java Native
> Interface (JNI). The problem is that we can't find a C compiler to
> work with this processor that supports JNI.
And then fight with the garbage collector etc? Sounds like no fun.
> (2) Rewrite the Squeak VM into something Java-ish that can run on top
> of the native JVM. That seems like an enormous amount of work and
> would run VERY slowly.
All I have to say is: Two layers of interpreter on an 8-bit micro. :-)
> (3) Trash the JVM and put a Squeak VM into the Flash memory. This
> option sounds the most reasonable at this point, but we do this with
> some trepidation -- we're essentially trashing the OS and porting to
> bare hardware. For this platform, there is less to port than usual,
> since there is no display, no mouse, no keyboard. But we also lose
> even a filesystem once we trash the JVM. We also still have to
> figure out someway of loading the image (maybe download it serially
> via XModem, like the neat Helio port; or put it all in a C array like
> Paul Fernhout's Squeakette (http://www.kurtz-fernhout.com/squeak)).
I like the XModem approach (thanks :-), although TFTP shouldn't be too hard.
In my poking around I found http://www.turbobit.com/tini.htm which is the
start of a C-based loader/operating system/BIOS.
Jay
More information about the Squeak-dev
mailing list
|