comp.lang.ada
 help / color / mirror / Atom feed
* ANN: gcc 4.9.1bis for Darwin
@ 2015-01-25 16:41 Simon Wright
  2015-01-25 18:26 ` David Botton
                   ` (3 more replies)
  0 siblings, 4 replies; 11+ messages in thread
From: Simon Wright @ 2015-01-25 16:41 UTC (permalink / 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


^ permalink raw reply	[flat|nested] 11+ messages in thread

end of thread, other threads:[~2015-02-26 21:45 UTC | newest]

Thread overview: 11+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2015-01-25 16:41 ANN: gcc 4.9.1bis for Darwin Simon Wright
2015-01-25 18:26 ` 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

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