1- This package includes GNAT Ada Run Time Systems (RTSs) based
2- on FreeRTOS (http://www.freertos.org) and targeted at boards with
3- Cortex-M3, -M4, -M4F MCUs (Arduino Due from http://www.arduino.org,
4- the STM32F4-series evaluation boards from STMicroelectronics at
5- http://www.st.com).
1+ This package includes GNAT Ada Run Time Systems (RTSs) based on
2+ [ FreeRTOS] (http://www.freertos.org) and targeted at boards with
3+ Cortex-M3, -M4, -M4F MCUs ([ Arduino Due]( http://www.arduino.org), the
4+ STM32F4-series evaluation boards from
5+ [STMicroelectronics]( http://www.st.com).
66
77The RTSs are all Ravenscar-based, with additional restrictions
8- No_Exception_Propagation, No_Finalization and
9- No_Recursion. No_Exception_Propagation means that exceptions can't be
10- caught except in their immediate scope; instead, a Last_Chance_Handler
11- is called.
8+ ` No_Exception_Propagation`, ` No_Finalization` and
9+ ` No_Recursion`. ` No_Exception_Propagation` means that exceptions can't
10+ be caught except in their immediate scope; instead, a
11+ `Last_Chance_Handler` is called.
1212
1313In each case, the board support for the RTS (configuration for size
1414and location of Flash, RAM; clock initialization; interrupt naming) is
15- in $RTS/adainclude. Support for the on-chip peripherals is also
15+ in ` $RTS/adainclude` . Support for the on-chip peripherals is also
1616included, in Ada spec files generated by SVD2Ada
1717(https://github.com/AdaCore/svd2ada).
1818
@@ -21,102 +21,131 @@ some later releases too).
2121
2222The boards supported are
2323
24- (1) arduino-due for the Arduino Due.
24+ (1) `arduino-due` for the Arduino Due. `See arduino-due/COPYING*` for
25+ licensing terms.
2526
26- See arduino-due/COPYING* for licensing terms .
27+ * On-chip peripheral support in `atsam3x8e/` .
2728
28- On-chip peripheral support in atsam3x8e/ .
29+ * Tests in `test-arduino-due/` .
2930
30- Tests in test-arduino-due/.
31+ (2) `stm32f4` for the STM32F4-DISC* board (and also the Crazyflie). See
32+ `stm32f4/COPYING*` for licensing terms.
3133
32- (2) stm32f4 for the STM32F4-DISC* board (and also the Crazyflie) .
34+ * On-chip peripheral support in `stm32f40x/` .
3335
34- See stm32f4/COPYING* for licensing terms .
36+ * Tests in `test- stm32f4/` .
3537
36- On-chip peripheral support in stm32f40x/.
38+ (3) `stm32f429i` for the STM32F429I-DISC* board. See
39+ `stm32f429i/COPYING*` for licensing terms.
3740
38- Tests in test-stm32f4/ .
41+ * On-chip peripheral support in `stm32f429x/` .
3942
40- (3) stm32f429i for the STM32F429I-DISC* board.
41-
42- See stm32f429i/COPYING* for licensing terms.
43-
44- On-chip peripheral support in stm32f429x/.
45-
46- Tests in test-stm32f429i/.
43+ * Tests in `test-stm32f429i/`.
4744
4845The standard packages included (there are more, implementation-specific,
4946ones) for all RTSs are:
5047
51- Ada
52- Ada.Containers
53- Ada.Containers.Bounded_Hashed_Maps
54- Ada.Containers.Bounded_Vectors
55- Ada.Exceptions
56- Ada.IO_Exceptions
57- Ada.Interrupts
58- Ada.Interrupts.Names
59- Ada.Iterator_Interfaces
60- Ada.Real_Time
61- Ada.Real_Time.Timing_Events
62- Ada.Streams
63- Ada.Synchronous_Task_Control
64- Ada.Tags
65- Ada.Task_Identification
66- Interfaces
67- Interfaces.C
68- Interfaces.C.Extensions
69- Interfaces.C.Strings
70- System
71- System.Assertions
72- System.Address_To_Access_Conversions
73- System.Storage_Elements
74- GNAT
75- GNAT.Source_Info
76-
77- Additionally, stm32f4 includes all of Ada.Numerics (excluding random
78- number generation).
48+ Ada
49+ Ada.Containers
50+ Ada.Containers.Bounded_Hashed_Maps
51+ Ada.Containers.Bounded_Vectors
52+ Ada.Exceptions
53+ Ada.IO_Exceptions
54+ Ada.Interrupts
55+ Ada.Interrupts.Names
56+ Ada.Iterator_Interfaces
57+ Ada.Real_Time
58+ Ada.Real_Time.Timing_Events
59+ Ada.Streams
60+ Ada.Synchronous_Task_Control
61+ Ada.Tags
62+ Ada.Task_Identification
63+ Interfaces
64+ Interfaces.C
65+ Interfaces.C.Extensions
66+ Interfaces.C.Strings
67+ System
68+ System.Assertions
69+ System.Address_To_Access_Conversions
70+ System.Storage_Elements
71+ GNAT
72+ GNAT.Source_Info
73+
74+ Additionally, ` stm32f4` includes all of ` Ada.Numerics` (excluding
75+ random number generation).
7976
8077Release Notes
8178=============
8279
83- 20170725
80+ 20170726
8481--------
8582
86- This release is motivated by a wish to support the Crazyflie code from
87- AdaCore in the stm32f4 RTS. However, most of the changes apply to the
88- other RTSs as well.
83+ This release is motivated by a wish to support the
84+ [Crazyflie, a.k.a. Certyflie](https://github.com/AdaCore/Certyflie)
85+ code from AdaCore in the `stm32f4` RTS. However, most of the changes
86+ apply to the other RTSs as well.
8987
90- Common
91- ......
88+ The RTSs build as-is with FSF GCC 7.1.0 (for macOS users, a compiler
89+ is available at
90+ [Sourceforge](https://sourceforge.net/projects/gnuada/files/GNAT_GCC%20Mac%20OS%20X/7.1.0/).
91+
92+ At FSF GCC 7, the interface to create a task changed (`Create` takes an
93+ extra parameter, `Secondary_Stack_Size`). Alternate versions are
94+ provided for use with FSF GCC 6 (macOS compiler also at
95+ [Sourceforge](https://sourceforge.net/projects/gnuada/files/GNAT_GCC%20Mac%20OS%20X/6.1.0/)):
96+
97+ common/environment_task.adb-gcc6
98+ common/s-tarest.ads-gcc6
99+ common/s-tarest.adb-gcc6
92100
93- The supported compiler is GCC 7 (NB, _not_ GNAT GPL 2017, which is
94- based on GCC 6).
101+ To use them, copy over the equivalent `.ad?` file.
102+
103+ These patches are also needed to build the RTS with GNAT GPL 2016.
104+
105+ GNAT GPL 2017 does not require these patches: however, attempting to
106+ build the RTS results in
107+
108+ [Ada] a-stream.ads
109+ a-stream.ads:67:09: expected type "Standard.Boolean"
110+ a-stream.ads:67:09: found type "Ada.Tags.Size_Ptr"
111+ a-stream.ads:67:09: expected type "Ada.Tags.Select_Specific_Data_Ptr"
112+ a-stream.ads:67:09: found a composite type
113+ a-stream.ads:67:09: no value supplied for component "Tags_Table"
114+ gprbuild: *** compilation phase failed
115+
116+ With GNAT GPL 2016, the cortex-gnat-rts test programs work
117+ properly. The
118+ [Certyflie branch](https://github.com/simonjwright/Certyflie/tree/sjw)
119+ also works, after removing the `Create_Missing_Dirs` attributes, new
120+ in GPRBuild GPL 2017, from all the GPRs.
121+
122+ Common
123+ ------
95124
96125The base is FreeRTOS 9.0.0.
97126
98- Added Ada.Real_Time.Timing_Events (with limitations: there's no
127+ Added ` Ada.Real_Time.Timing_Events` (with limitations: there's no
99128finalization, so they should only be declared at library level).
100129
101- SPARK annotations in Ada.Real_Time are copied from those in GCC 7.1.0.
130+ SPARK annotations in ` Ada.Real_Time` are copied from those in GCC 7.1.0.
102131
103- Added Interfaces.C.Extensions.
132+ Added ` Interfaces.C.Extensions` .
104133
105- type'Image() and object'Img are supported.
134+ ` type'Image()` and ` object'Img` are supported.
106135
107136The default stack size is 4096 (the minimum size is still 768).
108137
109- stm32f4
110- .......
138+ ` stm32f4`
139+ ---------
111140
112141Stack overflow checking is enabled in FreeRTOS.
113142
114- Added Ada.Numerics.* (excluding random number generation).
143+ Added ` Ada.Numerics.*` (excluding random number generation).
115144
116- In Ada.Interrupts.Names, interrupts are still named *_IRQ, but
117- renamings to *_Interrupt are included.
145+ In ` Ada.Interrupts.Names` , interrupts are still named ` *_IRQ` , but
146+ renamings to ` *_Interrupt` are included.
118147
119- The main program can have pragma (or aspect) Priority.
148+ The main program can have ` pragma` (or aspect) ` Priority` .
120149
121150Executables can be built to load at an offset from the STM32F4's
122151default (this is to support the Crazyflie's over-the-air bootloader).
@@ -130,9 +159,9 @@ In this release,
130159 STM32Cube package.
131160
132161* The support for on-chip peripherals is limited to the
133- SVD2Ada-generated spec files. The AdaCore 'bareboard' software
134- (currently https://github.com/AdaCore/Ada_Drivers_Library, but a
135- name change is under consideration) supports the STM32 line.
162+ SVD2Ada-generated spec files. The
163+ [AdaCore 'bareboard' software]( https://github.com/AdaCore/Ada_Drivers_Library)
164+ supports the STM32 line.
136165
137166* Tasking no longer requires an explicit start
138167 (https://sourceforge.net/p/cortex-gnat-rts/tickets/5/).
0 commit comments