Yahoo Groups archive

Lpc2000

Index last updated: 2026-04-28 23:31 UTC

Message

IsoMax for ARM

2004-11-03 by chazeltopman

For all those programmers out there that wish to explore a new
programming paradigm, IsoMax for ARM is available as a preliminary
release from New Micros on 2106 and 2129 development boards.  While
fully functional, the final set of features is still variable and
open to suggestions.  [www.newmicros.com]

As an introduction to IsoMax, let's start with what most of us do
best: we write sequential programs.  This problem solving
methodology originated way before computers and is really an
extension of our thinking and the world we live in.   Since we live
in a time ordered universe, things unfold sequentially.  The most
widely used programming languages allow us to sequentially describe
solutions to problems that we are solving whether it be a blinking
LED, a motor control sequence, a protocol stack, etc.  We run into
limits though when the paradigm no longer fits.  This could be
memory, processor speed, or other resource limits.

Doing one thing at a time is easy.  The difficult side to
programming is doing many things at once.  Again, like the world we
live in, multiple things happen sequentially and also at the same
time.  This parallel dimension of the world makes programming much
more difficult and the nexus of solutions to manage the complexity
usually involves an RTOS or at least some multi-threaded,
time-sharing mechanism which takes the single processor resource and
shares it with multiple programs which operate like they are all
running in parallel.

IsoMax takes a different approach.  The world can be thought of as a
collection of state machines where each state machine runs
independantly of each other and can be used to locally describe
sequential events that cause actions and new states that describe a
changed state.  IsoMax embraces this state machine paradigm fully
and gives structure to your programs allowing you to program
sequentially and in parallel by partitioning a program into multiple
state machines each running independant of the others.  For
instance, in a sensor pod each sensor would have a state machine
which be responsible for the sensor and other state machines would
be added to further process the sensory data as needed.

Both synchronous and asynchronous state machines are supported. 
Synchronous state machines are ones that run according to a clock
while asynchronous state machines are ones that are triggered by
hardware events such as interrupts.  Even more difficult than
parallel programming is trying to get interrupts to work.  IsoMax
for ARM puts a thin layer on top of all the interrupts taking care
of the complexity and makes them easy to program, just like normal
programming.  Probably the most powerful way to get an ARM resource
up and running using interrupts is interactively.  Instead of
editing, saving, compiling, linking, downloading, testing, kaput;
imagine modifying and testing interrupt code using command line
access on the ARM while it is running.

The beauty of the whole system is all that you need to program
IsoMax for ARM is to have a serial COM port that runs at 115k or a
USB port, a terminal program and a text editor.  In addition to the
state machine support, the IsoMax for ARM system includes a command
line, a compiler and debugging tools.

Briefly, IsoMax for ARM includes a fully supported state machine
programming paradigm, 1 us timeouts, queues, high level interrupts,
fuzzy logic, random numbers, flash storage, full peripheral register
access, autobooting, floating point, interactive development, full
32 bit, double numbers for 64 bit, debug facilities and it runs real
fast.

If you are interested in trying out this system or would like to
participate in its final feature list, contact New Micros on the
web.

Thank you for your time.

Rob

Attachments

Move to quarantaine

This moves the raw source file on disk only. The archive index is not changed automatically, so you still need to run a manual refresh afterward.