]> begriffs open source - cmsis-freertos/blob - ARM.CMSIS-FreeRTOS.pdsc
Update cmsis_os2.c
[cmsis-freertos] / ARM.CMSIS-FreeRTOS.pdsc
1 <?xml version="1.0" encoding="utf-8"?>
2
3 <package schemaVersion="1.4" xmlns:xs="http://www.w3.org/2001/XMLSchema-instance" xs:noNamespaceSchemaLocation="PACK.xsd">
4   <vendor>ARM</vendor>
5   <name>CMSIS-FreeRTOS</name>
6   <description>Bundle of FreeRTOS for Cortex-M and Cortex-A</description>
7   <url>http://www.keil.com/pack/</url>
8   <license>License/license.txt</license>
9     
10   <releases>
11     <release version="9.0.1-dev2">
12       Added support for OS Tick component
13     </release>
14     <release version="9.0.1-dev1">
15       Added documentation for configuration options (native/CMSIS-RTOS2)
16     </release>
17     <release version="9.0.1-dev0">
18       Debug event TaskIncrementTick level set to Detail
19     </release>
20     <release version="9.0.0" date="2017-03-13">
21       Initial release version:
22       - native FreeRTOS component (RTOS: Variant=FreeRTOS)
23       - CMSIS-RTOS FreeRTOS for Cortex-M and Cortex-A9 (CMSIS:RTOS:FreeRTOS, CMSIS:RTOS2:FreeRTOS)
24     </release>
25   </releases>
26
27   <requirements>
28     <packages>
29       <package vendor="ARM" name="CMSIS" version="5.0.1-0"/>
30     </packages>
31   </requirements>
32   
33   <conditions>
34     <condition id="ARMCC">
35       <require Tcompiler="ARMCC"/>
36     </condition>
37     <condition id="GCC">
38       <require Tcompiler="GCC"/>
39     </condition>
40     <condition id="IAR">
41       <require Tcompiler="IAR"/>
42     </condition>
43     <condition id="ARMCC GCC">
44       <accept Tcompiler="ARMCC"/>
45       <accept Tcompiler="GCC"/>
46     </condition>
47     <condition id="ARMCC GCC IAR">
48       <accept Tcompiler="ARMCC"/>
49       <accept Tcompiler="GCC"/>
50       <accept Tcompiler="IAR"/>
51     </condition>
52     
53     <condition id="CM0">
54       <description>Cortex-M0 or Cortex-M0+ or SC000 processor based device</description>
55       <accept Dcore="Cortex-M0"/>
56       <accept Dcore="Cortex-M0+"/>
57       <accept Dcore="SC000"/>
58     </condition>
59     
60     <condition id="CM3">
61       <description>Cortex-M3 or SC300 processor based device</description>
62       <accept Dcore="Cortex-M3"/>
63       <accept Dcore="SC300"/>
64     </condition>
65     
66     <condition id="CM4">
67       <description>Cortex-M4 processor based device</description>
68       <require Dcore="Cortex-M4" Dfpu="NO_FPU"/>
69     </condition>
70     
71     <condition id="CM4_FP">
72       <description>Cortex-M4 processor based device using Floating Point Unit</description>
73       <require Dcore="Cortex-M4" Dfpu="FPU"/>
74     </condition>
75     
76     <condition id="CM7">
77       <description>Cortex-M7 processor based device</description>
78       <require Dcore="Cortex-M7" Dfpu="NO_FPU"/>
79     </condition>
80     
81     <condition id="CM7_FP">
82       <description>Cortex-M7 processor based device using Floating Point Unit</description>
83       <accept Dcore="Cortex-M7" Dfpu="SP_FPU"/>
84       <accept Dcore="Cortex-M7" Dfpu="DP_FPU"/>
85     </condition>
86     
87     <condition id="CM7_SP">
88       <description>Cortex-M7 processor based device using Floating Point Unit (SP)</description>
89       <require Dcore="Cortex-M7" Dfpu="SP_FPU"/>
90     </condition>
91     
92     <condition id="CM7_DP">
93       <description>Cortex-M7 processor based device using Floating Point Unit (DP)</description>
94       <require Dcore="Cortex-M7" Dfpu="DP_FPU"/>
95     </condition>
96
97     <condition id="CA9_DP">
98       <description>Cortex-A9 processor based device using Floating Point Unit (DP)</description>
99       <require Dcore="Cortex-A9" Dfpu="DP_FPU"/>
100     </condition>
101
102     <condition id="CoreM">
103       <description>Cortex-M processor based device</description>
104       <accept condition="CM0"/>
105       <accept condition="CM3"/>
106       <accept condition="CM4"/>
107       <accept condition="CM4_FP"/>
108       <accept condition="CM7"/>
109       <accept condition="CM7_FP"/>
110     </condition>
111
112     <condition id="CoreA">
113       <description>Cortex-A processor based device</description>
114       <accept condition="CA9_DP"/>
115     </condition>
116
117     <!-- ARMCC compiler -->
118     <condition id="CM0_ARMCC">
119       <description>Cortex-M0 or Cortex-M0+ or SC000 processor based device for the ARM Compiler</description>
120       <require condition="CM0"/>
121       <require Tcompiler="ARMCC"/>
122     </condition>
123
124     <condition id="CM3_ARMCC">
125       <description>Cortex-M3 or SC300 processor based device for the ARM Compiler</description>
126       <require condition="CM3"/>
127       <require Tcompiler="ARMCC"/>
128     </condition>
129
130     <condition id="CM4_ARMCC">
131       <description>Cortex-M4 processor based device for the ARM Compiler</description>
132       <require condition="CM4"/>
133       <require Tcompiler="ARMCC"/>
134     </condition>
135     <condition id="CM4_FP_ARMCC">
136       <description>Cortex-M4 processor based device using Floating Point Unit for the ARM Compiler</description>
137       <require condition="CM4_FP"/>
138       <require Tcompiler="ARMCC"/>
139     </condition>
140
141     <condition id="CM7_ARMCC">
142       <description>Cortex-M7 processor based device for the ARM Compiler</description>
143       <require condition="CM7"/>
144       <require Tcompiler="ARMCC"/>
145     </condition>
146     <condition id="CM7_SP_ARMCC">
147       <description>Cortex-M7 processor based device using Floating Point Unit (SP) for the ARM Compiler</description>
148       <require condition="CM7_SP"/>
149       <require Tcompiler="ARMCC"/>
150     </condition>
151     <condition id="CM7_DP_ARMCC">
152       <description>Cortex-M7 processor based device using Floating Point Unit (DP) for the ARM Compiler</description>
153       <require condition="CM7_DP"/>
154       <require Tcompiler="ARMCC"/>
155     </condition>
156
157     <condition id="CA9_DP_ARMCC">
158       <description>Cortex-A9 processor based device for the ARM Compiler</description>
159       <require condition="CA9_DP"/>
160       <require Tcompiler="ARMCC"/>
161     </condition>
162
163     <!-- GCC compiler -->
164     <condition id="CM0_GCC">
165       <description>Cortex-M0 or Cortex-M0+ or SC000 processor based device for the GCC Compiler</description>
166       <require condition="CM0"/>
167       <require Tcompiler="GCC"/>
168     </condition>
169
170     <condition id="CM3_GCC">
171       <description>Cortex-M3 or SC300 processor based device for the GCC Compiler</description>
172       <require condition="CM3"/>
173       <require Tcompiler="GCC"/>
174     </condition>
175
176     <condition id="CM4_GCC">
177       <description>Cortex-M4 processor based device for the GCC Compiler</description>
178       <require condition="CM4"/>
179       <require Tcompiler="GCC"/>
180     </condition>
181
182     <condition id="CM4_FP_GCC">
183       <description>Cortex-M4 processor based device using Floating Point Unit for the GCC Compiler</description>
184       <require condition="CM4_FP"/>
185       <require Tcompiler="GCC"/>
186     </condition>
187
188     <condition id="CM7_GCC">
189       <description>Cortex-M7 processor based device for the GCC Compiler</description>
190       <require condition="CM7"/>
191       <require Tcompiler="GCC"/>
192     </condition>
193
194     <condition id="CM7_SP_GCC">
195       <description>Cortex-M7 processor based device using Floating Point Unit (SP) for the GCC Compiler</description>
196       <require condition="CM7_SP"/>
197       <require Tcompiler="GCC"/>
198     </condition>
199
200     <condition id="CM7_DP_GCC">
201       <description>Cortex-M7 processor based device using Floating Point Unit (DP) for the GCC Compiler</description>
202       <require condition="CM7_DP"/>
203       <require Tcompiler="GCC"/>
204     </condition>
205
206     <condition id="CA9_DP_GCC">
207       <description>Cortex-A9 processor based device for the GCC Compiler</description>
208       <require condition="CA9_DP"/>
209       <require Tcompiler="GCC"/>
210     </condition>
211
212     <condition id="CMSIS RTOS2 FreeRTOS">
213       <require Cclass="CMSIS" Cgroup="RTOS2" Csub="FreeRTOS"/>  
214     </condition>
215
216     <condition id="FreeRTOS">
217       <require condition="ARMCC GCC"/>
218       <require Cclass="Device" Cgroup="Startup"/>
219       <require Cclass="RTOS" Cbundle="FreeRTOS" Cgroup="Config"/>
220       <require Cclass="RTOS" Cbundle="FreeRTOS" Cgroup="Heap"/>
221     </condition>
222
223     <condition id="FreeRTOS Core">
224       <require Cclass="RTOS" Cbundle="FreeRTOS" Cgroup="Core"/>
225     </condition>
226
227     <condition id="FreeRTOS RTOS2 Core">
228       <require Cclass="RTOS" Cbundle="FreeRTOS" Cgroup="Event Groups"/>
229       <require Cclass="RTOS" Cbundle="FreeRTOS" Cgroup="Timers"/>
230       <require Cclass="RTOS" Cbundle="FreeRTOS" Cgroup="Core"/>
231       <require Cclass="RTOS" Cbundle="FreeRTOS" Cgroup="Config" Cvariant="CMSIS RTOS2"/>
232     </condition>
233
234     <condition id="FreeRTOS RTOS2 CortexM">
235       <require condition="CoreM"/>
236       <require Cclass="RTOS" Cbundle="FreeRTOS" Cgroup="Event Groups"/>
237       <require Cclass="RTOS" Cbundle="FreeRTOS" Cgroup="Timers"/>
238       <require Cclass="RTOS" Cbundle="FreeRTOS" Cgroup="Core"/>
239       <require Cclass="RTOS" Cbundle="FreeRTOS" Cgroup="Config" Cvariant="CMSIS RTOS2"/>
240     </condition>
241
242     <condition id="FreeRTOS RTOS2 CortexA">
243       <require condition="CoreA"/>
244       <require Cclass="Device" Cgroup="OS Tick"/>
245       <require Cclass="RTOS" Cbundle="FreeRTOS" Cgroup="Event Groups"/>
246       <require Cclass="RTOS" Cbundle="FreeRTOS" Cgroup="Timers"/>
247       <require Cclass="RTOS" Cbundle="FreeRTOS" Cgroup="Core"/>
248       <require Cclass="RTOS" Cbundle="FreeRTOS" Cgroup="Config" Cvariant="CMSIS RTOS2"/>
249     </condition>
250
251   </conditions>
252
253   <components>
254     <!-- CMSIS-RTOS FreeRTOS component -->
255     <component Cclass="CMSIS" Cgroup="RTOS" Csub="FreeRTOS" Cversion="9.0.0" Capiversion="1.0.0" condition="FreeRTOS RTOS2 Core">
256       <description>CMSIS-RTOS implementation for Cortex-M based on FreeRTOS</description>
257       <RTE_Components_h>
258         #define RTE_CMSIS_RTOS                  /* CMSIS-RTOS */
259         #define RTE_CMSIS_RTOS_FreeRTOS         /* CMSIS-RTOS FreeRTOS */
260       </RTE_Components_h>
261       <files>
262         <file category="header" name="CMSIS/RTOS2/FreeRTOS/Include1/cmsis_os.h"/>
263         <file category="source" name="CMSIS/RTOS2/FreeRTOS/Source/cmsis_os1.c"/>
264       </files>
265     </component>
266
267     <!-- CMSIS-RTOS2 FreeRTOS component -->
268     <component Cclass="CMSIS" Cgroup="RTOS2" Csub="FreeRTOS" Cversion="9.0.0" Capiversion="2.1.1" condition="FreeRTOS RTOS2 CortexM">
269       <description>CMSIS-RTOS2 implementation for Cortex-M based on FreeRTOS</description>
270       <RTE_Components_h>
271         #define RTE_CMSIS_RTOS2                 /* CMSIS-RTOS2 */
272         #define RTE_CMSIS_RTOS2_FreeRTOS        /* CMSIS-RTOS2 FreeRTOS */
273       </RTE_Components_h>
274       <files>
275         <file category="doc"    name="CMSIS/Documentation/General/html/index.html"/>
276         <file category="source" name="CMSIS/RTOS2/FreeRTOS/Source/cmsis_os2.c"/>
277         <file category="source" name="CMSIS/RTOS2/FreeRTOS/Source/ARM/clib_arm.c" condition="ARMCC"/>
278
279         <!-- OS Tick (SysTick) -->
280         <file category="source" name="CMSIS/RTOS2/FreeRTOS/Source/os_systick.c"/>
281       </files>
282     </component>
283
284     <component Cclass="CMSIS" Cgroup="RTOS2" Csub="FreeRTOS" Cversion="9.0.0" Capiversion="2.1.1" condition="FreeRTOS RTOS2 CortexA">
285       <description>CMSIS-RTOS2 implementation for Cortex-A based on FreeRTOS</description>
286       <RTE_Components_h>
287         #define RTE_CMSIS_RTOS2                 /* CMSIS-RTOS2 */
288         #define RTE_CMSIS_RTOS2_FreeRTOS        /* CMSIS-RTOS2 FreeRTOS */
289       </RTE_Components_h>
290       <files>
291         <file category="doc"    name="CMSIS/Documentation/General/html/index.html"/>
292         <file category="source" name="CMSIS/RTOS2/FreeRTOS/Source/cmsis_os2.c"/>
293         <file category="source" name="CMSIS/RTOS2/FreeRTOS/Source/ARM/clib_arm.c" condition="ARMCC"/>
294       </files>
295     </component>
296
297     <bundle Cbundle="FreeRTOS" Cclass="RTOS" Cversion="9.0.0">
298       <description>FreeRTOS Real Time Kernel</description>
299       <doc>http://www.freertos.org/Documentation/FreeRTOS_Reference_Manual_V9.0.0.pdf</doc>
300       <component Cgroup="Core" Cversion="9.0.0" condition="FreeRTOS">
301         <description>Core components API (Kernel, Tasks, Semaphores, Mutexes, Queues)</description>
302         <RTE_Components_h>
303           #define RTE_RTOS_FreeRTOS_CORE          /* RTOS FreeRTOS Core */
304         </RTE_Components_h>
305         <files>
306           <file category="include" name="Source/include/"/>
307   
308           <file category="header"  name="Source/include/FreeRTOS.h"/>
309           <file category="header"  name="Source/include/queue.h"/>
310           <file category="header"  name="Source/include/semphr.h"/>
311           <file category="header"  name="Source/include/task.h"/>
312   
313           <file category="source"  name="Source/list.c"/>
314           <file category="source"  name="Source/queue.c"/>
315           <file category="source"  name="Source/tasks.c"/>
316   
317           <file category="include"   condition="CM0_ARMCC"    name="Source/portable/RVDS/ARM_CM0/"/>
318           <file category="source"    condition="CM0_ARMCC"    name="Source/portable/RVDS/ARM_CM0/port.c"/>
319           <file category="include"   condition="CM3_ARMCC"    name="Source/portable/RVDS/ARM_CM3/"/>
320           <file category="source"    condition="CM3_ARMCC"    name="Source/portable/RVDS/ARM_CM3/port.c"/>
321           <file category="include"   condition="CM4_ARMCC"    name="Source/portable/RVDS/ARM_CM3/"/>
322           <file category="source"    condition="CM4_ARMCC"    name="Source/portable/RVDS/ARM_CM3/port.c"/>
323           <file category="include"   condition="CM4_FP_ARMCC" name="Source/portable/RVDS/ARM_CM4F/"/>
324           <file category="source"    condition="CM4_FP_ARMCC" name="Source/portable/RVDS/ARM_CM4F/port.c"/>
325           <file category="include"   condition="CM7_ARMCC"    name="Source/portable/RVDS/ARM_CM3/"/>
326           <file category="source"    condition="CM7_ARMCC"    name="Source/portable/RVDS/ARM_CM3/port.c"/>
327           <file category="include"   condition="CM7_DP_ARMCC" name="Source/portable/RVDS/ARM_CM7/r0p1/"/>
328           <file category="source"    condition="CM7_DP_ARMCC" name="Source/portable/RVDS/ARM_CM7/r0p1/port.c"/>
329           <file category="include"   condition="CM7_SP_ARMCC" name="Source/portable/RVDS/ARM_CM7/r0p1/"/>
330           <file category="source"    condition="CM7_SP_ARMCC" name="Source/portable/RVDS/ARM_CM7/r0p1/port.c"/>
331           <file category="include"   condition="CA9_DP_ARMCC" name="Source/portable/RVDS/ARM_CA9/"/>
332           <file category="source"    condition="CA9_DP_ARMCC" name="Source/portable/RVDS/ARM_CA9/port.c"/>
333           <file category="sourceAsm" condition="CA9_DP_ARMCC" name="Source/portable/RVDS/ARM_CA9/portASM.s"/>
334   
335           <file category="include"   condition="CM0_GCC"    name="Source/portable/GCC/ARM_CM0/"/>
336           <file category="source"    condition="CM0_GCC"    name="Source/portable/GCC/ARM_CM0/port.c"/>
337           <file category="include"   condition="CM3_GCC"    name="Source/portable/GCC/ARM_CM3/"/>
338           <file category="source"    condition="CM3_GCC"    name="Source/portable/GCC/ARM_CM3/port.c"/>
339           <file category="include"   condition="CM4_GCC"    name="Source/portable/GCC/ARM_CM3/"/>
340           <file category="source"    condition="CM4_GCC"    name="Source/portable/GCC/ARM_CM3/port.c"/>
341           <file category="include"   condition="CM4_FP_GCC" name="Source/portable/GCC/ARM_CM4F/"/>
342           <file category="source"    condition="CM4_FP_GCC" name="Source/portable/GCC/ARM_CM4F/port.c"/>
343           <file category="include"   condition="CM7_GCC"    name="Source/portable/GCC/ARM_CM3/"/>
344           <file category="source"    condition="CM7_GCC"    name="Source/portable/GCC/ARM_CM3/port.c"/>
345           <file category="include"   condition="CM7_DP_GCC" name="Source/portable/GCC/ARM_CM7/r0p1/"/>
346           <file category="source"    condition="CM7_DP_GCC" name="Source/portable/GCC/ARM_CM7/r0p1/port.c"/>
347           <file category="include"   condition="CM7_SP_GCC" name="Source/portable/GCC/ARM_CM7/r0p1/"/>
348           <file category="source"    condition="CM7_SP_GCC" name="Source/portable/GCC/ARM_CM7/r0p1/port.c"/>
349           <file category="include"   condition="CA9_DP_GCC" name="Source/portable/GCC/ARM_CA9/"/>
350           <file category="source"    condition="CA9_DP_GCC" name="Source/portable/GCC/ARM_CA9/port.c"/>
351           <file category="sourceAsm" condition="CA9_DP_GCC" name="Source/portable/GCC/ARM_CA9/portASM.S"/>
352
353           <file category="header" name="CMSIS/RTOS2/FreeRTOS/Include/freertos_evr.h"/>
354           <file category="source" name="CMSIS/RTOS2/FreeRTOS/Source/freertos_evr.c"/>
355           <file category="other"  name="CMSIS/RTOS2/FreeRTOS/FreeRTOS.scvd"/>
356         </files>
357       </component>
358   
359       <component Cgroup="Config" Cvariant="CMSIS RTOS2" Cversion="9.0.0" condition="CMSIS RTOS2 FreeRTOS">
360         <description>FreeRTOS CMSIS-RTOS2 API configuration file</description>
361         <RTE_Components_h>
362           #define RTE_RTOS_FreeRTOS_CONFIG_RTOS2  /* RTOS FreeRTOS Config for CMSIS RTOS2 API */
363         </RTE_Components_h>
364         <files>
365           <file category="doc"    name="CMSIS/Documentation/General/html/cre_freertos_proj.html#cmsis_freertos_config"/>
366           <file category="header" attr="config" name="CMSIS/RTOS2/FreeRTOS/Config/ARMCM/FreeRTOSConfig.h" version="9.0.1" condition="CoreM"/>
367           <file category="header" attr="config" name="CMSIS/RTOS2/FreeRTOS/Config/ARMCA/FreeRTOSConfig.h" version="9.0.1" condition="CoreA"/>
368         </files>
369       </component>
370      
371       <component Cgroup="Config" Cvariant="FreeRTOS" Cversion="9.0.0" condition="FreeRTOS Core">
372         <description>FreeRTOS API configuration file</description>
373         <RTE_Components_h>
374           #define RTE_RTOS_FreeRTOS_CONFIG        /* RTOS FreeRTOS Config for FreeRTOS API */
375         </RTE_Components_h>
376         <files>
377           <file category="doc"    name="CMSIS/Documentation/General/html/cre_freertos_proj.html#native_freertos_config"/>
378           <file category="header" attr="config" name="Config/ARMCM/FreeRTOSConfig.h" version="9.0.0" condition="CoreM"/>
379           <file category="header" attr="config" name="Config/ARMCA/FreeRTOSConfig.h" version="9.0.0" condition="CoreA"/>
380         </files>
381       </component>
382      
383       <component Cgroup="Coroutines" Cversion="9.0.0" condition="FreeRTOS Core">
384         <description>Co-routine API</description>
385         <RTE_Components_h>
386           #define RTE_RTOS_FreeRTOS_COROUTINE     /* RTOS FreeRTOS Co-routines */
387         </RTE_Components_h>
388         <files>
389           <file category="header" name="Source/include/croutine.h"/>
390           <file category="source" name="Source/croutine.c"/>
391         </files>
392       </component>
393      
394       <component Cgroup="Event Groups" Cversion="9.0.0" condition="FreeRTOS Core">
395         <description>Event Group API</description>
396         <RTE_Components_h>
397           #define RTE_RTOS_FreeRTOS_EVENTGROUPS   /* RTOS FreeRTOS Event Groups */
398         </RTE_Components_h>
399         <files>
400           <file category="header" name="Source/include/event_groups.h"/>
401           <file category="source" name="Source/event_groups.c"/>
402         </files>
403       </component>
404      
405       <component Cgroup="Timers" Cversion="9.0.0" condition="FreeRTOS Core">
406         <description>Timer API</description>
407         <RTE_Components_h>
408           #define RTE_RTOS_FreeRTOS_TIMERS        /* RTOS FreeRTOS Timers */
409         </RTE_Components_h>
410         <files>
411           <file category="header" name="Source/include/timers.h"/>
412           <file category="source" name="Source/timers.c"/>
413         </files>
414       </component>
415      
416       <component Cgroup="Heap" Cvariant="Heap_1" Cversion="9.0.0" condition="FreeRTOS Core">
417         <description>Very simple, does not permit memory to be freed.</description>
418         <RTE_Components_h>
419           #define RTE_RTOS_FreeRTOS_HEAP_1        /* RTOS FreeRTOS Heap 1 */
420         </RTE_Components_h>
421         <files>
422           <file category="source" name="Source/portable/MemMang/heap_1.c"/>
423           <file category="doc"    name="http://www.freertos.org/a00111.html"/>
424         </files>
425       </component>
426      
427       <component Cgroup="Heap" Cvariant="Heap_2" Cversion="9.0.0" condition="FreeRTOS Core">
428         <description>Permits memory to be freed, but not does coalescence adjacent free memory blocks.</description>
429         <RTE_Components_h>
430           #define RTE_RTOS_FreeRTOS_HEAP_2        /* RTOS FreeRTOS Heap 2 */
431         </RTE_Components_h>
432         <files>
433           <file category="source" name="Source/portable/MemMang/heap_2.c"/>
434           <file category="doc"    name="http://www.freertos.org/a00111.html"/>
435         </files>
436       </component>
437      
438       <component Cgroup="Heap" Cvariant="Heap_3" Cversion="9.0.0" condition="FreeRTOS Core">
439         <description>Wraps the standard malloc() and free() for thread safety.</description>
440         <RTE_Components_h>
441           #define RTE_RTOS_FreeRTOS_HEAP_3        /* RTOS FreeRTOS Heap 3 */
442         </RTE_Components_h>
443         <files>
444           <file category="source" name="Source/portable/MemMang/heap_3.c"/>
445           <file category="doc"    name="http://www.freertos.org/a00111.html"/>
446         </files>
447       </component>
448      
449       <component Cgroup="Heap" Cvariant="Heap_4" Cversion="9.0.0" condition="FreeRTOS Core" isDefaultVariant="true">
450         <description>Coalescences adjacent free memory blocks to avoid fragmentation. Includes absolute address placement option.</description>
451         <RTE_Components_h>
452           #define RTE_RTOS_FreeRTOS_HEAP_4        /* RTOS FreeRTOS Heap 4 */
453         </RTE_Components_h>
454         <files>
455           <file category="source" name="Source/portable/MemMang/heap_4.c"/>
456           <file category="doc"    name="http://www.freertos.org/a00111.html"/>
457         </files>
458       </component>
459      
460       <component Cgroup="Heap" Cvariant="Heap_5" Cversion="9.0.0" condition="FreeRTOS Core">
461         <description>Same as Heap_4, with the ability to span the heap across multiple non-adjacent memory areas.</description>
462         <RTE_Components_h>
463           #define RTE_RTOS_FreeRTOS_HEAP_5        /* RTOS FreeRTOS Heap 5 */
464         </RTE_Components_h>
465         <files>
466           <file category="source" name="Source/portable/MemMang/heap_5.c"/>
467           <file category="doc"    name="http://www.freertos.org/a00111.html"/>
468         </files>
469       </component>
470     </bundle>
471   </components>
472
473   <examples>
474     <example name="CMSIS-RTOS2 FreeRTOS Blinky" doc="Abstract.txt" folder="CMSIS/RTOS2/FreeRTOS/Examples/Blinky">
475       <description>CMSIS-RTOS2 Blinky example using FreeRTOS</description>
476       <board name="uVision Simulator" vendor="Keil"/>
477       <project>
478         <environment name="uv" load="Blinky.uvprojx"/>
479       </project>
480       <attributes>
481         <component Cclass="CMSIS" Cgroup="CORE"/>
482         <component Cclass="CMSIS" Cgroup="RTOS2"/>
483         <component Cclass="Device" Cgroup="Startup"/>
484         <category>Getting Started</category>
485       </attributes>
486     </example>
487
488     <example name="CMSIS-RTOS2 FreeRTOS Blinky CA9" doc="Abstract.txt" folder="CMSIS/RTOS2/FreeRTOS/Examples/Blinky_CA9">
489       <description>CMSIS-RTOS2 Blinky example using FreeRTOS for Cortex-A9</description>
490       <board name="ARM Fixed Virtual Platform" vendor="ARM"/>
491       <project>
492         <environment name="ds5" load=".project"/>
493       </project>
494       <attributes>
495         <component Cclass="CMSIS" Cgroup="CORE"/>
496         <component Cclass="CMSIS" Cgroup="RTOS2"/>
497         <component Cclass="Device" Cgroup="Startup"/>
498         <category>Getting Started</category>
499       </attributes>
500     </example>
501
502     <example name="Native FreeRTOS Blinky" doc="Abstract.txt" folder="CMSIS/RTOS2/FreeRTOS/Examples/Native_Blinky">
503       <description>Blinky example using FreeRTOS natively</description>
504       <board name="uVision Simulator" vendor="Keil"/>
505       <project>
506         <environment name="uv" load="Blinky.uvprojx"/>
507       </project>
508       <attributes>
509         <component Cclass="CMSIS" Cgroup="CORE"/>
510         <component Cclass="CMSIS" Cgroup="RTOS2"/>
511         <component Cclass="Device" Cgroup="Startup"/>
512         <category>Getting Started</category>
513       </attributes>
514     </example>
515   </examples>
516 </package>