comp.lang.ada
 help / color / mirror / Atom feed
From: "Randy Brukardt" <randy@rrsoftware.com>
Subject: Re: Ada platforms and pricing, was: Re: a new language, designed for safety !
Date: Sun, 22 Jun 2014 18:38:50 -0500
Date: 2014-06-22T18:38:50-05:00	[thread overview]
Message-ID: <lo7pea$cm3$1@loke.gir.dk> (raw)
In-Reply-To: lo7c2h$ura$1@dont-email.me

"Simon Clubley" <clubley@remove_me.eisner.decus.org-Earth.UFP> wrote in 
message news:lo7c2h$ura$1@dont-email.me...
> On 2014-06-18, Randy Brukardt <randy@rrsoftware.com> wrote:
>> "Simon Clubley" <clubley@remove_me.eisner.decus.org-Earth.UFP> wrote in
>> message news:lnsqus$d4j$1@dont-email.me...
>>> On 2014-06-17, Randy Brukardt <randy@rrsoftware.com> wrote:
>>>>
>>>> It's impractical to have any such cross-compilers. Every such compiler
>>>> (run-time, really) has to be tailored to the specific board in 
>>>> question.
>>>> We
>>>> treated each embedded compiler as something that would require 
>>>> extensive
>>>> support, and I still think we lost money on each.
>>>>
...
>>> Taking the ARM bare metal (C language) world as an example:
>>>
>>> 1) At the bottom layer you have the compiler itself. This just generates
>>> code for a set of ARM architecture variants such as Cortex-M3 and
>>> Cortex-A8 as well as older ARM architecture variants such as the ARMv5
>>> variants. It has absolutely no knowledge of any specific MCU or any
>>> board which that MCU might be placed on. Things like memory layouts
>>> are handled in linker scripts.
>>
>> Yup. But no one can do anything useful with such a thing. It's trivial to
>> take a version of Janus/Ada and use it as a cross-compiler for some 
>> board.
>> But without a runtime, hardware support, and the like, only the most
>> dedicated people could use it for anything.
>>
>
> To me, I mentally split the problem into two categories: The support
> for Ada language functionality and the support for peripherals on the
> specific board. I regard only the first part as really a part of the
> actual compiler, but it is a required part.
>
> However, my feeling is that the Ada RTL support, once implemented, is
> pretty generic within a MCU architecture and is not really board
> specific.

That's not my experience. Remember that "basic Ada support" includes things 
like timers (Ada.Real_Time, delay statements), some method of handling 
exceptions (which generally means supporting hardware traps), and usually 
tasking (which means some method of context switching).

All of these require interrupt support on bare boards, and that never seems 
to be quite the same from board to board.

There's certainly a shared part, but the configurations are different for 
each board. And you have to be pretty familar with the boards in order to do 
those; your average tinkerer isn't likely to be able to do that.

> You may need some configuration and interface options for things like
> I/O operations, with calls to user supplied I/O packages. These packages
> would only concern themselves with the lowest level, interfacing to
> the hardware itself and not provide any generic Ada RTL support.
>
> In these user supplied packages, I'm thinking about things like an Ada
> version of, say, putchar() which would just output the passed character
> to some hardware device without concerning itself about anything other
> than that.

Fair enough. I found back in the day that you had to be able to connect that 
with Text_IO for useful output (for instance, the crash messages from the 
Janus/Ada runtime). But that's clearly a secondary need. I wasn't thinking 
about full I/O support, for instance, since it usually doesn't make sense in 
that environment.

>>> 2) At the next layer up you have code to support a specific MCU. As
>>> well as MCU specific startup code, this includes things like interrupt
>>> handling which is MCU specific in the ARM world. This code generally
>>> comes from the manufacturer of the MCU and is usually free.
>>
>> But it's probably not in a form that could be used for Ada. Certainly not
>> unless you're planning to require having an C compiler around as well 
>> (not
>> really good marketing for Ada).
>>
>
> There is some C code at the very lowest level of GNAT.

Sure, but it's compiled; you don't need a C compiler in order to be able to 
use GNAT. If you require people to use C code in their setup, they'll need 
to get the C compiler working first. At that point, most people will wonder 
why they're spending time to get Ada working rather than working on their 
project (the fun part, hopefully).

...
> I don't really see the support for the peripherals as part of the
> compiler as such. For example, the various MCU and board manufacturers
> may provide their own bare metal support package for a board and all
> you need to do is download it from their website and build it with your
> own C compiler; it's not expected to be a part of gcc.

I'm not talking about "peripherals"; I'm talking about timers and trap 
handlers (for overflow, divide-by-zero, etc.) and the like. These things are 
required for a useful subset of Ada. (No clock and no exceptions means 
you're no longer really doing Ada, just Ada syntax.) I/O is optional, but 
not these other things.

                                  Randy.




  reply	other threads:[~2014-06-22 23:38 UTC|newest]

Thread overview: 285+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-06-03  1:37 a new language, designed for safety ! Nasser M. Abbasi
2014-06-04  0:21 ` Luke A. Guest
2014-06-04  1:19   ` Dan'l Miller
2014-06-04  4:05     ` Dan'l Miller
2014-06-04  6:59       ` Georg Bauhaus
2014-06-04  4:12     ` Dan'l Miller
2014-06-04  5:44   ` Jeffrey Carter
2014-06-04 15:25 ` Dan'l Miller
2014-06-04 19:43   ` Robert A Duff
2014-06-04 21:32     ` Simon Clubley
2014-06-05  9:13     ` Nasser M. Abbasi
2014-06-05 15:33       ` Adam Beneschan
2014-06-05 19:19         ` Jeffrey Carter
2014-06-05 15:55       ` Adam Beneschan
2014-06-05 19:15         ` sbelmont700
2014-06-05 22:40       ` Robert A Duff
2014-06-06 15:13         ` Dan'l Miller
2014-06-06 17:51           ` G.B.
2014-06-06 18:39             ` Niklas Holsti
2014-06-06 19:43               ` Robert A Duff
2014-06-06 20:42                 ` Dmitry A. Kazakov
2014-06-08  9:40               ` Georg Bauhaus
2014-06-08 13:56                 ` Robert A Duff
2014-06-08 16:13                   ` Dan'l Miller
2014-06-08 17:22                     ` J-P. Rosen
2014-06-08 19:36                     ` Dmitry A. Kazakov
2014-06-09  5:30                       ` Niklas Holsti
2014-06-09  7:06                         ` Dmitry A. Kazakov
2014-06-09 16:07                           ` Dan'l Miller
2014-06-10  7:44                             ` Dmitry A. Kazakov
2014-06-10 16:31                               ` Dan'l Miller
2014-06-10 16:52                                 ` Dmitry A. Kazakov
2014-06-06 18:52           ` Robert A Duff
2014-06-06 22:50             ` Simon Clubley
2014-06-23  0:40       ` Yannick Duchêne (Hibou57)
2014-06-23  0:43         ` Yannick Duchêne (Hibou57)
2014-06-23  0:51           ` Shark8
2014-06-23  1:47             ` Nasser M. Abbasi
2014-06-23  6:46               ` Shark8
2014-06-23 14:17             ` Peter Chapin
2014-06-23 15:39               ` Dan'l Miller
2014-06-23 17:04               ` Dmitry A. Kazakov
2014-06-05  8:26   ` Georg Bauhaus
2014-06-09 10:03 ` Pascal Obry
2014-06-10  9:36   ` Stephen Leake
2014-06-10 10:48     ` Luke A. Guest
2014-06-10 18:31       ` Pascal Obry
2014-06-23  1:01         ` Yannick Duchêne (Hibou57)
2014-06-10 12:28     ` Simon Clubley
2014-06-10 12:42       ` Lucretia
2014-06-10 12:50         ` J-P. Rosen
2014-06-10 13:00           ` Lucretia
2014-06-10 14:43             ` Brad Moore
2014-06-10 15:15               ` J-P. Rosen
2014-06-10 20:28                 ` Simon Clubley
2014-06-10 20:39                   ` Pascal Obry
2014-06-10 21:04                     ` Simon Clubley
2014-06-11  7:17                       ` Pascal Obry
2014-06-25 22:37                         ` Yannick Duchêne (Hibou57)
2014-06-10 22:09                   ` Luke A. Guest
2014-06-12 23:58                     ` Shark8
2014-06-13  1:28                       ` Luke A. Guest
2014-06-25 22:41                         ` Yannick Duchêne (Hibou57)
2014-06-26  1:36                           ` Shark8
2014-06-26 10:19                           ` J-P. Rosen
2014-06-25 22:40                     ` Yannick Duchêne (Hibou57)
2014-06-26  7:39                       ` Luke A. Guest
2014-06-26  7:42                         ` Yannick Duchêne (Hibou57)
2014-06-26 10:07                           ` Luke A. Guest
2014-06-26 10:18                       ` J-P. Rosen
2014-07-02 22:06                         ` Randy Brukardt
2014-06-11  0:16                   ` Jeffrey Carter
2014-06-11  7:29                     ` Simon Clubley
2014-06-11 19:22                       ` Jeffrey Carter
2014-06-12 11:48                         ` Simon Clubley
2014-06-12 16:59                           ` Jeffrey Carter
2014-06-10 15:33               ` Lucretia
2014-06-10 16:31                 ` Dmitry A. Kazakov
2014-06-10 19:34                   ` Tero Koskinen
2014-06-11  6:46                     ` Natasha Kerensikova
2014-06-11  8:45                     ` Dmitry A. Kazakov
2014-06-11  9:05                       ` Simon Wright
2014-06-11 12:09                       ` Simon Clubley
2014-06-11 12:34                         ` Dmitry A. Kazakov
2014-06-11 12:42                           ` björn lundin
2014-06-11 13:04                           ` Lucretia
2014-06-11 12:11                     ` björn lundin
2014-06-10 19:49                 ` J-P. Rosen
2014-06-10 22:09                   ` Luke A. Guest
2014-06-11  9:01                     ` Simon Wright
2014-06-16 16:22                     ` Randy Brukardt
2014-06-16 17:11                       ` Ada platforms and pricing, was: " Simon Clubley
2014-06-17 19:34                         ` Randy Brukardt
2014-06-17 20:16                           ` Jeffrey Carter
2014-06-18  5:56                             ` Georg Bauhaus
2014-06-18  6:34                               ` Nasser M. Abbasi
2014-06-18 19:57                           ` Simon Clubley
2014-06-19  3:46                             ` Randy Brukardt
2014-06-22 19:50                               ` Simon Clubley
2014-06-22 23:38                                 ` Randy Brukardt [this message]
2014-06-23  6:18                                   ` Niklas Holsti
2014-06-23  7:42                                     ` Dmitry A. Kazakov
2014-06-23 11:17                                       ` Simon Wright
2014-06-23 17:14                                         ` Dmitry A. Kazakov
2014-06-23 19:21                                           ` Dan'l Miller
2014-06-23 20:14                                             ` Dmitry A. Kazakov
2014-06-23 21:48                                               ` Simon Wright
2014-06-24  1:18                                                 ` Nasser M. Abbasi
2014-06-24  2:15                                                   ` Jeffrey Carter
2014-06-24  7:51                                                 ` Dmitry A. Kazakov
2014-06-23 21:52                                               ` Simon Wright
2014-06-24  1:04                                                 ` Dan'l Miller
2014-06-26  3:24                                               ` Yannick Duchêne (Hibou57)
2014-06-26  3:27                                                 ` Yannick Duchêne (Hibou57)
2014-06-24  1:01                                             ` Shark8
2014-06-24 10:24                                               ` Simon Wright
2014-06-24 11:25                                                 ` Dan'l Miller
2014-06-24 15:55                                                   ` Shark8
2014-06-24 18:06                                                     ` Dan'l Miller
2014-06-24 18:44                                                       ` Dan'l Miller
2014-06-24 18:49                                                       ` Shark8
2014-06-24 21:25                                                         ` Dan'l Miller
2014-06-24 16:48                                                   ` Simon Wright
2014-06-26  3:41                                                   ` Yannick Duchêne (Hibou57)
2014-06-23 20:40                                           ` Simon Wright
2014-06-24  7:48                                             ` Dmitry A. Kazakov
2014-06-23 11:48                                       ` G.B.
2014-06-24  7:52                                       ` Maciej Sobczak
2014-06-24  8:33                                         ` Dmitry A. Kazakov
2014-07-01 10:28                                           ` Simon Wright
2014-07-01 12:41                                             ` Dmitry A. Kazakov
2014-06-26  2:50                                         ` Yannick Duchêne (Hibou57)
2014-06-26 10:04                                           ` G.B.
2014-06-26 18:20                                             ` Yannick Duchêne (Hibou57)
2014-06-25 17:24                                       ` Niklas Holsti
2014-06-26  2:43                                       ` Yannick Duchêne (Hibou57)
2014-06-23  7:31                                   ` Dmitry A. Kazakov
2014-06-23 20:08                                     ` Randy Brukardt
2014-06-23 20:20                                       ` Dmitry A. Kazakov
2014-06-24 11:56                                         ` Simon Clubley
2014-06-24 12:13                                   ` Simon Clubley
2014-06-17 20:27                         ` Luke A. Guest
2014-06-18  7:09                           ` Natasha Kerensikova
2014-06-18 10:32                             ` J-P. Rosen
2014-06-18 11:50                               ` Brian Drummond
2014-06-18 17:34                               ` Natasha Kerensikova
2014-06-18 17:56                                 ` Peter Chapin
2014-06-19  7:22                                   ` Natasha Kerensikova
2014-06-19 12:02                                     ` Peter Chapin
2014-06-20  7:03                                       ` Natasha Kerensikova
2014-06-19 13:33                                     ` Lucretia
2014-06-20  7:07                                       ` Natasha Kerensikova
2014-06-20 11:44                                         ` Lucretia
2014-06-20 12:47                                           ` Dennis Lee Bieber
2014-06-18 18:24                                 ` Lucretia
2014-06-19  7:26                                   ` Natasha Kerensikova
2014-06-18 18:47                                 ` Dmitry A. Kazakov
2014-06-18 20:17                                   ` Simon Clubley
2014-06-18 22:51                                     ` Simon Clubley
2014-06-19  8:51                                       ` Dmitry A. Kazakov
2014-06-19  3:35                                   ` Randy Brukardt
2014-06-19  7:34                                   ` Natasha Kerensikova
2014-06-19  8:19                                     ` J-P. Rosen
2014-06-19  9:11                                     ` Dmitry A. Kazakov
2014-06-19 12:08                                       ` Peter Chapin
2014-06-19 13:48                                         ` Dmitry A. Kazakov
2014-06-19 20:59                                         ` Randy Brukardt
2014-06-26  2:04                                           ` Yannick Duchêne (Hibou57)
2014-06-26 22:24                                             ` Shark8
2014-06-26 22:44                                               ` Yannick Duchêne (Hibou57)
2014-06-26 22:51                                                 ` Shark8
2014-06-27 12:43                                               ` Ada platforms and pricing, was: Re: a new language, anon
2014-06-19 21:13                                         ` Ada platforms and pricing, was: Re: a new language, designed for safety ! Robert A Duff
2014-06-19 23:47                                           ` Adam Beneschan
2014-06-19 21:03                                     ` Randy Brukardt
2014-06-20  7:26                                       ` Natasha Kerensikova
2014-06-20 19:50                                         ` Randy Brukardt
2014-06-21  8:35                                           ` Natasha Kerensikova
2014-06-22 23:26                                             ` Randy Brukardt
2014-06-26  2:16                                             ` Yannick Duchêne (Hibou57)
2014-06-20  9:54                                   ` anon
2014-06-20 12:25                                     ` Lucretia
2014-06-20 19:32                                       ` Ada platforms and pricing, was: Re: a new language, designed for anon
2014-06-18 17:01                             ` Ada platforms and pricing, was: Re: a new language, designed for safety ! Jeffrey Carter
2014-06-19  7:53                               ` Natasha Kerensikova
2014-06-19 21:10                                 ` Randy Brukardt
2014-06-19 22:27                                   ` Luke A. Guest
2014-06-16 21:31                       ` Luke A. Guest
2014-06-16 23:02                         ` Jeffrey Carter
2014-06-17 11:14                           ` gvdschoot
2014-06-17 17:42                             ` Jeffrey Carter
2014-06-17 12:56                           ` Simon Clubley
2014-06-17 17:43                             ` Jeffrey Carter
2014-06-17 19:46                               ` Jacob Sparre Andersen
2014-06-26  1:20                                 ` Yannick Duchêne (Hibou57)
2014-06-17 19:41                             ` Randy Brukardt
2014-06-17 20:08                               ` Jeffrey Carter
2014-06-18  5:46                                 ` Georg Bauhaus
2014-06-18  8:02                                   ` Dmitry A. Kazakov
2014-06-18  9:34                                     ` G.B.
2014-06-18 12:30                                       ` Dmitry A. Kazakov
2014-06-18 14:43                                         ` G.B.
2014-06-18 16:39                                           ` Dmitry A. Kazakov
2014-06-20  8:27                                             ` Georg Bauhaus
2014-06-25 22:43                 ` Yannick Duchêne (Hibou57)
2014-06-12 23:56               ` Shark8
2014-06-10 20:22         ` Simon Clubley
2014-06-10 21:14           ` Simon Clubley
2014-06-10 22:09             ` Luke A. Guest
2014-06-10 22:09           ` Luke A. Guest
2014-06-11  0:05           ` Jeffrey Carter
2014-06-11  7:32             ` Simon Clubley
2014-06-11 16:50               ` G.B.
2014-06-11 19:20               ` Jeffrey Carter
2014-06-12  7:01                 ` Simon Clubley
2014-06-12 17:46                   ` Jeffrey Carter
2014-06-12 21:40                     ` Simon Clubley
2014-06-13  6:37                       ` J-P. Rosen
2014-06-13 12:03                         ` Simon Clubley
2014-06-13 15:34                           ` Lucretia
2014-06-13 17:00                             ` Simon Clubley
2014-06-13 22:21                           ` Brian Drummond
2014-06-14 20:41                             ` Simon Clubley
2014-06-15  6:26                               ` Tero Koskinen
2014-06-16  0:11                                 ` Simon Clubley
2014-06-15 18:10                               ` Luke A. Guest
2014-06-16  0:00                                 ` Simon Clubley
2014-06-25  6:42                   ` Yannick Duchêne (Hibou57)
2014-06-25  7:29                     ` Georg Bauhaus
2014-06-25 12:17                     ` Simon Clubley
2014-06-12 23:53         ` Shark8
2014-06-13  4:28           ` Simon Clubley
2014-06-13  8:17             ` gvdschoot
2014-06-13 13:16               ` Simon Wright
2014-06-13 14:13                 ` gvdschoot
2014-06-13 15:52                   ` Shark8
2014-06-13 17:04                   ` Simon Clubley
2014-06-13 20:10                     ` Simon Wright
2014-06-15  6:33                 ` Tero Koskinen
2014-06-15  7:47                   ` gvdschoot
2014-06-15  8:13                     ` gvdschoot
2014-06-15  8:18                     ` Nasser M. Abbasi
2014-06-16  0:16                       ` Simon Clubley
2014-06-16  0:35                     ` Simon Clubley
2014-06-16  6:08                       ` Georg Bauhaus
2014-06-16  6:19                         ` Georg Bauhaus
2014-06-16 12:08                           ` Peter Chapin
2014-06-25 22:28                             ` Yannick Duchêne (Hibou57)
2014-06-16 12:30                           ` Simon Clubley
2014-06-16  6:22                         ` gvdschoot
2014-06-25  6:28         ` Yannick Duchêne (Hibou57)
2014-06-11  8:27     ` Maciej Sobczak
2014-06-11 19:39       ` Peter Chapin
2014-06-11 19:52         ` Luke A. Guest
2014-06-12  1:39           ` Peter Chapin
2014-06-12  2:46             ` Dan'l Miller
2014-06-12 11:24               ` Peter Chapin
2014-06-12 11:36                 ` Lucretia
2014-06-12 14:48                 ` björn lundin
2014-06-12 22:12                   ` Simon Clubley
2014-06-13  8:36                     ` Dmitry A. Kazakov
2014-06-13 15:55                       ` Shark8
2014-06-13 16:13                         ` Dmitry A. Kazakov
2014-06-13 20:57                       ` Robert A Duff
2014-06-14  7:27                         ` Georg Bauhaus
2014-06-14 21:02                         ` Simon Clubley
2014-06-16 16:39                         ` Randy Brukardt
2014-06-16 17:13                           ` Dmitry A. Kazakov
2014-06-16 17:24                           ` Simon Clubley
2014-06-16 19:13                             ` Simon Wright
2014-06-16 20:25                               ` Simon Clubley
2014-06-17 16:10                                 ` Simon Wright
2014-06-16 21:53                           ` Robert A Duff
2014-06-16 23:02                             ` Jeffrey Carter
2014-06-16 23:42                               ` Robert A Duff
2014-06-17 19:18                                 ` Randy Brukardt
2014-06-14 21:05                       ` Maciej Sobczak
2014-06-15  6:52                         ` Dmitry A. Kazakov
2014-06-15 10:04                           ` Georg Bauhaus
2014-06-15 12:25                             ` Dmitry A. Kazakov
2014-06-17  8:18                           ` Maciej Sobczak
2014-06-17  9:13                             ` Dmitry A. Kazakov
2014-06-18  7:55                               ` Maciej Sobczak
2014-06-18  8:31                                 ` Dmitry A. Kazakov
2014-06-12  8:16         ` Georg Bauhaus
replies disabled

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