[comp.lang.ada] Responses to a Query on Embedded Ada applications using Motorola 68xxx

IVANOVIC%VAXR@CIRCUS.LLNL.GOV ("Vladimir Ivanovic, x3-7786") (06/21/88)

Many thanks to all who responsed to my inquiry (the first message) about
"Embedded Ada applications using Motorola 68xxx architecture".

Here are the (edited) responses.

-- Vladimir
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
Date: Fri, 10 Jun 88 10:00 PDT
From: "Vladimir Ivanovic, x3-7786" <IVANOVIC%VAXR@circus.llnl.gov>

A group of us here at the Lawrence Livermore National Laboratory are starting an
effort to design and implement an embedded controller of industrial equipment
(lasers, power supplies, valves, pumps, etc.)  Our current generation is based
on Digtial's LSI-11 single-board computer and was written in Macro-11 under
RSX-11M.  It meets our current requirements and would probably meet our future
ones, except for: 

    -   the LSI-11's 64K byte address space limitation
    -   the maintainablity of Macro-11
    -   the continued availablity of the LSI-11 board

So, we are evaluating alternatives and are considering switching to a Motorola
68xxx-based microprocessor and using Ada as our implementation language.  I'd be
interested in hearing from people who have similar needs and what solutions they
have come up with, and from those who have had some experience, good or bad,
with Ada on a 68000. 

For instance, possible questions include:

    -   Which (cross-)compiler did you use?
    -   Which bus did you use?
    -   Was the generated code small/fast enough?
    -   Did you design your own boards or did you purchase them?
    -   What run-time environment did you use?
    -   Were there any hardware architectural features that you wished you
        had had?
    -   Were there any hardware architectural features that you wished you
        hadn't had?

Please reply to me directly and I shall summarize the results.

-- Vladimir
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
Date: Sat, 11 Jun 88 18:04:50 PDT
From: Ron Guilmette <rfg@nsc.NSC.COM>

Have you considered using a National 32000 series processor and Ada?  We
sell our own 32323 and 32532 based VME and Multibus boards and would
be glad if you would consider these alternatives as well as the Mot 68K
processors.

Ron Guilmette
National SemiConductor
Internet: rfg@nsc.nsc.com
Uucp: ...{pyramid,sun,amdahl,apple}!nsc!rfg
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
Date: Mon, 13 Jun 88 09:19:09 PDT
From: Bruce Bon <bon@saavik.Jpl.Nasa.GOV>

We are developing real-time robotic software targeted for a VME chassis
with one or more 680x0 cpus.  We have been using VxWorks and C for over
a year and are very happy with the VxWorks product.  It is hosted on a
network of Sun workstations with Ethernet downloading and execution on
the target systems.  The vendor, Wind River Systems, has released or will
shortly release Verdix Ada compiler for this environment.  Suggest you call
them at 415 428-2623.  Their schedule includes release by the end of the
year of a fully integrated Ada environment, including source-level debugger.

Unfortunately, Ada is not mature enough for us to be using now, but we are
trying to keep our options open for the future.

					Bruce Bon
					bon@robotics.jpl.nasa.gov
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
Date: Mon, 13 Jun 88 10:50:56 EDT
From: rracine@ajpo.sei.cmu.EDU

We have been using Ada on the Motorola family of processors (MC68010 and
MC68020) for about 5 years now. 

We are currently using the Verdix cross compiler hosted on a VAX 8650.  

I do not know the bus architecture.  It does not matter to the software,
after initial configuration.

Generated code is never fast enough.  In certain cases, we have used
package Machine_Code (machine code insertions as implemented by Verdix are
better than using an interface to assembler.  One reason is the ability to
use pragma INLINE on the procedures).

We designed our boards.

We have taken many approaches to runtime environments.  In one case, there
was virtually no runtime environment used (no tasking, no dynamic memory).
That project is using the Verdix 5.5 compiler and RTE.  Another approach
was to modify the Verdix 5.4 RTE to provide features useful for embedded
avionics systems.  These features have been packaged in the ARTEWG CIFO
form (if you do not have this document, let me know).  We provide cyclic
task scheduling and events, among other things.

The Motorola Memory Management Unit available for the M68000 family is
somewhat lacking when compared with the Intel 80386.  In addition, there
are some tasking instructions on the Intel which has allowed DDC-I to
implement extremely fast rendezvous for that chip.

The Verdix compiler is pretty robust.  It generates correct code for very
complex source.  This is for code generated without using the optimizer.
We have found some severe problems with the optimizer.

Roger Racine
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
Date: Mon, 13 Jun 88 14:26:43 PDT
From: Randy Neff <neff@shasta.stanford.EDU>

Currently, the only real "real time" runtime for Ada is available from
        Ready Systems
        445 Sherman
        Palo Alto, CA  94306
        415-326-2950

The Ada software is cross developed on VAX/VMS or SUN using the Telesoft
compiler (not recommended).   Then the software is loaded with the Ready
runtime and downloaded into  Motorola VME processor boards with 68020's.
They also have a real time runtime kernal for C and assembly language
for 68020, 68010, 68000, and various Intel chips.

Randall Neff @ anna.stanford.edu
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
Date: 12 Jun 88 21:25
From: decwrl!quark.dec.com!lionel@ucbvax.Berkeley.EDU

I read with interest your posting to Info-Ada (comp.lang.ada) soliciting
information about embedded Ada programming systems.  Given that your
current application uses Digital's LSI-11 and RSX-11, I was wondering
if you had given any consideration to using Digital's VAXELN and
VAXELN Ada.

VAXELN is a real-time executive for VAX and MicroVAX processors, and
it supports configurations that are low-cost and supported by a wide range
of peripherals.  Development is done on VMS systems using standard
VMS compilers (including VAX Ada) and development tools (Language-Sensitive
Editor, Source Code Analyzer, etc.)  Debugging is done remotely, using
a variant of the VMS debugger.

Perhaps you are not familiar with the product.  This wouldn't surprise me
because it is not well known.  However, VAXELN Ada has been available for
over two years, and is a validated Ada implementation.

If you would like more information on VAXELN Ada, let me know and I will
have a Digital representative contact you (or you can ask your own sales
representative.)  If you have rejected VAXELN Ada, I would be curious as
the reasons why - it seems ideal for your application.


Steven Lionel (VAXELN Ada/VAX Ada development)
Digital Equipment Corporation
110 Spit Brook Road, ZKO2-3/N30
Nashua, NH 03062

INTERNET: lionel%quark.DEC.COM
USENET:   {allegra,decvax,ihnp4,ucbvax}!decwrl!quark.dec.com!lionel
EASYNET:  QUARK::LIONEL
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
Date: Tue, 14 Jun 88 09:22:53 EDT
From: rracine@ajpo.sei.cmu.EDU

By the way, on your question about Ada compilers for Motorola 680xx chips, is it
possible [for you] to wait for the DEC / SDS compiler.  It should be ready
sometime next year.  If not, everyone I talk to thinks the Verdix compiler is
the best.  The Telesoft compiler still breaks on complex code.  SDS has not put
much work into their SD Ada because of their work on the joint product with DEC.
Alsys has not made much of a splash in the embedded market; they seem to be
concentrating on the PC market. 

If you can consider a different processor, there are more choices for the
Intel 80386.  Specifically, the DDC-I product has an amazing rendezvous
time: about 25 microseconds for a one way communication (from A to B).

If you are considering modifying the runtime for distributed execution,
you might want to get the Verdix product anyway.  Its runtime is written
in Ada, and you could modify the task switching part to take advantage
of the special instructions available on the 386.

Roger
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
From:	VAXR::IVANOVIC     "Vladimir Ivanovic, x3-7786" 14-JUN-1988 13:11
To:	lionel%quark.dec.com

The crux is this:  We need a replacement for the Falcon *with* the development
environment that comes with VAXs.  

A major factor is cost.  We plan on building hundreds of these embedded
controllers and later others will build maybe a thousand or so.   A KA630 or
even a KA620 (the VAXELN-only version I believe) is out of the question - too
expensive by an order of magnitude.  Our only current VAX option is to buy
VAXStation 2000s and "smash" them to obtain the boards, hence the name
smash-VAX.  Even that is too expensive.

We don't need the extra compute power of a VAX.  The Falcon CPU, for our
appplication, is overkill.  And so is the M68000.  We are, however, running out
of memory on the Falcon.  We do want to be able to use all the tools that are
available on VAXs: VAXset, the debugger, ACS, Ada, etc.  

Our ideal board would have 2-4MB (or more) of memory, a couple of serial and
parallel lines, and an Ethernet connection, all for less than $1000.  We could
deal with some PROM/ROM space.  It should at least run VAXELN.  VMS would
be nice.  We'd like Ada also.

So, we're following with interest the development of the VAX front-end/ Motorola
back-end Ada compiler (XD Ada?) that you are developing with some folks in
England. Since we already have an(other) VAXELN/EPascal application running (and
we want to move it to a VAXELN/Ada version as fast as possible) we'd jump on a
single-board VAX running VAXELN faster than you could lock and unlock a MUTEX (6
microseconds). 

Vladimir Ivanovic
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
Date: Tue, 14 Jun 88 16:32:58 PDT
From: ucsd!sdcsvax.UCSD.EDU!sdsu!roetzhei@ucbvax.Berkeley.EDU

I am involved in developing real time communication controllers
using MC68020 hardware and Ada.  The work is in the Requirements
Definition stage now.  We have tentatively selected the Telesoft
Ada compiler and the VRTX run time support kernal.  We will be doing
development on a SUN workstation and downloading the executable code
(via Ethernet) to the multi-cpu MC68020 hardware.  The multiple
MC68020s are all on a VME bus.


William H. Roetzheim
3891 American Avenue
La Mesa, CA  92041
(619) 223-2307
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
Date: Mon, 20 Jun 88 12:05 EDT
From: CPJ%PSUVM.BITNET@CUNYVM.CUNY.EDU

We have been using 68k single board computer by Plessey ( PME-14) on the
VME bus and have found that a very workable combination.  There is an
extensive set of boards available for this bus ( VME bus directory of
350 pages) many of which are suitable for industrial use. Some boards
available are: relay control, servo control, thermocouple input etc..
The double high Eurocards are rugged and the pin/socket connectors are
very reliable. There is the option to create a complete system with
bubble momories, disk drives, I/O controllers etc..
The only complaints we have about the VME based system are: 1- it's
pretty expensive ( ^$3K for a starter system with power supply), 2-
the boards we have used are power hogs which complicates power routing
in some applications.
We use the Telesoft cross compiler and that has been pretty easy to use.
Transferring source code between a Data General and the Vax has been easy
and the compiler generates pretty compact code. We do not try to go
directly from the VAX to the 68k processor but instead download the
generated assembly source, assemble it on a PC and then use a development
system to down-load to the target. That allows off-line operation of the
targeting step at the expense of target source-level debugging. We also
have downloaded the Telesoft run-time environment and generate stand-
alone code without any operating system. Rational provides a ROM based
run-time kernel which is advertised is being much more efficient and
also very much optimized for multi-tasking. We have not found the need
for that level of run-time support. In our application, the 68010 running
at 10Mhz has been more than adequate but so far our applications have
been quite simple. With a math coprocessor, the 68k family is a very
snappy combination.
We find it hard to imagine that the variety of commercial VME bus boards
would ever require designing coustom boards but a number of vendors
provide prototyping boards if needed. One would only need to go the
route of coustom boards if space was an issue and the number of bus
slots used has to be kept to an absolute minimum. There are military
and high rel boards available from a variety of vendors as well.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
Date: Tue, 21 Jun 88 06:32:21 MDT
From: Rick Conn <RCONN@SIMTEL20.ARPA>

Vladimir,

We do most of our Ada work here for 68020 targets.  We have used
Verdix Ada primarily, but we are also looking at Tartan Ada as well.
Both are good choices, but our current feeling is that Tartan Ada
generates more efficient object code while Verdix Ada is more mature.
Both compilers are moving targets, getting better all the time, so
you probably won't go wrong with either choice.

We target to bare 68020's using SUNs for development.  The bare
targets are interfaced to the SUNs over a VME bus, and a small monitor
on the testbed supports file transfer to the target and monitored execution.

Chapter 13 is important to our needs, and Verdix is supporting it well.
We have found Verdix to be quite responsive to our needs, and are quite
pleased with the support (telephone and compiler modification).
We are still evaluating Tartan Ada, and most of my input re Tartan
is from discussions with Tartan users.

	Rick Conn
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -