From: Niklas Holsti <niklas.holsti@tidorum.invalid>
Subject: Re: Ada, the best language with the not-so-best tool chain
Date: Wed, 10 Oct 2012 11:17:27 +0300
Date: 2012-10-10T11:17:27+03:00 [thread overview]
Message-ID: <adkp8oFa8n2U1@mid.individual.net> (raw)
In-Reply-To: <87k3uyg60j.fsf@ludovic-brenta.org>
On 12-10-10 10:06 , Ludovic Brenta wrote:
> Niklas Holsti writes:
>> On 12-10-10 08:56 , Stephen Leake wrote:
>>> kalvin.news@gmail.com writes:
>>>
>>>> I agree with Niklas. Some bare metal system require that the (C
>>>> language) startup code does some initialisation for the runtime
>>>> system.
>>>
>>> I'm confused. If you are using someone else's "runtime system", then
>>> in what sense is this "baremetal"?
>>
>> It was Ludovic who said that baremetal programming is hard in any
>> language, especially the bootstrap stage.
>>
>> The bootstrap can indeed be complex. Some of the bigger, more complex
>> microcontrollers start up after reset in a kind of "safe mode" with
>> perhaps no usable SW stack, perhaps a very slow clock, and perhaps
>> unable to access off-chip memory. To enable normal operation, the
>> clock generator has to be configured, the off-chip memory controller
>> has to be configured, perhaps some parts of the app SW have to be
>> copied from the flash to RAM, etc.
>
> Yes. When I mentioned bootstrap I meant it in two senses: the one you
> just described i.e. bootstrap of the processor and other devices, and
> also the bootstrap of the toolchain.
Ah, I didn't understand that you meant also toolchain bootstrap, sorry.
I agree that is difficult, both for C and for Ada.
> If your target doesn't have a
> compiler available, you must create one before you can do anything.
Yep. And here is the main difference between C and Ada. C
cross-compilers for most targets exist; for Ada not.
> Practically speaking that means binutils and GNAT configured as
> cross-tools for that particular board. Also the connection between the
> host and target computers (USB? JTAG? RS-232? etc.) This doubles
> complexity of the *initial* investment one has to do before even
> starting to program their application.
Yes. And this leads to the interesting and (I think) crucial question:
assuming that GNU cross-tools exist for C for some target, how difficult
is it to add GNAT to those tools? With and/or without tasking? And how
difficult is it to maintain it when GNU and GNAT evolve? Apparently
quite difficult, since so few have been done.
> I agree that it would be very nice if there were some preconfigured
> cross-toolchain for Ada for some kind of "standard" bare-board target.
> AVR-Ada and GNAT for Lego Mindstorms are currently the closest things to
> such a "standard" but beyond that, programmers are on their own to
> create a cross-toolchain.
Agreed.
> It is feasible (after all the ones who
> created AVR-Ada and GNAT for Lego Mindstorms were "on ther own" too) but
> not for the faint of heart and certainly not for beginners.
I think the OP's concerns was that there seems to be little activity to
drive the creation of such Ada tool-chains, and what can we do about
that? Can we interest the chip-makers (e.g. Atmel) or cross-tool
providers (e.g. Crossworks) to do or support such activities? Can we
cooperatively provide how-to guides for adding cross-GNATs to
cross-GNU-C tools?
> That's why I stand by my recommendation that hobbyists who have a
> specific application in mind (rather than a specific target board they
> want to play with) should avoid these two bootstrap stages altogether
> and start programming their application on a Raspberry Pi or Lego
> Mindstorms NXT.
I strongly agree.
--
Niklas Holsti
Tidorum Ltd
niklas holsti tidorum fi
. @ .
next prev parent reply other threads:[~2012-10-10 8:17 UTC|newest]
Thread overview: 170+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-10-07 17:34 Ada, the best language with the not-so-best tool chain Patrick
2012-10-07 18:43 ` Dmitry A. Kazakov
2012-10-07 22:35 ` Simon Clubley
2012-10-08 7:35 ` Dmitry A. Kazakov
2012-10-08 12:10 ` The Ada community's attitude, was: " Simon Clubley
2012-10-09 9:20 ` pavel.klinkovsky
2012-10-12 12:09 ` Lucretia
2012-10-12 12:47 ` Simon Clubley
2012-10-12 12:59 ` Lucretia
2012-10-16 20:05 ` Simon Clubley
2012-10-16 20:10 ` phone.john.kern
2012-10-18 14:14 ` Lucretia
2012-10-18 17:05 ` Simon Clubley
2012-10-12 13:28 ` kalvin.news
2012-10-11 4:04 ` Yannick Duchêne (Hibou57)
2012-10-07 18:49 ` Shark8
2012-10-07 20:21 ` Patrick
2012-10-08 7:31 ` Dmitry A. Kazakov
2012-10-08 11:28 ` Simon Clubley
2012-10-08 12:49 ` Dmitry A. Kazakov
2012-10-08 12:40 ` Georg Bauhaus
2012-10-08 13:00 ` Dmitry A. Kazakov
2012-10-08 13:57 ` Patrick
2012-10-08 14:02 ` Patrick
2012-10-08 19:53 ` Rego, P.
2012-10-08 20:27 ` Niklas Holsti
2012-10-08 14:00 ` Georg Bauhaus
2012-10-08 14:22 ` Dmitry A. Kazakov
2012-10-08 14:30 ` Georg Bauhaus
2012-10-08 16:12 ` Dmitry A. Kazakov
2012-10-08 16:54 ` Patrick
2012-10-08 18:22 ` Dmitry A. Kazakov
2012-10-08 18:29 ` Patrick
2012-10-08 19:27 ` Dmitry A. Kazakov
2012-10-08 20:44 ` Simon Clubley
2012-10-09 9:13 ` Dmitry A. Kazakov
2012-10-09 9:59 ` Georg Bauhaus
2012-10-09 12:16 ` Dmitry A. Kazakov
2012-10-09 15:06 ` Georg Bauhaus
2012-10-09 16:53 ` Dmitry A. Kazakov
2012-10-18 21:53 ` Randy Brukardt
2012-10-19 11:23 ` Mark Lorenzen
2012-10-19 14:09 ` Patrick
2012-10-19 14:47 ` Yannick Duchêne (Hibou57)
2012-10-19 14:56 ` Patrick
2012-10-19 15:04 ` Vinzent Höfler
2012-10-19 17:30 ` Simon Clubley
2012-10-19 18:07 ` Yannick Duchêne (Hibou57)
2012-10-19 19:05 ` Georg Bauhaus
2012-10-19 19:14 ` Jeffrey Carter
2012-10-19 18:24 ` Anh Vo
2012-10-19 18:40 ` Adam Beneschan
2012-10-19 21:44 ` Jeffrey Carter
2012-10-19 22:28 ` Brian Drummond
2012-10-20 10:57 ` Yannick Duchêne (Hibou57)
2012-10-20 23:08 ` Brian Drummond
2012-10-19 15:38 ` Dmitry A. Kazakov
2012-10-19 22:08 ` Brian Drummond
2012-10-24 9:56 ` Paul Rubin
2012-10-24 11:21 ` Simon Clubley
2012-10-24 13:13 ` kalvin.news
2012-10-24 16:16 ` Paul Rubin
2012-10-24 16:27 ` Yannick Duchêne (Hibou57)
2012-10-24 16:41 ` Paul Rubin
2012-10-24 16:57 ` Yannick Duchêne (Hibou57)
2012-10-24 17:36 ` Paul Rubin
2012-10-24 17:55 ` Niklas Holsti
2012-10-24 21:17 ` Brian Drummond
2012-10-24 22:08 ` Paul Rubin
[not found] ` <4dqg885bcf05isnup07a28jrq8lbq5fknd@invalid.netcom.com>
2012-10-24 22:31 ` Paul Rubin
2012-10-25 8:42 ` Brian Drummond
2012-10-29 14:51 ` mjsilva
2012-10-08 23:04 ` Patrick
2012-10-08 23:07 ` Patrick
2012-10-09 8:35 ` Dmitry A. Kazakov
2012-10-08 21:28 ` Ludovic Brenta
2012-10-08 23:58 ` Patrick
2012-10-09 5:59 ` Niklas Holsti
2012-10-09 8:02 ` kalvin.news
2012-10-09 8:06 ` kalvin.news
2012-10-10 5:56 ` Stephen Leake
2012-10-10 6:48 ` Niklas Holsti
2012-10-10 7:06 ` Ludovic Brenta
2012-10-10 8:17 ` Niklas Holsti [this message]
2012-10-12 12:27 ` Lucretia
2012-10-12 12:45 ` Simon Clubley
2012-10-12 12:58 ` Lucretia
2012-10-09 8:10 ` Brian Drummond
2012-10-10 15:26 ` Tero Koskinen
2012-11-08 9:36 ` Jacob Sparre Andersen
2012-11-08 13:52 ` Rego, P.
2012-11-08 21:50 ` Brian Drummond
2012-11-09 1:24 ` Randy Brukardt
2012-11-09 10:16 ` Brian Drummond
2012-11-10 8:05 ` Randy Brukardt
[not found] ` <ulat9855qcom15kt7lk68rsidf44uau4q5@invalid.netcom.com>
2012-11-15 1:21 ` Randy Brukardt
2012-12-17 16:33 ` Brian Drummond
2012-12-17 17:57 ` Shark8
2012-12-25 9:29 ` Paul Rubin
2012-12-26 10:38 ` Brian Drummond
2012-12-25 10:11 ` Niklas Holsti
2012-12-26 10:40 ` Brian Drummond
2012-10-08 19:17 ` kalvin.news
2012-10-08 20:16 ` Simon Clubley
2012-10-09 9:33 ` Dmitry A. Kazakov
2012-10-09 9:57 ` kalvin.news
2012-10-09 12:31 ` Dmitry A. Kazakov
2012-10-09 12:51 ` kalvin.news
2012-10-09 13:01 ` Dmitry A. Kazakov
2012-10-09 12:04 ` Simon Clubley
2012-10-09 13:18 ` Dmitry A. Kazakov
2012-10-09 15:53 ` kalvin.news
2012-10-09 17:08 ` Dmitry A. Kazakov
2012-10-09 18:26 ` kalvin.news
2012-10-09 20:40 ` Dmitry A. Kazakov
2012-10-09 23:23 ` Simon Clubley
2012-10-10 7:36 ` Dmitry A. Kazakov
2012-10-10 13:13 ` Simon Clubley
2012-10-10 13:45 ` kalvin.news
2012-10-10 15:44 ` Rego, P.
2012-10-10 17:52 ` Simon Clubley
2012-10-10 15:40 ` Rego, P.
2012-10-10 16:09 ` Dmitry A. Kazakov
2012-10-11 9:41 ` Yannick Duchêne (Hibou57)
2012-10-11 12:01 ` Dmitry A. Kazakov
2012-10-09 12:29 ` Vinzent Hoefler
2012-10-09 12:55 ` Dmitry A. Kazakov
[not found] ` <hok878l1k7s5i37k8uejv91t82ad41pipg@invalid.netcom.com>
2012-10-09 17:23 ` Dmitry A. Kazakov
2012-10-11 15:44 ` mjsilva
2012-10-11 16:20 ` Dmitry A. Kazakov
2012-10-11 16:55 ` mjsilva
2012-10-08 20:29 ` Simon Clubley
2012-10-08 20:49 ` Simon Clubley
2012-10-11 15:22 ` mjsilva
2012-10-11 15:52 ` Yannick Duchêne (Hibou57)
2012-10-11 16:00 ` Patrick
2012-10-11 16:31 ` Dmitry A. Kazakov
2012-10-11 16:52 ` Niklas Holsti
2012-10-16 20:15 ` phone.john.kern
2012-10-18 22:33 ` Randy Brukardt
2012-10-18 22:52 ` Jeffrey Carter
2012-10-18 23:14 ` Randy Brukardt
2012-10-19 0:46 ` Jeffrey Carter
2012-10-18 23:58 ` Yannick Duchêne (Hibou57)
2012-10-19 22:49 ` Tero Koskinen
2012-10-22 14:25 ` mjsilva
[not found] ` <be26881c-6662-4830-b86f-34a7d8b25bf4@googlegroups.com>
2012-10-22 15:04 ` Yannick Duchêne (Hibou57)
2012-10-16 20:08 ` phone.john.kern
2012-10-08 18:34 ` Simon Wright
2012-10-08 18:57 ` Patrick
2012-10-08 20:13 ` Rego, P.
2012-10-07 20:33 ` Niklas Holsti
2012-10-11 16:22 ` mjsilva
2012-10-08 12:02 ` kalvin.news
2012-10-08 20:48 ` Niklas Holsti
2012-10-09 3:03 ` Stephen Leake
2012-10-09 3:24 ` Patrick
2012-10-09 5:44 ` Niklas Holsti
2012-10-10 5:52 ` Stephen Leake
2012-11-08 8:07 ` Jacob Sparre Andersen
2012-11-09 12:29 ` Stephen Leake
2012-11-09 12:56 ` Dmitry A. Kazakov
2012-11-20 21:25 ` Tero Koskinen
2012-11-20 22:15 ` Niklas Holsti
2012-11-21 16:18 ` Lucretia
2012-10-10 11:04 ` kalvin.news
2012-10-11 17:44 ` mjsilva
2012-10-16 20:13 ` phone.john.kern
2012-11-07 14:02 ` Kristoffer Nyborg Gregertsen
2013-01-02 7:01 ` 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