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
next 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