From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on polar.synack.me X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=unavailable autolearn_force=no version=3.4.4 Path: border2.nntp.dca3.giganews.com!backlog4.nntp.dca3.giganews.com!border2.nntp.dca.giganews.com!nntp.giganews.com!usenet.blueworldhosting.com!feeder01.blueworldhosting.com!eternal-september.org!feeder.eternal-september.org!news.eternal-september.org!.POSTED!not-for-mail From: Simon Clubley Newsgroups: comp.lang.ada Subject: Re: Ada platforms and pricing, was: Re: a new language, designed for safety ! Date: Tue, 24 Jun 2014 12:13:50 +0000 (UTC) Organization: A noiseless patient Spider Message-ID: References: <1402308235.2520.153.camel@pascal.home.net> <85ioo9yukk.fsf@stephe-leake.org> <255b51cd-b23f-4413-805a-9fea3c70d8b2@googlegroups.com> <5ebe316d-cd84-40fb-a983-9f953f205fef@googlegroups.com> <2100734262424129975.133931laguest-archeia.com@nntp.aioe.org> Injection-Date: Tue, 24 Jun 2014 12:13:50 +0000 (UTC) Injection-Info: mx05.eternal-september.org; posting-host="e458ff8b81bc0c159989eb0e36c6e372"; logging-data="27710"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX185kdbdfkrWUu0AowTxUCbntHjYksXh5MM=" User-Agent: slrn/0.9.8.1 (VMS/Multinet) Cancel-Lock: sha1:MkrfQweKMV4YhiStLFM0RW3KAVE= X-Original-Bytes: 4692 Xref: number.nntp.dca.giganews.com comp.lang.ada:187222 Date: 2014-06-24T12:13:50+00:00 List-Id: On 2014-06-22, Randy Brukardt wrote: > "Simon Clubley" wrote in > message news:lo7c2h$ura$1@dont-email.me... >> >> 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. > In the ARM world, that's more of a MCU specific issue instead of a board specific issue. What could be done is to split the Ada RTL into cleanly separated generic and hardware specific parts and provide a clean detailed specification for implementing the hardware specific part. > 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. > Some board specific configuration issues which might matter could be things like memory layout which can be handled with linker scripts. >> 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. > Sorry, I wasn't clear above. What I meant was that Text_IO (or something like it) would be implemented, but at the lowest level, the Text_IO package would just call a user supplied routine to actually output the character(s) to the hardware and that user supplied routine would not care about, or even know anything about, the structure of the Ada RTL package calling it. Simon. -- Simon Clubley, clubley@remove_me.eisner.decus.org-Earth.UFP Microsoft: Bringing you 1980s technology to a 21st century world