comp.lang.ada
 help / color / mirror / Atom feed
* minimal hardware for ada (newbie)
@ 1999-04-08  0:00 Michael Viotto
  1999-04-09  0:00 ` Tom Moran
  1999-04-09  0:00 ` Tucker Taft
  0 siblings, 2 replies; 6+ messages in thread
From: Michael Viotto @ 1999-04-08  0:00 UTC (permalink / raw)


[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #1: Type: text/plain, Size: 592 bytes --]

Stumbling over Ada in a long thread in comp.arch.embedded I got
interested in that language. I  have some very simple (?) questions. 

Which is the minimal hardware requirement for running Ada on an
embedded system? The "smallest" processor I found was a 386. Are 16-
or even 8-bit processors supported, too? If so, what real time kernels
can be used together with ada?

Any hints are welcome!

Michael Viotto






Institut fuer Solare Energieversorgungstechnik (ISET) e.V.
K�nigstor 59  34119 Kassel Tel: 0561/7294-219   Fax: -100
m.viotto@iset.uni-kassel.de    www.iset.uni-kassel.de




^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: minimal hardware for ada (newbie)
  1999-04-08  0:00 minimal hardware for ada (newbie) Michael Viotto
@ 1999-04-09  0:00 ` Tom Moran
  1999-04-09  0:00   ` Richard D Riehle
  1999-04-09  0:00 ` Tucker Taft
  1 sibling, 1 reply; 6+ messages in thread
From: Tom Moran @ 1999-04-09  0:00 UTC (permalink / raw)


>The "smallest" processor I found was a 386. Are 16-
>or even 8-bit processors supported, too?
Certainly there were Ada 83 compilers targetted to 16 bit 8086
embedded systems.  I haven't kept up to date with more recent stuff
though.





^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: minimal hardware for ada (newbie)
  1999-04-08  0:00 minimal hardware for ada (newbie) Michael Viotto
  1999-04-09  0:00 ` Tom Moran
@ 1999-04-09  0:00 ` Tucker Taft
  1999-04-10  0:00   ` Niklas Holsti
  1 sibling, 1 reply; 6+ messages in thread
From: Tucker Taft @ 1999-04-09  0:00 UTC (permalink / raw)


Michael Viotto wrote:
> 
> Stumbling over Ada in a long thread in comp.arch.embedded I got
> interested in that language. I  have some very simple (?) questions.
> 
> Which is the minimal hardware requirement for running Ada on an
> embedded system? The "smallest" processor I found was a 386. Are 16-
> or even 8-bit processors supported, too? If so, what real time kernels
> can be used together with ada?

We have developed (and recently validated) a version of our
AdaMagic technology which uses optimized ANSI C as its intermediate 
representation.  One of the reasons was to allow a programming team to
write their source code in Ada, while relying only on the availability
of an ANSI C compiler for their chosen target.  We also have
a version of the Ada run-time that at the lowest level depends
only on routines included in the standard ANSI C run-time.

The Ada variable and subprogram names are preserved in the
generated C, and additional "#line" information is provided,
so that it is feasible to use a C debugger to debug at the
Ada source level using this technology.

So it is possible to run Ada on essentially any chip where
a C compiler exists.  However, if you use all of the features
of the run-time, you would probably run out of memory space,
so you would have to avoid features which require a lot of
run-time support (such as rendezvous, full Text_IO, etc.).

> Any hints are welcome!
> 
> Michael Viotto
> 
> Institut fuer Solare Energieversorgungstechnik (ISET) e.V.
> K�nigstor 59  34119 Kassel Tel: 0561/7294-219   Fax: -100
> m.viotto@iset.uni-kassel.de    www.iset.uni-kassel.de

-- 
-Tucker Taft   stt@averstar.com   http://www.averstar.com/~stt/
Technical Director, Distributed IT Solutions  (www.averstar.com/tools)
AverStar (formerly Intermetrics, Inc.)   Burlington, MA  USA




^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: minimal hardware for ada (newbie)
  1999-04-09  0:00 ` Tom Moran
@ 1999-04-09  0:00   ` Richard D Riehle
  0 siblings, 0 replies; 6+ messages in thread
From: Richard D Riehle @ 1999-04-09  0:00 UTC (permalink / raw)



>The "smallest" processor I found was a 386. Are 16-
>or even 8-bit processors supported, too?

 RR Software once had an Ada 83 compiler, absent tasking
 as I recall, for the Z-80.  It is rather unlikely anyone
 would easily produce a full Ada 95 compiler for most of
 the eight bit machines.  In particular, I do not expect
 to ever see an Ada 95 compiler for the I8051. It is not
 practical, and probably not feasible.

 This is pure conjecture, I suppose.  I know some of the
 GNAT folks disagree with me about the feasibility of Ada
 (1995 standard) on the I8051.  We will probably never know
 about this since no one is taking the trouble to do the port. 

 On the other hand, if someone is talking about a subset of
 Ada, I think that would be both feasible and technically
 desirable. The compile time checking alone would be of benefit
 for many of the applications (especially medical devices) for
 which the I8051 is used. 

 It is probably not economically attractive to port Ada to,
 the eight-bitters, and persuading I8051 programmers to use Ada,
 even  a subset, would be a sales job that would make cleaning the
 Augean stables seem like spring housekeeping.  

 Richard Riehle
 richard@adaworks.com
 http://www.adaworks.com
 




^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: minimal hardware for ada (newbie)
  1999-04-09  0:00 ` Tucker Taft
@ 1999-04-10  0:00   ` Niklas Holsti
  1999-04-13  0:00     ` Tucker Taft
  0 siblings, 1 reply; 6+ messages in thread
From: Niklas Holsti @ 1999-04-10  0:00 UTC (permalink / raw)


Tucker Taft wrote:
> 
> We have developed (and recently validated) a version of our
> AdaMagic technology which uses optimized ANSI C as its intermediate
> representation.  One of the reasons was to allow a programming team to
> write their source code in Ada, while relying only on the availability
> of an ANSI C compiler for their chosen target.  We also have
> a version of the Ada run-time that at the lowest level depends
> only on routines included in the standard ANSI C run-time.

I'm working on an I8051 program to control a space-based instrument,
and have again experienced the pain of working in C. Using
AdaMagic-to-C would have been nice, however I think it would
only be practical if one can make the C code use the typical
I8051 C extensions to ANSI C, such as controlling the memory space
for each variable. In Keil C51, for example, one of the new
keywords 'data', 'idata', 'pdata' or 'xdata' is placed in the
variable declaration between the type-id and the variable-id
to determine the memory space.

While one could implement one's own postprocessor to mutilate the
C code in this way, it would be simpler and safer to make the
necessary annotations in the Ada code, perhaps as pragmas on
the variables or types. Does AdaMagic provide anything like this?

Moreover, given the limited architecture of the I8051, it seems
unlikely that a run-time using only ANSI C routines could perform
within an order of magnitude of a kernel designed for the
I8051. Any data on this? For example, how does your ANSI-C-based
run-time handle the stack when switching tasks?

TIA

Niklas Holsti
Working at but not speaking for Space Systems Finland Ltd.




^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: minimal hardware for ada (newbie)
  1999-04-10  0:00   ` Niklas Holsti
@ 1999-04-13  0:00     ` Tucker Taft
  0 siblings, 0 replies; 6+ messages in thread
From: Tucker Taft @ 1999-04-13  0:00 UTC (permalink / raw)


Niklas Holsti wrote:
> 
> Tucker Taft wrote:
> >
> > We have developed (and recently validated) a version of our
> > AdaMagic technology which uses optimized ANSI C as its intermediate
> > representation.  One of the reasons was to allow a programming team to
> > write their source code in Ada, while relying only on the availability
> > of an ANSI C compiler for their chosen target.  We also have
> > a version of the Ada run-time that at the lowest level depends
> > only on routines included in the standard ANSI C run-time.
> 
> I'm working on an I8051 program to control a space-based instrument,
> and have again experienced the pain of working in C. Using
> AdaMagic-to-C would have been nice, however I think it would
> only be practical if one can make the C code use the typical
> I8051 C extensions to ANSI C, such as controlling the memory space
> for each variable. In Keil C51, for example, one of the new
> keywords 'data', 'idata', 'pdata' or 'xdata' is placed in the
> variable declaration between the type-id and the variable-id
> to determine the memory space.
> 
> While one could implement one's own postprocessor to mutilate the
> C code in this way, it would be simpler and safer to make the
> necessary annotations in the Ada code, perhaps as pragmas on
> the variables or types. Does AdaMagic provide anything like this?

Not currently, though using pragma "Convention" for this might
make sense.  We have looked into something like this for a digital
signal processor which has two memory spaces.  Because we are
generating C source as the intermediate, it is a relatively small
effort to add this kind of thing.  By constrast, if we were generating 
machine code directly, it would obviously be a big deal to add support
for multiple memory spaces.

> Moreover, given the limited architecture of the I8051, it seems
> unlikely that a run-time using only ANSI C routines could perform
> within an order of magnitude of a kernel designed for the
> I8051. Any data on this? For example, how does your ANSI-C-based
> run-time handle the stack when switching tasks?

The run-time is in two layers, the upper layer is written
in Ada, and is fully portable between targets.  The lower layer
is also mostly written in Ada, with a bit of assembler or
C thrown in, and multiple versions exist, depending on the underlying
kernel.  The "pure C" version makes use of setjmp/longjmp for
task stack switching.  Other versions use the thread primitives provided
by the underlying kernel.

> TIA
> 
> Niklas Holsti
> Working at but not speaking for Space Systems Finland Ltd.

-- 
-Tucker Taft   stt@averstar.com   http://www.averstar.com/~stt/
Technical Director, Distributed IT Solutions  (www.averstar.com/tools)
AverStar (formerly Intermetrics, Inc.)   Burlington, MA  USA




^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~1999-04-13  0:00 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
1999-04-08  0:00 minimal hardware for ada (newbie) Michael Viotto
1999-04-09  0:00 ` Tom Moran
1999-04-09  0:00   ` Richard D Riehle
1999-04-09  0:00 ` Tucker Taft
1999-04-10  0:00   ` Niklas Holsti
1999-04-13  0:00     ` Tucker Taft

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox