From: Ludovic Brenta <ludovic@ludovic-brenta.org>
Subject: Re: Ada, the best language with the not-so-best tool chain
Date: Wed, 10 Oct 2012 09:06:52 +0200
Date: 2012-10-10T09:06:52+02:00 [thread overview]
Message-ID: <87k3uyg60j.fsf@ludovic-brenta.org> (raw)
In-Reply-To: adkk1qF93mkU1@mid.individual.net
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. If your target doesn't have a
compiler available, you must create one before you can do anything.
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.
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. 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.
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. If and only if they make significant progress on the
application, they can justify the effort needed to port their app to a
bare board (thanks to Ada's portability, this cost should be almost
entirely confined to bootstrapping the toolchain and the board).
--
Ludovic Brenta.
next prev parent reply other threads:[~2012-10-16 1:57 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 [this message]
2012-10-10 8:17 ` Niklas Holsti
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