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: eternal-september.org!reader01.eternal-september.org!reader02.eternal-september.org!news.eternal-september.org!mx02.eternal-september.org!.POSTED!not-for-mail From: Simon Wright Newsgroups: comp.lang.ada Subject: ANN: STM32F4 GNAT Run Time Systems 20141207 Date: Sun, 07 Dec 2014 15:48:35 +0000 Organization: A noiseless patient Spider Message-ID: Mime-Version: 1.0 Content-Type: text/plain Injection-Info: mx02.eternal-september.org; posting-host="d7244c06a78575e4dbdf34623acd89dd"; logging-data="24994"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX1/X06jK7lIQze+KpHQI5s4QNYs36BrNuNM=" User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/24.3 (darwin) Cancel-Lock: sha1:DXzOGXJjpbtqrHFFwMQgFLb1ZJk= sha1:zbEMGI8ZGaPePztuqVfR2++Ibsc= Xref: news.eternal-september.org comp.lang.ada:23907 Date: 2014-12-07T15:48:35+00:00 List-Id: 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/