comp.lang.ada
 help / color / mirror / Atom feed
From: DrPi <314@drpi.fr>
Subject: Re: Should light runtimes get more consideration?
Date: Thu, 28 Sep 2023 19:51:57 +0200	[thread overview]
Message-ID: <uf4efu$uj4$1@rasp.pasdenom.info> (raw)
In-Reply-To: <lyr0mimnup.fsf@pushface.org>


> The current implementation has about 17 files (1 .h, 1 .s, 9 .ads, 4
> .adb) to customise to the chip (setting up interrupt vectors, the clock,
> and memory). There are about 200 Ada sources that are common.
> 
> AdaCore currently have 68 RTS packages in the Alire gnat_arm_elf
> toolchain. 18 of these are 'embedded' packages (full Ada, but with
> Jorvik tasking). I'd be surprised if they had a higher proportion of
> chip dependency than my efforts. Most if not all of the exception
> handling will be chip-independent. I'm not sure how many of the 90 or so
> Ada sources in the STM32F4 gnarl/ directory are actually chip-dependent,
> I get the impression it's not high.
>
Right, not high.

I've created 2 of them based on one of the Adacore RTS.
I can't say it has been easy since you first have to understand how it 
works (and things change at each new release).
One important point is that some critical parameters are hard coded in 
the source code. Like the core frequency. You MUST use a fix clock 
frequency to get correct time management (delays, ...). This is why in 
their last version, you run a script to generate part of the RTS source 
code (frequency and other parameters are injected in the source code). 
When you change the core frequency you have to regenerate the RTS binary.

I created the RTS to evaluate the potential use of Ada on embedded 
targets. I have never used them except for testing.
The main reason is that Adacore RTS are made for specific use (avionics, 
spatial...). The code using these RTS must be provable (or as provable 
as possible). This induce big limitations.
Tasking is very limited. For example you can't use timeouts. Never. They 
propose a workaround but it is complex and not equivalent to a real 
timeout management.
I'd like to have a full Ada RTS for embedded targets, like on desktop. I 
don't need to certify/prove my hardware/software.
Some people say micro-controllers are too limited for this. That's true 
for some of them. I use micro-controllers with megabytes FLASH memory 
and hundreds kilobytes of RAM. Is this not enough ?


  reply	other threads:[~2023-09-28 17:51 UTC|newest]

Thread overview: 12+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-09-26 11:44 Should light runtimes get more consideration? Kevin Chadwick
2023-09-28  3:48 ` Randy Brukardt
2023-09-28  9:46   ` Kevin Chadwick
2023-09-28 13:25     ` Simon Wright
2023-09-28 17:51       ` DrPi [this message]
2023-09-28 20:53         ` Simon Wright
2023-09-28 21:18           ` DrPi
2023-09-28 23:51             ` Chris Townley
2023-09-29  9:59               ` Kevin Chadwick
2023-09-29 10:42                 ` Chris Townley
2023-09-29 13:44                   ` DrPi
2023-09-29 13:42                 ` DrPi
replies disabled

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