1 <?xml version="1.0" encoding="utf-8"?>
3 <package schemaVersion="1.4" xmlns:xs="http://www.w3.org/2001/XMLSchema-instance" xs:noNamespaceSchemaLocation="PACK.xsd">
5 <name>CMSIS-FreeRTOS</name>
6 <description>Bundle of FreeRTOS for Cortex-M</description>
7 <url>http://www.keil.com/pack/</url>
8 <license>License/license.txt</license>
11 <release version="9.0.0-RC3" date="2017-02-15">
12 Added native example and condition to Device:Startup
14 <release version="9.0.0-RC2">
21 <package vendor="ARM" name="CMSIS" version="5.0.1-0"/>
26 <condition id="ARMCC">
27 <require Tcompiler="ARMCC"/>
30 <require Tcompiler="GCC"/>
33 <require Tcompiler="IAR"/>
35 <condition id="ARMCC GCC">
36 <accept Tcompiler="ARMCC"/>
37 <accept Tcompiler="GCC"/>
39 <condition id="ARMCC GCC IAR">
40 <accept Tcompiler="ARMCC"/>
41 <accept Tcompiler="GCC"/>
42 <accept Tcompiler="IAR"/>
46 <description>Cortex-M0 or Cortex-M0+ or SC000 processor based device</description>
47 <accept Dcore="Cortex-M0"/>
48 <accept Dcore="Cortex-M0+"/>
49 <accept Dcore="SC000"/>
53 <description>Cortex-M3 or SC300 processor based device</description>
54 <accept Dcore="Cortex-M3"/>
55 <accept Dcore="SC300"/>
59 <description>Cortex-M4 processor based device</description>
60 <require Dcore="Cortex-M4" Dfpu="NO_FPU"/>
63 <condition id="CM4_FP">
64 <description>Cortex-M4 processor based device using Floating Point Unit</description>
65 <require Dcore="Cortex-M4" Dfpu="FPU"/>
69 <description>Cortex-M7 processor based device</description>
70 <require Dcore="Cortex-M7" Dfpu="NO_FPU"/>
73 <condition id="CM7_FP">
74 <description>Cortex-M7 processor based device using Floating Point Unit</description>
75 <accept Dcore="Cortex-M7" Dfpu="SP_FPU"/>
76 <accept Dcore="Cortex-M7" Dfpu="DP_FPU"/>
79 <condition id="CM7_SP">
80 <description>Cortex-M7 processor based device using Floating Point Unit (SP)</description>
81 <require Dcore="Cortex-M7" Dfpu="SP_FPU"/>
84 <condition id="CM7_DP">
85 <description>Cortex-M7 processor based device using Floating Point Unit (DP)</description>
86 <require Dcore="Cortex-M7" Dfpu="DP_FPU"/>
90 <description>Cortex-A9 processor based device</description>
91 <require Dcore="Cortex-A9"/>
94 <!-- ARMCC compiler -->
95 <condition id="CM0_ARMCC">
96 <description>Cortex-M0 or Cortex-M0+ or SC000 processor based device for the ARM Compiler</description>
97 <require condition="CM0"/>
98 <require Tcompiler="ARMCC"/>
101 <condition id="CM3_ARMCC">
102 <description>Cortex-M3 or SC300 processor based device for the ARM Compiler</description>
103 <require condition="CM3"/>
104 <require Tcompiler="ARMCC"/>
107 <condition id="CM4_ARMCC">
108 <description>Cortex-M4 processor based device for the ARM Compiler</description>
109 <require condition="CM4"/>
110 <require Tcompiler="ARMCC"/>
112 <condition id="CM4_FP_ARMCC">
113 <description>Cortex-M4 processor based device using Floating Point Unit for the ARM Compiler</description>
114 <require condition="CM4_FP"/>
115 <require Tcompiler="ARMCC"/>
118 <condition id="CM7_ARMCC">
119 <description>Cortex-M7 processor based device for the ARM Compiler</description>
120 <require condition="CM7"/>
121 <require Tcompiler="ARMCC"/>
123 <condition id="CM7_SP_ARMCC">
124 <description>Cortex-M7 processor based device using Floating Point Unit (SP) for the ARM Compiler</description>
125 <require condition="CM7_SP"/>
126 <require Tcompiler="ARMCC"/>
128 <condition id="CM7_DP_ARMCC">
129 <description>Cortex-M7 processor based device using Floating Point Unit (DP) for the ARM Compiler</description>
130 <require condition="CM7_DP"/>
131 <require Tcompiler="ARMCC"/>
134 <condition id="CA9_ARMCC">
135 <description>Cortex-A9 processor based device for the ARM Compiler</description>
136 <require condition="CA9"/>
137 <require Tcompiler="ARMCC"/>
140 <!-- GCC compiler -->
141 <condition id="CM0_GCC">
142 <description>Cortex-M0 or Cortex-M0+ or SC000 processor based device for the GCC Compiler</description>
143 <require condition="CM0"/>
144 <require Tcompiler="GCC"/>
147 <condition id="CM3_GCC">
148 <description>Cortex-M3 or SC300 processor based device for the GCC Compiler</description>
149 <require condition="CM3"/>
150 <require Tcompiler="GCC"/>
153 <condition id="CM4_GCC">
154 <description>Cortex-M4 processor based device for the GCC Compiler</description>
155 <require condition="CM4"/>
156 <require Tcompiler="GCC"/>
159 <condition id="CM4_FP_GCC">
160 <description>Cortex-M4 processor based device using Floating Point Unit for the GCC Compiler</description>
161 <require condition="CM4_FP"/>
162 <require Tcompiler="GCC"/>
165 <condition id="CM7_GCC">
166 <description>Cortex-M7 processor based device for the GCC Compiler</description>
167 <require condition="CM7"/>
168 <require Tcompiler="GCC"/>
171 <condition id="CM7_SP_GCC">
172 <description>Cortex-M7 processor based device using Floating Point Unit (SP) for the GCC Compiler</description>
173 <require condition="CM7_SP"/>
174 <require Tcompiler="GCC"/>
177 <condition id="CM7_DP_GCC">
178 <description>Cortex-M7 processor based device using Floating Point Unit (DP) for the GCC Compiler</description>
179 <require condition="CM7_DP"/>
180 <require Tcompiler="GCC"/>
183 <condition id="CA9_GCC">
184 <description>Cortex-A9 processor based device for the GCC Compiler</description>
185 <require condition="CA9"/>
186 <require Tcompiler="GCC"/>
189 <condition id="CMSIS RTOS2 FreeRTOS">
190 <require Cclass="CMSIS" Cgroup="RTOS2" Csub="FreeRTOS"/>
193 <condition id="FreeRTOS">
194 <require condition="ARMCC GCC"/>
195 <require Cclass="Device" Cgroup="Startup"/>
196 <require Cclass="RTOS" Cbundle="FreeRTOS" Cgroup="Config"/>
197 <require Cclass="RTOS" Cbundle="FreeRTOS" Cgroup="Heap"/>
200 <condition id="FreeRTOS Core">
201 <require Cclass="RTOS" Cbundle="FreeRTOS" Cgroup="Core"/>
204 <condition id="FreeRTOS RTOS2 Core">
205 <require Cclass="RTOS" Cbundle="FreeRTOS" Cgroup="Event Groups"/>
206 <require Cclass="RTOS" Cbundle="FreeRTOS" Cgroup="Timers"/>
207 <require Cclass="RTOS" Cbundle="FreeRTOS" Cgroup="Core"/>
208 <require Cclass="RTOS" Cbundle="FreeRTOS" Cgroup="Config" Cvariant="CMSIS RTOS2"/>
214 <!-- CMSIS-RTOS2 FreeRTOS component -->
215 <component Cclass="CMSIS" Cgroup="RTOS2" Csub="FreeRTOS" Cversion="9.0.0" Capiversion="2.1.0" condition="FreeRTOS RTOS2 Core">
216 <description>CMSIS-RTOS2 implementation for Cortex-M based on FreeRTOS</description>
218 #define RTE_CMSIS_RTOS2 /* CMSIS-RTOS2 */
219 #define RTE_CMSIS_RTOS2_FreeRTOS /* CMSIS-RTOS2 FreeRTOS */
222 <file category="doc" name="CMSIS/Documentation/General/html/index.html"/>
223 <file category="source" name="CMSIS/RTOS2/FreeRTOS/Source/cmsis_os2.c"/>
224 <file category="source" name="CMSIS/RTOS2/FreeRTOS/Source/ARM/clib_arm.c" condition="ARMCC"/>
228 <bundle Cbundle="FreeRTOS" Cclass="RTOS" Cversion="9.0.0">
229 <description>FreeRTOS Real Time Kernel</description>
230 <doc>http://www.freertos.org/Documentation/FreeRTOS_Reference_Manual_V9.0.0.pdf</doc>
231 <component Cgroup="Core" Cversion="9.0.0" condition="FreeRTOS">
232 <description>Core components API (Kernel, Tasks, Semaphores, Mutexes, Queues)</description>
234 #define RTE_RTOS_FreeRTOS_CORE /* RTOS FreeRTOS Core */
237 <file category="include" name="Source/include/"/>
239 <file category="header" name="Source/include/FreeRTOS.h"/>
240 <file category="header" name="Source/include/queue.h"/>
241 <file category="header" name="Source/include/semphr.h"/>
242 <file category="header" name="Source/include/task.h"/>
244 <file category="source" name="Source/list.c"/>
245 <file category="source" name="Source/queue.c"/>
246 <file category="source" name="Source/tasks.c"/>
248 <file category="include" condition="CM0_ARMCC" name="Source/portable/RVDS/ARM_CM0/"/>
249 <file category="source" condition="CM0_ARMCC" name="Source/portable/RVDS/ARM_CM0/port.c"/>
250 <file category="include" condition="CM3_ARMCC" name="Source/portable/RVDS/ARM_CM3/"/>
251 <file category="source" condition="CM3_ARMCC" name="Source/portable/RVDS/ARM_CM3/port.c"/>
252 <file category="include" condition="CM4_ARMCC" name="Source/portable/RVDS/ARM_CM3/"/>
253 <file category="source" condition="CM4_ARMCC" name="Source/portable/RVDS/ARM_CM3/port.c"/>
254 <file category="include" condition="CM4_FP_ARMCC" name="Source/portable/RVDS/ARM_CM4F/"/>
255 <file category="source" condition="CM4_FP_ARMCC" name="Source/portable/RVDS/ARM_CM4F/port.c"/>
256 <file category="include" condition="CM7_ARMCC" name="Source/portable/RVDS/ARM_CM3/"/>
257 <file category="source" condition="CM7_ARMCC" name="Source/portable/RVDS/ARM_CM3/port.c"/>
258 <file category="include" condition="CM7_DP_ARMCC" name="Source/portable/RVDS/ARM_CM7/r0p1/"/>
259 <file category="source" condition="CM7_DP_ARMCC" name="Source/portable/RVDS/ARM_CM7/r0p1/port.c"/>
260 <file category="include" condition="CM7_SP_ARMCC" name="Source/portable/RVDS/ARM_CM7/r0p1/"/>
261 <file category="source" condition="CM7_SP_ARMCC" name="Source/portable/RVDS/ARM_CM7/r0p1/port.c"/>
262 <file category="include" condition="CA9_ARMCC" name="Source/portable/RVDS/ARM_CA9/"/>
263 <file category="source" condition="CA9_ARMCC" name="Source/portable/RVDS/ARM_CA9/port.c"/>
264 <file category="sourceAsm" condition="CA9_ARMCC" name="Source/portable/RVDS/ARM_CA9/portASM.s"/>
266 <file category="include" condition="CM0_GCC" name="Source/portable/GCC/ARM_CM0/"/>
267 <file category="source" condition="CM0_GCC" name="Source/portable/GCC/ARM_CM0/port.c"/>
268 <file category="include" condition="CM3_GCC" name="Source/portable/GCC/ARM_CM3/"/>
269 <file category="source" condition="CM3_GCC" name="Source/portable/GCC/ARM_CM3/port.c"/>
270 <file category="include" condition="CM4_GCC" name="Source/portable/GCC/ARM_CM3/"/>
271 <file category="source" condition="CM4_GCC" name="Source/portable/GCC/ARM_CM3/port.c"/>
272 <file category="include" condition="CM4_FP_GCC" name="Source/portable/GCC/ARM_CM4F/"/>
273 <file category="source" condition="CM4_FP_GCC" name="Source/portable/GCC/ARM_CM4F/port.c"/>
274 <file category="include" condition="CM7_GCC" name="Source/portable/GCC/ARM_CM3/"/>
275 <file category="source" condition="CM7_GCC" name="Source/portable/GCC/ARM_CM3/port.c"/>
276 <file category="include" condition="CM7_DP_GCC" name="Source/portable/GCC/ARM_CM7/r0p1/"/>
277 <file category="source" condition="CM7_DP_GCC" name="Source/portable/GCC/ARM_CM7/r0p1/port.c"/>
278 <file category="include" condition="CM7_SP_GCC" name="Source/portable/GCC/ARM_CM7/r0p1/"/>
279 <file category="source" condition="CM7_SP_GCC" name="Source/portable/GCC/ARM_CM7/r0p1/port.c"/>
280 <file category="include" condition="CA9_GCC" name="Source/portable/GCC/ARM_CA9/"/>
281 <file category="source" condition="CA9_GCC" name="Source/portable/GCC/ARM_CA9/port.c"/>
282 <file category="sourceAsm" condition="CA9_GCC" name="Source/portable/GCC/ARM_CA9/portASM.S"/>
284 <file category="other" name="CMSIS/RTOS2/FreeRTOS/FreeRTOS.scvd"/>
288 <component Cgroup="Config" Cvariant="CMSIS RTOS2" Cversion="9.0.0" condition="CMSIS RTOS2 FreeRTOS">
289 <description>FreeRTOS CMSIS-RTOS2 API configuration file</description>
291 #define RTE_RTOS_FreeRTOS_CONFIG_RTOS2 /* RTOS FreeRTOS Config for CMSIS RTOS2 API */
294 <file category="header" attr="config" name="CMSIS/RTOS2/FreeRTOS/Config/FreeRTOSConfig.h" version="9.0.0"/>
298 <component Cgroup="Config" Cvariant="FreeRTOS" Cversion="9.0.0" condition="FreeRTOS Core">
299 <description>FreeRTOS API configuration file</description>
301 #define RTE_RTOS_FreeRTOS_CONFIG /* RTOS FreeRTOS Config for FreeRTOS API */
304 <file category="header" attr="config" name="Config/FreeRTOSConfig.h" version="9.0.0"/>
308 <component Cgroup="Coroutines" Cversion="9.0.0" condition="FreeRTOS Core">
309 <description>Co-routine API</description>
311 #define RTE_RTOS_FreeRTOS_COROUTINE /* RTOS FreeRTOS Co-routines */
314 <file category="header" name="Source/include/croutine.h"/>
315 <file category="source" name="Source/croutine.c"/>
319 <component Cgroup="Event Groups" Cversion="9.0.0" condition="FreeRTOS Core">
320 <description>Event Group API</description>
322 #define RTE_RTOS_FreeRTOS_EVENTGROUPS /* RTOS FreeRTOS Event Groups */
325 <file category="header" name="Source/include/event_groups.h"/>
326 <file category="source" name="Source/event_groups.c"/>
330 <component Cgroup="Timers" Cversion="9.0.0" condition="FreeRTOS Core">
331 <description>Timer API</description>
333 #define RTE_RTOS_FreeRTOS_TIMERS /* RTOS FreeRTOS Timers */
336 <file category="header" name="Source/include/timers.h"/>
337 <file category="source" name="Source/timers.c"/>
341 <component Cgroup="Heap" Cvariant="Heap_1" Cversion="9.0.0" condition="FreeRTOS Core">
342 <description>Very simple, does not permit memory to be freed.</description>
344 #define RTE_RTOS_FreeRTOS_HEAP_1 /* RTOS FreeRTOS Heap 1 */
347 <file category="source" name="Source/portable/MemMang/heap_1.c"/>
348 <file category="doc" name="http://www.freertos.org/a00111.html"/>
352 <component Cgroup="Heap" Cvariant="Heap_2" Cversion="9.0.0" condition="FreeRTOS Core">
353 <description>Permits memory to be freed, but not does coalescence adjacent free memory blocks.</description>
355 #define RTE_RTOS_FreeRTOS_HEAP_2 /* RTOS FreeRTOS Heap 2 */
358 <file category="source" name="Source/portable/MemMang/heap_2.c"/>
359 <file category="doc" name="http://www.freertos.org/a00111.html"/>
363 <component Cgroup="Heap" Cvariant="Heap_3" Cversion="9.0.0" condition="FreeRTOS Core">
364 <description>Wraps the standard malloc() and free() for thread safety.</description>
366 #define RTE_RTOS_FreeRTOS_HEAP_3 /* RTOS FreeRTOS Heap 3 */
369 <file category="source" name="Source/portable/MemMang/heap_3.c"/>
370 <file category="doc" name="http://www.freertos.org/a00111.html"/>
374 <component Cgroup="Heap" Cvariant="Heap_4" Cversion="9.0.0" condition="FreeRTOS Core" isDefaultVariant="true">
375 <description>Coalescences adjacent free memory blocks to avoid fragmentation. Includes absolute address placement option.</description>
377 #define RTE_RTOS_FreeRTOS_HEAP_4 /* RTOS FreeRTOS Heap 4 */
380 <file category="source" name="Source/portable/MemMang/heap_4.c"/>
381 <file category="doc" name="http://www.freertos.org/a00111.html"/>
385 <component Cgroup="Heap" Cvariant="Heap_5" Cversion="9.0.0" condition="FreeRTOS Core">
386 <description>Same as Heap_4, with the ability to span the heap across multiple non-adjacent memory areas.</description>
388 #define RTE_RTOS_FreeRTOS_HEAP_5 /* RTOS FreeRTOS Heap 5 */
391 <file category="source" name="Source/portable/MemMang/heap_5.c"/>
392 <file category="doc" name="http://www.freertos.org/a00111.html"/>
399 <example name="CMSIS-RTOS2 FreeRTOS Blinky" doc="Abstract.txt" folder="CMSIS/RTOS2/FreeRTOS/Examples/Blinky">
400 <description>CMSIS-RTOS2 Blinky example using FreeRTOS</description>
401 <board name="uVision Simulator" vendor="Keil"/>
403 <environment name="uv" load="Blinky.uvprojx"/>
406 <component Cclass="CMSIS" Cgroup="CORE"/>
407 <component Cclass="CMSIS" Cgroup="RTOS2"/>
408 <component Cclass="Device" Cgroup="Startup"/>
409 <category>Getting Started</category>
412 <example name="Native FreeRTOS Blinky" doc="Abstract.txt" folder="CMSIS/RTOS2/FreeRTOS/Examples/Native_Blinky">
413 <description>Blinky example using FreeRTOS natively</description>
414 <board name="uVision Simulator" vendor="Keil"/>
416 <environment name="uv" load="Blinky.uvprojx"/>
419 <component Cclass="CMSIS" Cgroup="CORE"/>
420 <component Cclass="CMSIS" Cgroup="RTOS2"/>
421 <component Cclass="Device" Cgroup="Startup"/>
422 <category>Getting Started</category>