----------------------------------------------------------------------------------
@MSGID: 1@rasp.pasdenom.info>
07655394
@REPLY: <lyr0mimnup.fsf@pushface.org> ce290337
@REPLYADDR DrPi <314@drpi.fr>
@REPLYTO 2:5075/128 DrPi
@CHRS: CP866 2
@RFC: 1 0
@RFC-Message-ID:
1@rasp.pasdenom.info>
@RFC-References: 1@dont-email.me>
1@dont-email.me> 1@dont-email.me> <lyr0mimnup.fsf@pushface.org>
@TZUTC: 0200
@PID: Mozilla Thunderbird
@TID: FIDOGATE-5.12-ge4e8b94
> 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 ?
--- Mozilla Thunderbird
* Origin: <
https://pasdenom.info/news.html> (2:5075/128)
SEEN-BY: 5001/100 5005/49 5015/255 5019/40 5020/715
848 1042 4441 12000
SEEN-BY: 5030/49 1081 5058/104 5075/128
@PATH: 5075/128 5020/1042 4441