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
next prev parent 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