From: jan.de.kruyf@gmail.com
Subject: Re: STM32F4 GNAT Run Time System - roadmap
Date: Wed, 10 Jun 2015 01:19:48 -0700 (PDT)
Date: 2015-06-10T01:19:48-07:00 [thread overview]
Message-ID: <38bb49a4-9b49-4dbc-859b-1501722951f4@googlegroups.com> (raw)
In-Reply-To: <lyzj49qecx.fsf@pushface.org>
On Tuesday, June 9, 2015 at 2:02:25 PM UTC+2, Simon Wright wrote:
> Looking for some input on priorities for work.
>
> * Standard library packages.
> * Other MCUs.
> * Finalization.
> * ?
>
> Standard library packages
> -------------------------
>
> An obvious omission is the rest of the Ada.Containers.Bounded* packages:
> Doubly_Linked_Lists
> Ordered_Maps
> Hashed_Sets
> Ordered_Sets
> Multiway_Trees
> Synchronized_Queues
> Priority_Queues
>
> Any other nice-to-haves? (I haven't looked at Annex G, might be
> problematic!)
>
> Other MCUs
> ----------
>
> STM have just released a significant number of affordable Nucleo
> development kits. The NUCLEO-F091RC has 48 MHz Cortex-M0 core, 256-KB
> Flash, 32-KB SRAM, which would just-about take my current testbed
> program; for the princely sum of UKP7.94 + p&p, 88 in stock in UK for
> next day delivery from Farnell[0].
>
> The problem with this is that different MCUs require different compiler
> options, and building GCC for ARM with multilibs is only supported in
> the ARM fork at [1]; so far there are only GCC 4.9-based releases. GCC
> 4.9 is a perfectly competent compiler, of course.
>
> Finalization
> ------------
>
> It would be very nice to be able to use the generalized container
> iterators of Ada 2012 (generalized array iterators are already OK).
>
> They require finalization: I've implemented finalization and generalized
> iteration over Bounded_Vectors in the 'finalization' branch at [2].
>
> Unfortunately, adding finalization to a restricted runtime triggers bugs
> in GCC.
>
> I've raised two GCC PRs; "gnatbind generates invalid code when
> finalization is enabled in restricted runtime"[3], and "Front-end error
> if exception propagation disabled"[4].
>
> =====================================================================
> [0] http://uk.farnell.com/stm32-mcu-nucleo-board-flexible-prototyping
> [1] https://launchpad.net/gcc-arm-embedded
> [2]
> https://sourceforge.net/p/stm32f4-gnat-rts/code/ci/finalization/tree/
> [3] https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66205
> [4] https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66242
Good Morning Simon,
Here is a b-xxx.adb with 'Suppress_Standard_Library_On'
-----------------------
pragma Ada_95;
pragma Source_File_Name (ada_main, Spec_File_Name => "b~demo.ads");
pragma Source_File_Name (ada_main, Body_File_Name => "b~demo.adb");
package body ada_main is
pragma Warnings (Off);
E03 : Short_Integer; pragma Import (Ada, E03, "last_chance_handler_E");
E05 : Short_Integer; pragma Import (Ada, E05, "linux_kernel_E");
E19 : Short_Integer; pragma Import (Ada, E19, "niniel_E");
E26 : Short_Integer; pragma Import (Ada, E26, "niniel__ioctl_E");
E30 : Short_Integer; pragma Import (Ada, E30, "secondary_stack_E");
procedure adainit is
begin
null;
E05 := E05 + 1;
E03 := E03 + 1;
if E19 = 0 then
Niniel'Elab_Body;
end if;
E19 := E19 + 1;
if E26 = 0 then
Niniel.Ioctl'Elab_Body;
end if;
E26 := E26 + 1;
E30 := E30 + 1;
end adainit;
end ada_main;
-------------------------------------
All the quoted strings are my own stuff. Since I cannot use any standard library in kernel programming.
j.
next prev parent reply other threads:[~2015-06-10 8:19 UTC|newest]
Thread overview: 39+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-06-09 12:02 STM32F4 GNAT Run Time System - roadmap Simon Wright
2015-06-09 19:44 ` Tero Koskinen
2015-06-12 17:31 ` MIchael Erdmann
2015-06-12 18:19 ` Simon Wright
2015-06-09 20:08 ` jan.de.kruyf
2015-06-10 17:47 ` Simon Wright
2015-06-10 19:54 ` jan.de.kruyf
2015-06-10 21:11 ` Simon Wright
2015-06-10 8:19 ` jan.de.kruyf [this message]
2015-06-10 8:24 ` jan.de.kruyf
2015-06-10 17:55 ` Simon Wright
2015-06-10 19:30 ` jan.de.kruyf
2015-06-10 11:20 ` Brian Drummond
2015-06-10 21:19 ` Simon Wright
2015-06-11 10:10 ` Brian Drummond
2015-06-13 13:21 ` Jedi Tek'Unum
2015-06-13 14:15 ` Dmitry A. Kazakov
2015-06-13 14:55 ` Simon Wright
2015-06-13 17:43 ` Jedi Tek'Unum
2015-12-06 18:34 ` Simon Wright
2015-12-07 10:39 ` Brian Drummond
2016-01-28 20:52 ` Simon Wright
2016-01-30 14:21 ` Brian Drummond
2015-12-07 15:13 ` Jere
2015-12-07 16:31 ` Simon Wright
2015-12-07 16:49 ` Simon Wright
2015-12-07 17:56 ` Jere
2015-12-07 22:02 ` Simon Wright
2015-12-08 14:03 ` Jere
2015-12-08 15:07 ` Tero Koskinen
2015-12-09 1:46 ` Jere
2015-12-08 2:11 ` Randy Brukardt
2015-12-09 18:46 ` Simon Clubley
2015-12-09 22:47 ` Randy Brukardt
2015-12-10 18:22 ` Simon Clubley
2015-12-11 14:59 ` AI12-0128 (was: STM32F4 GNAT Run Time System - roadmap) Simon Wright
2015-12-11 21:18 ` Randy Brukardt
2015-06-10 15:20 ` STM32F4 GNAT Run Time System - roadmap Patrick Noffke
2015-06-15 19:03 ` Simon Wright
replies disabled
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox