[comp.lang.forth] "Big" embedded systems

wmb@MITCH.ENG.SUN.COM (12/30/90)

@    The view as I can see from atop my soap-box is that embedded applications
@  are going to get bigger and bigger. Youd need more programmers on each
@  than just one ...
@     Such production environment would need ... well an environment,
@  with tools such as SCCS/RCS or other version control systems, project
@  management etc. These would be large machines, probably running a
@  standard OS (maybe UNIX or other) ...
@     But the end system, the embedded product will still be small,
@  memory constrained and tightly engineered.
@     So the developers design the entire application in one
@  such environment, download/burn it ... and test out the system.
@    And dont developers patch code ?  [ yes ] ...
@  Now patching C code is tough .. you need a copy of the symbol table,
@  maybe a disassembler and symbolic execution tool too. But FORTH,
@  ... can be de-compiled, and even patched manually with little trouble,
@    This Forth system runs on the embedded box, and small changes can
@  be as easily patched.

The posting quoted above hits at least one nail squarely on the head.
That description fits Sun Microsystems' Forth-based Open Boot PROM
firmware like a glove.

This "embedded system" is not small in the traditional sense, in that
the code runs on a 28 MIPS processor and occupies about 128K of ROM
space, but it is very constrained;  we have had to use numerous shrinking
techniques to make the needed functions fit in the available space.

The source control tools (we use SCCS) have been invaluable.  We simply would
not have succeeded without them.

The latest version of the Open Boot firmware has a built-in patching
facility, in which we use non-volatile RAM as a "text file" containing
Forth source code.  That source code can be used to install patches
to work around bugs, and to supply additional features that became
necessary after a particular version of the PROM was released.  In the
2 months that this "NVRAM patch" feature has been available, we have
already used it 3 times, turning priority 1 "stop everything and release
a new PROM" bugs into priority 3 "we'll fix it in the next release,
meanwhile here's a patch" bugs.

This feature is making Forth look very attractive to management.

Mitch Bradley, wmb@Eng.Sun.COM