comp.lang.ada
 help / color / mirror / Atom feed
From: Simon Wright <simon@pushface.org>
Subject: ANN: gcc 4.9.1bis for Darwin
Date: Sun, 25 Jan 2015 16:41:43 +0000
Date: 2015-01-25T16:41:43+00:00	[thread overview]
Message-ID: <lyoapmhkxk.fsf@pushface.org> (raw)

This is to announce two GCC 4.9.1 compilers, one a Darwin native
compiler (the same as previously uploaded, but can be installed in a
place of your choice) and one a cross-compiler to arm-eabi, aka
arm-none-eabi, as found on the STMicroelectronics[1] STM32F4 series.

Both compilers work on Mavericks and Yosemite.

The compilers are at the usual place[2]. They each have a similar
installation mechanism as that in the GNAT GPL series,so you can choose
where to install them (the default is /opt/gcc-4.9.1, but
/usr/local/gcc-4.9.1 works too; there may be problems with longer
paths). You can install the cross compiler on top of the native one.

The cross-compiler comes without an RTS. You can find suitable RTSs at
[3], together with a compiled copy of stlink (the tools that enable
download to the board and debug). The 20150124 version comes in two
variants: one that just supports the STCube BSP, and - more
interestingly - one that additionally supports Ravenscar tasking via
FreeRTOS[4].

The tasking RTS has the following restrictions (aside from pragma
Profile (Ravenscar)):

   pragma Restrictions (No_Allocators);
   pragma Restrictions (No_Dispatch);
   pragma Restrictions (No_Enumeration_Maps);
   pragma Restrictions (No_Exception_Propagation);
   pragma Restrictions (No_Finalization);
   pragma Restrictions (No_Recursion);
   pragma Restrictions (No_Secondary_Stack);

and the following bugs/features (see the Tickets tab at [3]):

o You have to start tasking by calling FreeRTOS.Tasks.Start_Scheduler
   from your main program (it doesn't return unless something is
   horribly wrong).

o Ada.Real_Time.Clock is only valid for 50 days (and has a tick of 1
  ms).

o The Interrupt_Priority aspect on a PO doesn't affect the actual
  interrupt's priority (it does affect the PO's ceiling priority).

o Some weird interaction between the compiler and the RTS code means
  that a protected spec hides package Interfaces. You can 'use
  Interfaces;' before the protected spec, though.

[1] http://www.st.com
[2]
http://sourceforge.net/projects/gnuada/files/GNAT_GCC%20Mac%20OS%20X/4.9.1bis/
[3] http://sourceforge.net/projects/stm32f4-gnat-rts/files/
[4] http://www.freertos.org


             reply	other threads:[~2015-01-25 16:41 UTC|newest]

Thread overview: 11+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-01-25 16:41 Simon Wright [this message]
2015-01-25 18:26 ` ANN: gcc 4.9.1bis for Darwin David Botton
2015-01-27 14:49 ` RasikaSrinivasan
2015-01-29  0:08 ` Jerry
2015-02-21 10:22 ` vincent.diemunsch
2015-02-21 12:10   ` Simon Wright
2015-02-24 21:53     ` Vincent
2015-02-24 22:05       ` Simon Wright
2015-02-26 21:45         ` vdiem
2015-02-22 11:48   ` Simon Wright
2015-02-24 21:19     ` vdiem
replies disabled

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