comp.lang.ada
 help / color / mirror / Atom feed
From: Simon Wright <simon@pushface.org>
Subject: ANN: STM32F4 GNAT Run Time Systems 20141207
Date: Sun, 07 Dec 2014 15:48:35 +0000
Date: 2014-12-07T15:48:35+00:00	[thread overview]
Message-ID: <lyk32331gs.fsf@pushface.org> (raw)

I've been working on a GNAT RTS with the GCC Runtime Library exception
for STM32F4 boards, and this is the first release; offered for
criticism, suggestions etc ...

(a) The RTS produced by AdaCore works to the bare metal when dealing
    with the board hardware. This seems to me to be a lot more work than
    necessary, given that the manufacturer provides a free-to-use BSP.

(b) I've included minimal interfaces to the board hardware: clock,
    buttons, LEDs. Given that the Ada RTS is minimal, these could have
    been put in their own library, not part of the RTS; but I was
    concerned that the board requires clock initialization before the
    other hardware can be used, and the Ada RTS will require clock
    initialization .. will probably revisit this decision.

(c) For tasking, I'm going to investigate FreeRTOS, which
    STMicroelectronics provide a copy of with their BSP. Does anyone
    know whether this is a completely stupid idea?

The release is at [1]: from the README,

This is an Ada Runtime System (RTS) for the GCC Ada compiler (GNAT),
targeted to the STMicroelectronics STM32F429I Discovery board (see
http://www.st.com/).

The RTS is a true zero-footprint system. Package System contains the
following restrictions:

   pragma Restrictions (No_Allocators);
   pragma Restrictions (No_Delay);
   pragma Restrictions (No_Dispatch);
   pragma Restrictions (No_Enumeration_Maps);
   pragma Restrictions (No_Exception_Propagation);
   pragma Restrictions (No_Finalization);
   pragma Restrictions (No_Implicit_Dynamic_Code);
   pragma Restrictions (No_Protected_Types);
   pragma Restrictions (No_Recursion);
   pragma Restrictions (No_Secondary_Stack);
   pragma Restrictions (No_Tasking);

The RTS contains object code for all the relevant drivers from
STMicroelectronics' STM32Cube_FW_F4_V1.3.0 package, but not the source
code. Makefile.inc (altered as necessary to match the place where you
have installed the STM32Cube package) can be included in your own
Makefiles to provide access to the drivers' header and source files;
see the demonstration's Makefile.

The RTS has been built with no optimisation (-O0) and for debugging
(-g), using GNAT GPL 2014 for arm-eabi-darwin-bin on Mac OS X (it
should work out of the box with a Linux-hosted cross-compiler). Ada, C
and C++ demo programs are included.

The RTS is intended to support commercial binary distributions[2]. The
Ada source code has either been derived from FSF GCC (4.9.1) or
written for this work; see the files COPYING3 and COPYING.RUNTIME. The
C source has either been derived from STMCube or written for this
work: see the file COPYING.STMicroelectronics.

[1] https://sourceforge.net/projects/stm32f4-gnat-rts/files/20141207/


             reply	other threads:[~2014-12-07 15:48 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-12-07 15:48 Simon Wright [this message]
2014-12-22  1:20 ` ANN: STM32F4 GNAT Run Time Systems 20141207 RasikaSrinivasan
2014-12-22 18:41   ` 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