comp.lang.ada
 help / color / mirror / Atom feed
From: Simon Clubley <clubley@remove_me.eisner.decus.org-Earth.UFP>
Subject: Re: Runtime startup code for the GNAT Runtime...and a bit of humble pie.
Date: Wed, 20 Mar 2013 13:18:57 +0000 (UTC)
Date: 2013-03-20T13:18:57+00:00	[thread overview]
Message-ID: <kicd00$4p6$1@dont-email.me> (raw)
In-Reply-To: kic7r0$b2u$1@dont-email.me

On 2013-03-20, Brian Drummond <brian@shapes.demon.co.uk> wrote:
> On Wed, 20 Mar 2013 00:54:38 +0000, Simon Clubley wrote:
>> Ada gives you better tools when those tools already support the target
>> environment.
>> 
>> Reading the comments, I think my problem here isn't really with Ada, but
>> with GNAT; hence it's really a toolchain problem and not a language
>> problem.
>
> I'd like to thank you for an excellent summary of a lot of issues.
>

You are welcome.

>> You can quickly build a high degree of confidence with a new RTEMS BSP
>> that once it appears to be working, it _really_ is working.
>> 
>> This does not appear to be the case with GNAT.
>> 
>> All the information you need to bring up GNAT on a new platform (when
>> it's written down at all) appears to be scattered in various bits of
>> source code, newsgroup/mailing list postings and various other direct or
>> indirect hints in various sources. It's a major exercise to even pull
>> together all the information you need to build a model of how GNAT works
>> and how it is structured internally.
>
> This is definitely true. 
>
>> You also have no confidence that the model you have built is
>> sufficiently complete to result in a robust port.
>
> What in your view would be required to give you that confidence?
>

Coherent and structured porting documentation.

Something designed for documenting the porting process will cover the
overall architecture in a way which allows you to build a consistent model
and is also going to cover the major "gotcha" issues. Even if the initial
versions did not cover all the major issues, the later versions would as a
result of the inevitable peer review type process which would occur.

> It is also worth bearing in mind that the confidence level required for 
> an experimenter wanting to escape Arduino, and a university CubeSat or 
> medical appliance are different.
>

Oh, I _so_ agree. :-)

I'm not yet building my own satellites :-), but even when you want to
start putting your code in things which fly through the air any responsible
person is looking for a higher standard of reliability than for something
which flashes pretty lights on a workbench.

>>> So C comes into play NOT for bare metal programming, but to avoid it
>>> where you can re-use someone else's effort. Right?
>> No. In my case it really is for new bare metal programming of my own.
>> 
>> The bit you are missing is that the C environment already exists on the
>> target environment, but even a minimal Ada does not. 
>
> There's a BIT of a mismatch here : if there is a C (or Ada) environment 
> for a platform, it isn't really bare metal programming; unless I 
> misunderstand what you mean by the environment.
>

A example of a bare metal environment would be AVR libc or AVR-Ada been
used in code running directly on a AVR (ie: without a OS underneath).

A example of something which is _NOT_ a bare metal environment in my eyes
would be running something on top of RTEMS or on top of another RTOS kernel.

IOW, running code under a OS is not bare metal, but running code directly
on the target device, in place of where the OS would otherwise be, is
bare metal.

>> Luke's work is a good source of information, but GNAT really needs a
>> porting guide along the lines of the various RTEMS porting manuals.
>
> Absolutely. I have documented the steps I followed and it's a bit gory. 
> It's not helped (IMO) by the fact that all the (FSF Gnat) sources for 
> compiler and RTS are lumped together; even separating GNARL and GNULL 
> into their own directories with their own build process and documentation 
> would help. Fortunately a couple of the disconnected efforts out there 
> (such as ORK) have separate target RTS sources, which will help.
>

It's nice that these various efforts are going on and I thank the people
who are doing them.

Simon.

-- 
Simon Clubley, clubley@remove_me.eisner.decus.org-Earth.UFP
Microsoft: Bringing you 1980s technology to a 21st century world



  reply	other threads:[~2013-03-20 13:18 UTC|newest]

Thread overview: 37+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-03-18 20:59 Runtime startup code for the GNAT Runtime...and a bit of humble pie Diogenes
2013-03-18 21:14 ` Robert A Duff
2013-03-19  0:07 ` Diogenes
2013-03-19 10:04   ` Brian Drummond
2013-03-19 12:51     ` Simon Clubley
2013-03-19 18:16       ` Ludovic Brenta
2013-03-20  1:05         ` Simon Clubley
2013-03-20 10:13           ` Mike H
2013-03-20 20:44             ` Ludovic Brenta
2013-03-19 21:43       ` Randy Brukardt
2013-03-20  8:24         ` Dmitry A. Kazakov
2013-03-21  0:16           ` Randy Brukardt
2013-03-21 19:08             ` Shark8
2013-03-21 23:34               ` Randy Brukardt
2013-03-22 16:39                 ` Jacob Sparre Andersen
2013-03-23 10:56                   ` Thomas Løcke
2013-03-19 23:13       ` Brian Drummond
2013-03-20  0:54         ` Simon Clubley
2013-03-20 11:50           ` Brian Drummond
2013-03-20 13:18             ` Simon Clubley [this message]
2013-03-26 11:04               ` Brian Drummond
2013-03-26 22:38                 ` Simon Clubley
2013-03-27 11:34                   ` Brian Drummond
2013-03-27 14:38                     ` Simon Clubley
2013-03-27 22:58                       ` Brian Drummond
2013-03-20 14:17           ` Lucretia
2013-03-20 15:00             ` Lucretia
2013-03-21 16:39             ` Brian Drummond
2013-03-23  4:35 ` Diogenes
2013-03-26 21:27 ` Diogenes
2013-03-26 21:57   ` Shark8
2013-03-27  0:28     ` Diogenes
2013-03-27  2:27       ` Shark8
2013-03-27 10:05       ` Brian Drummond
2013-03-27 12:23         ` Simon Wright
2013-03-27 19:07   ` Randy Brukardt
2013-03-27 21:10     ` Diogenes
replies disabled

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