]> begriffs open source - cmsis-freertos/blob - ARM.CMSIS-FreeRTOS.pdsc
Prevent osKernelStart to be called again if FreeRTOS kernel already started.
[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="10.3.2-dev0">
12       Active development:
13       - Fix osMemoryPoolNew expression use (#42)
14     </release>
15     <release version="10.3.1" date="2020-04-30">
16       FreeRTOS 10.3.1
17       Maintenance for CMSIS 5.7.0:
18       - Enhanced kernel configuration handling and checking when using CMSIS-RTOS2 API
19       - Added CMSIS-RTOS2 Blinky example for IAR using EWARM simulator
20       - Modified pack description to avoid component identification issues
21     </release>
22     <release version="10.3.0" date="2019-12-04">
23       FreeRTOS 10.2.1
24       Maintenance for CMSIS 5.4.0:
25        - Added osMemoryPool functions using FreeRTOS
26        - Corrected osEventFlagsWait flag comparison when using osFlagsWaitAll
27        - Corrected osThreadGetStackSpace return value (bytes instead of words)
28        - Removed Cortex-A examples (available in device specific packs)
29     </release>
30     <release version="10.2.0" date="2019-04-12">
31       FreeRTOS 10.2.0
32       Maintenance for CMSIS 5.4.0:
33       - Updated to CMSIS RTOS2 API 2.1.3
34       - Updated Arm standard C library interface
35       - Added configuration for the Event Recorder
36       - Added TrustZone example for Armv8M using RTOS2 API
37       - Enhanced FreeRTOS component viewer
38       - Corrected osDelayUntil execution duration
39       - Corrected SysTick_Handler execution when kernel is not started
40       - Corrected critical section for osKernelGetSysTimerCount
41     </release>
42     <release version="10.0.1" date="2018-02-20">
43       FreeRTOS 10.0.0
44       Maintenance for CMSIS 5.3.0:
45        - Added queue registry support to CMSIS:RTOS2:FreeRTOS component.
46        - Updated CMSIS-FreeRTOS component view to display queue, mutex and semaphore objects.
47        - Updated to CMSIS RTOS2 API 2.1.2 and OS Tick API 1.0.1.
48        - Fixed context switch response latency for API calls from ISR.
49     </release>
50     <release version="9.1.0" date="2017-08-11">
51       FreeRTOS 9.0.0
52       Maintenance release for CMSIS 5.1.0:
53       - Added support for ARM Compiler 6
54       - Updated Cortex-A example to use IRQ Controller component
55       - Corrected stack size allocation in RTOS2 osThreadNew function
56       - Added support for OS Tick component
57       - Added documentation for configuration options (native/CMSIS-RTOS2)
58       - Debug event TaskIncrementTick level set to Detail
59     </release>
60     <release version="9.0.0" date="2017-03-13">
61       Initial release version:
62       - native FreeRTOS component (RTOS: Variant=FreeRTOS)
63       - CMSIS-RTOS FreeRTOS for Cortex-M and Cortex-A9 (CMSIS:RTOS:FreeRTOS, CMSIS:RTOS2:FreeRTOS)
64     </release>
65   </releases>
66
67   <requirements>
68     <packages>
69       <package vendor="ARM" name="CMSIS" version="5.4.0-0"/>
70     </packages>
71   </requirements>
72
73   <conditions>
74     <condition id="ARMCC6">
75       <accept Tcompiler="ARMCC" Toptions="AC6"/>
76       <accept Tcompiler="ARMCC" Toptions="AC6LTO"/>
77     </condition>
78     <condition id="ARMCC">
79       <require Tcompiler="ARMCC" Toptions="AC5"/>
80     </condition>
81     <condition id="GCC">
82       <require Tcompiler="GCC"/>
83     </condition>
84     <condition id="IAR">
85       <require Tcompiler="IAR"/>
86     </condition>
87
88     <condition id="CM0">
89       <description>Cortex-M0 or Cortex-M0+ or SC000 processor based device</description>
90       <accept Dcore="Cortex-M0"/>
91       <accept Dcore="Cortex-M0+"/>
92       <accept Dcore="SC000"/>
93     </condition>
94
95     <condition id="CM3">
96       <description>Cortex-M3 or SC300 processor based device</description>
97       <accept Dcore="Cortex-M3"/>
98       <accept Dcore="SC300"/>
99     </condition>
100
101     <condition id="CM4">
102       <description>Cortex-M4 processor based device</description>
103       <require Dcore="Cortex-M4" Dfpu="NO_FPU"/>
104     </condition>
105
106     <condition id="CM4_FP">
107       <description>Cortex-M4 processor based device using Floating Point Unit</description>
108       <require Dcore="Cortex-M4" Dfpu="FPU"/>
109     </condition>
110
111     <condition id="CM7">
112       <description>Cortex-M7 processor based device</description>
113       <require Dcore="Cortex-M7" Dfpu="NO_FPU"/>
114     </condition>
115
116     <condition id="CM7_FP">
117       <description>Cortex-M7 processor based device using Floating Point Unit</description>
118       <accept Dcore="Cortex-M7" Dfpu="SP_FPU"/>
119       <accept Dcore="Cortex-M7" Dfpu="DP_FPU"/>
120     </condition>
121
122     <condition id="CM7_SP">
123       <description>Cortex-M7 processor based device using Floating Point Unit (SP)</description>
124       <require Dcore="Cortex-M7" Dfpu="SP_FPU"/>
125     </condition>
126
127     <condition id="CM7_DP">
128       <description>Cortex-M7 processor based device using Floating Point Unit (DP)</description>
129       <require Dcore="Cortex-M7" Dfpu="DP_FPU"/>
130     </condition>
131
132     <condition id="CM23">
133       <description>Cortex-M23 processor based device</description>
134       <require Dcore="Cortex-M23"/>
135     </condition>
136
137     <condition id="CM23_NoTZ">
138       <description>Cortex-M23 processor based device without TrustZone</description>
139       <require condition="CM23"/>
140       <require Dtz="NO_TZ"/>
141     </condition>
142
143     <condition id="CM23_TZ">
144       <description>Cortex-M23 processor based device with TrustZone</description>
145       <require condition="CM23"/>
146       <require Dtz="TZ"/>
147     </condition>
148
149     <condition id="CM33">
150       <description>Cortex-M33 processor based device</description>
151       <accept Dcore="Cortex-M33"/>
152     </condition>
153
154     <condition id="CM33_NoTZ">
155       <description>Cortex-M33 processor based device without TrustZone</description>
156       <require condition="CM33"/>
157       <require Dtz="NO_TZ"/>
158     </condition>
159
160     <condition id="CM33_TZ">
161       <description>Cortex-M33 processor based device with TrustZone</description>
162       <require condition="CM33"/>
163       <require Dtz="TZ"/>
164     </condition>
165
166     <condition id="CA9_DP">
167       <description>Cortex-A9 processor based device using Floating Point Unit (DP)</description>
168       <require Dcore="Cortex-A9" Dfpu="DP_FPU"/>
169     </condition>
170
171     <condition id="CoreM">
172       <description>Cortex-M processor based device</description>
173       <accept condition="CM0"/>
174       <accept condition="CM3"/>
175       <accept condition="CM4"/>
176       <accept condition="CM4_FP"/>
177       <accept condition="CM7"/>
178       <accept condition="CM7_FP"/>
179       <accept condition="CM23"/>
180       <accept condition="CM33"/>
181     </condition>
182
183     <condition id="CoreA">
184       <description>Cortex-A processor based device</description>
185       <accept condition="CA9_DP"/>
186     </condition>
187
188     <!-- ARMCC compiler -->
189     <condition id="CM0_ARMCC">
190       <description>Cortex-M0 or Cortex-M0+ or SC000 processor based device for the ARM Compiler 5</description>
191       <require condition="CM0"/>
192       <require condition="ARMCC"/>
193     </condition>
194
195     <condition id="CM3_ARMCC">
196       <description>Cortex-M3 or SC300 processor based device for the ARM Compiler 5</description>
197       <require condition="CM3"/>
198       <require condition="ARMCC"/>
199     </condition>
200
201     <condition id="CM4_ARMCC">
202       <description>Cortex-M4 processor based device for the ARM Compiler 5</description>
203       <require condition="CM4"/>
204       <require condition="ARMCC"/>
205     </condition>
206     <condition id="CM4_FP_ARMCC">
207       <description>Cortex-M4 processor based device using Floating Point Unit for the ARM Compiler 5</description>
208       <require condition="CM4_FP"/>
209       <require condition="ARMCC"/>
210     </condition>
211
212     <condition id="CM7_ARMCC">
213       <description>Cortex-M7 processor based device for the ARM Compiler 5</description>
214       <require condition="CM7"/>
215       <require condition="ARMCC"/>
216     </condition>
217     <condition id="CM7_SP_ARMCC">
218       <description>Cortex-M7 processor based device using Floating Point Unit (SP) for the ARM Compiler 5</description>
219       <require condition="CM7_SP"/>
220       <require condition="ARMCC"/>
221     </condition>
222     <condition id="CM7_DP_ARMCC">
223       <description>Cortex-M7 processor based device using Floating Point Unit (DP) for the ARM Compiler 5</description>
224       <require condition="CM7_DP"/>
225       <require condition="ARMCC"/>
226     </condition>
227
228     <condition id="CA9_DP_ARMCC">
229       <description>Cortex-A9 processor based device using Floating Point Unit (DP) for the ARM Compiler 5</description>
230       <require condition="CA9_DP"/>
231       <require condition="ARMCC"/>
232     </condition>
233
234     <!-- ARMCC6 compiler -->
235     <condition id="CM0_ARMCC6">
236       <description>Cortex-M0 or Cortex-M0+ or SC000 processor based device for the ARM Compiler 6</description>
237       <require condition="CM0"/>
238       <require condition="ARMCC6"/>
239     </condition>
240
241     <condition id="CM3_ARMCC6">
242       <description>Cortex-M3 or SC300 processor based device for the ARM Compiler 6</description>
243       <require condition="CM3"/>
244       <require condition="ARMCC6"/>
245     </condition>
246
247     <condition id="CM4_ARMCC6">
248       <description>Cortex-M4 processor based device for the ARM Compiler 6</description>
249       <require condition="CM4"/>
250       <require condition="ARMCC6"/>
251     </condition>
252     <condition id="CM4_FP_ARMCC6">
253       <description>Cortex-M4 processor based device using Floating Point Unit for the ARM Compiler 6</description>
254       <require condition="CM4_FP"/>
255       <require condition="ARMCC6"/>
256     </condition>
257
258     <condition id="CM7_ARMCC6">
259       <description>Cortex-M7 processor based device for the ARM Compiler 6</description>
260       <require condition="CM7"/>
261       <require condition="ARMCC6"/>
262     </condition>
263     <condition id="CM7_SP_ARMCC6">
264       <description>Cortex-M7 processor based device using Floating Point Unit (SP) for the ARM Compiler 6</description>
265       <require condition="CM7_SP"/>
266       <require condition="ARMCC6"/>
267     </condition>
268     <condition id="CM7_DP_ARMCC6">
269       <description>Cortex-M7 processor based device using Floating Point Unit (DP) for the ARM Compiler 6</description>
270       <require condition="CM7_DP"/>
271       <require condition="ARMCC6"/>
272     </condition>
273
274     <condition id="CM23_ARMCC6">
275       <description>Cortex-M23 processor based device for the ARM Compiler 6</description>
276       <require condition="CM23"/>
277       <require condition="ARMCC6"/>
278     </condition>
279     <condition id="CM23_NoTZ_ARMCC6">
280       <description>Cortex-M23 processor based device without TrustZone for the ARM Compiler 6</description>
281       <require condition="CM23_NoTZ"/>
282       <require condition="ARMCC6"/>
283     </condition>
284     <condition id="CM23_TZ_ARMCC6">
285       <description>Cortex-M23 processor based device with TrustZone for the ARM Compiler 6</description>
286       <require condition="CM23_TZ"/>
287       <require condition="ARMCC6"/>
288     </condition>
289
290     <condition id="CM33_ARMCC6">
291       <description>Cortex-M33 processor based device for the ARM Compiler 6</description>
292       <require condition="CM33"/>
293       <require condition="ARMCC6"/>
294     </condition>
295     <condition id="CM33_NoTZ_ARMCC6">
296       <description>Cortex-M33 processor based device without TrustZone for the ARM Compiler 6</description>
297       <require condition="CM33_NoTZ"/>
298       <require condition="ARMCC6"/>
299     </condition>
300     <condition id="CM33_TZ_ARMCC6">
301       <description>Cortex-M33 processor based device with TrustZone for the ARM Compiler 6</description>
302       <require condition="CM33_TZ"/>
303       <require condition="ARMCC6"/>
304     </condition>
305
306     <condition id="CA9_DP_ARMCC6">
307       <description>Cortex-A9 processor based device using Floating Point Unit (DP) for the ARM Compiler 6</description>
308       <require condition="CA9_DP"/>
309       <require condition="ARMCC6"/>
310     </condition>
311
312     <!-- GCC compiler -->
313     <condition id="CM0_GCC">
314       <description>Cortex-M0 or Cortex-M0+ or SC000 processor based device for the GCC Compiler</description>
315       <require condition="CM0"/>
316       <require condition="GCC"/>
317     </condition>
318
319     <condition id="CM3_GCC">
320       <description>Cortex-M3 or SC300 processor based device for the GCC Compiler</description>
321       <require condition="CM3"/>
322       <require condition="GCC"/>
323     </condition>
324
325     <condition id="CM4_GCC">
326       <description>Cortex-M4 processor based device for the GCC Compiler</description>
327       <require condition="CM4"/>
328       <require condition="GCC"/>
329     </condition>
330     <condition id="CM4_FP_GCC">
331       <description>Cortex-M4 processor based device using Floating Point Unit for the GCC Compiler</description>
332       <require condition="CM4_FP"/>
333       <require condition="GCC"/>
334     </condition>
335
336     <condition id="CM7_GCC">
337       <description>Cortex-M7 processor based device for the GCC Compiler</description>
338       <require condition="CM7"/>
339       <require condition="GCC"/>
340     </condition>
341     <condition id="CM7_SP_GCC">
342       <description>Cortex-M7 processor based device using Floating Point Unit (SP) for the GCC Compiler</description>
343       <require condition="CM7_SP"/>
344       <require condition="GCC"/>
345     </condition>
346     <condition id="CM7_DP_GCC">
347       <description>Cortex-M7 processor based device using Floating Point Unit (DP) for the GCC Compiler</description>
348       <require condition="CM7_DP"/>
349       <require condition="GCC"/>
350     </condition>
351
352     <condition id="CM23_GCC">
353       <description>Cortex-M23 processor based device for the GCC Compiler</description>
354       <require condition="CM23"/>
355       <require condition="GCC"/>
356     </condition>
357     <condition id="CM23_NoTZ_GCC">
358       <description>Cortex-M23 processor based device without TrustZone for the GCC Compiler</description>
359       <require condition="CM23_NoTZ"/>
360       <require condition="GCC"/>
361     </condition>
362     <condition id="CM23_TZ_GCC">
363       <description>Cortex-M23 processor based device with TrustZone for the GCC Compiler</description>
364       <require condition="CM23_TZ"/>
365       <require condition="GCC"/>
366     </condition>
367
368     <condition id="CM33_GCC">
369       <description>Cortex-M33 processor based device for the GCC Compiler</description>
370       <require condition="CM33"/>
371       <require condition="GCC"/>
372     </condition>
373     <condition id="CM33_NoTZ_GCC">
374       <description>Cortex-M33 processor based device without TrustZone for the GCC Compiler</description>
375       <require condition="CM33_NoTZ"/>
376       <require condition="GCC"/>
377     </condition>
378     <condition id="CM33_TZ_GCC">
379       <description>Cortex-M33 processor based device with TrustZone for the GCC Compiler</description>
380       <require condition="CM33_TZ"/>
381       <require condition="GCC"/>
382     </condition>
383
384     <condition id="CA9_DP_GCC">
385       <description>Cortex-A9 processor based device using Floating Point Unit (DP) for the GCC Compiler</description>
386       <require condition="CA9_DP"/>
387       <require condition="GCC"/>
388     </condition>
389
390     <!-- IAR compiler -->
391     <condition id="CM0_IAR">
392       <description>Cortex-M0 or Cortex-M0+ or SC000 processor based device for the IAR Compiler</description>
393       <require condition="CM0"/>
394       <require condition="IAR"/>
395     </condition>
396
397     <condition id="CM3_IAR">
398       <description>Cortex-M3 or SC300 processor based device for the IAR Compiler</description>
399       <require condition="CM3"/>
400       <require condition="IAR"/>
401     </condition>
402
403     <condition id="CM4_IAR">
404       <description>Cortex-M4 processor based device for the IAR Compiler</description>
405       <require condition="CM4"/>
406       <require condition="IAR"/>
407     </condition>
408     <condition id="CM4_FP_IAR">
409       <description>Cortex-M4 processor based device using Floating Point Unit for the IAR Compiler</description>
410       <require condition="CM4_FP"/>
411       <require condition="IAR"/>
412     </condition>
413
414     <condition id="CM7_IAR">
415       <description>Cortex-M7 processor based device for the IAR Compiler</description>
416       <require condition="CM7"/>
417       <require condition="IAR"/>
418     </condition>
419     <condition id="CM7_SP_IAR">
420       <description>Cortex-M7 processor based device using Floating Point Unit (SP) for the IAR Compiler</description>
421       <require condition="CM7_SP"/>
422       <require condition="IAR"/>
423     </condition>
424     <condition id="CM7_DP_IAR">
425       <description>Cortex-M7 processor based device using Floating Point Unit (DP) for the IAR Compiler</description>
426       <require condition="CM7_DP"/>
427       <require condition="IAR"/>
428     </condition>
429
430     <condition id="CM23_IAR">
431       <description>Cortex-M23 processor based device for the IAR Compiler</description>
432       <require condition="CM23"/>
433       <require condition="IAR"/>
434     </condition>
435     <condition id="CM23_NoTZ_IAR">
436       <description>Cortex-M23 processor based device without TrustZone for the IAR Compiler</description>
437       <require condition="CM23_NoTZ"/>
438       <require condition="IAR"/>
439     </condition>
440     <condition id="CM23_TZ_IAR">
441       <description>Cortex-M23 processor based device with TrustZone for the IAR Compiler</description>
442       <require condition="CM23_TZ"/>
443       <require condition="IAR"/>
444     </condition>
445
446     <condition id="CM33_IAR">
447       <description>Cortex-M33 processor based device for the IAR Compiler</description>
448       <require condition="CM33"/>
449       <require condition="IAR"/>
450     </condition>
451     <condition id="CM33_NoTZ_IAR">
452       <description>Cortex-M33 processor based device without TrustZone for the IAR Compiler</description>
453       <require condition="CM33_NoTZ"/>
454       <require condition="IAR"/>
455     </condition>
456     <condition id="CM33_TZ_IAR">
457       <description>Cortex-M33 processor based device with TrustZone for the IAR Compiler</description>
458       <require condition="CM33_TZ"/>
459       <require condition="IAR"/>
460     </condition>
461
462     <condition id="CA9_DP_IAR">
463       <description>Cortex-A9 processor based device using Floating Point Unit (DP) for the IAR Compiler</description>
464       <require condition="CA9_DP"/>
465       <require condition="IAR"/>
466     </condition>
467
468     <!-- FreeRTOS ports for the Arm Cortex core -->
469     <condition id="FreeRTOS Port Cortex-M0">
470       <description>Requirements for FreeRTOS port for Cortex-M0 and Cortex-M0+</description>
471       <accept condition="CM0_ARMCC"/>
472       <accept condition="CM0_ARMCC6"/>
473       <accept condition="CM0_GCC"/>
474       <accept condition="CM0_IAR"/>
475     </condition>
476     <condition id="FreeRTOS Port Cortex-M3">
477       <description>Requirements for FreeRTOS port for Cortex-M3</description>
478       <accept condition="CM3_ARMCC"/>
479       <accept condition="CM3_ARMCC6"/>
480       <accept condition="CM3_GCC"/>
481       <accept condition="CM3_IAR"/>
482     </condition>
483     <condition id="FreeRTOS Port Cortex-M3 MPU">
484       <description>Requirements for FreeRTOS port for Cortex-M3 using MPU</description>
485       <accept condition="CM3_ARMCC6"/>
486       <accept condition="CM3_GCC"/>
487     </condition>
488     <condition id="FreeRTOS Port Cortex-M4">
489       <description>Requirements for FreeRTOS port for Cortex-M4</description>
490       <accept condition="CM4_ARMCC"/>
491       <accept condition="CM4_ARMCC6"/>
492       <accept condition="CM4_GCC"/>
493       <accept condition="CM4_IAR"/>
494     </condition>
495     <condition id="FreeRTOS Port Cortex-M4 MPU">
496       <description>Requirements for FreeRTOS port for Cortex-M4 using MPU</description>
497       <accept condition="CM4_ARMCC6"/>
498       <accept condition="CM4_GCC"/>
499     </condition>
500     <condition id="FreeRTOS Port Cortex-M4 FPU">
501       <description>Requirements for FreeRTOS port for Cortex-M4 using FPU</description>
502       <accept condition="CM4_FP_ARMCC"/>
503       <accept condition="CM4_FP_ARMCC6"/>
504       <accept condition="CM4_FP_GCC"/>
505       <accept condition="CM4_FP_IAR"/>
506     </condition>
507     <condition id="FreeRTOS Port Cortex-M4 FPU MPU">
508       <description>Requirements for FreeRTOS port for Cortex-M4 using FPU and MPU</description>
509       <accept condition="CM4_FP_ARMCC"/>
510       <accept condition="CM4_FP_ARMCC6"/>
511       <accept condition="CM4_FP_GCC"/>
512       <accept condition="CM4_FP_IAR"/>
513     </condition>
514     <condition id="FreeRTOS Port Cortex-M7">
515       <description>Requirements for FreeRTOS port for Cortex-M7</description>
516       <accept condition="CM7_ARMCC"/>
517       <accept condition="CM7_ARMCC6"/>
518       <accept condition="CM7_GCC"/>
519       <accept condition="CM7_IAR"/>
520     </condition>
521     <condition id="FreeRTOS Port Cortex-M7 FPU SP">
522       <description>Requirements for FreeRTOS port for Cortex-M7 using FPU (SP)</description>
523       <accept condition="CM7_SP_ARMCC"/>
524       <accept condition="CM7_SP_ARMCC6"/>
525       <accept condition="CM7_SP_GCC"/>
526       <accept condition="CM7_SP_IAR"/>
527     </condition>
528     <condition id="FreeRTOS Port Cortex-M7 FPU DP">
529       <description>Requirements for FreeRTOS port for Cortex-M7 using FPU (DP)</description>
530       <accept condition="CM7_DP_ARMCC"/>
531       <accept condition="CM7_DP_ARMCC6"/>
532       <accept condition="CM7_DP_GCC"/>
533       <accept condition="CM7_DP_IAR"/>
534     </condition>
535     <condition id="FreeRTOS Port Cortex-M23">
536       <description>Requirements for FreeRTOS port for Cortex-M23</description>
537       <accept condition="CM23_ARMCC6"/>
538       <accept condition="CM23_GCC"/>
539       <accept condition="CM23_IAR"/>
540     </condition>
541     <condition id="FreeRTOS Port Cortex-M23 NoTZ">
542       <description>Requirements for FreeRTOS port for Cortex-M23 without TrustZone</description>
543       <accept condition="CM23_NoTZ_ARMCC6"/>
544       <accept condition="CM23_NoTZ_GCC"/>
545       <accept condition="CM23_NoTZ_IAR"/>
546     </condition>
547     <condition id="FreeRTOS Port Cortex-M23 TZ">
548       <description>Requirements for FreeRTOS port for Cortex-M23 with TrustZone</description>
549       <accept condition="CM23_TZ_ARMCC6"/>
550       <accept condition="CM23_TZ_GCC"/>
551       <accept condition="CM23_TZ_IAR"/>
552     </condition>
553     <condition id="FreeRTOS Port Cortex-M33">
554       <description>Requirements for FreeRTOS port for Cortex-M33</description>
555       <accept condition="CM33_ARMCC6"/>
556       <accept condition="CM33_GCC"/>
557       <accept condition="CM33_IAR"/>
558     </condition>
559     <condition id="FreeRTOS Port Cortex-M33 NoTZ">
560       <description>Requirements for FreeRTOS port for Cortex-M33 without TrustZone</description>
561       <accept condition="CM33_NoTZ_ARMCC6"/>
562       <accept condition="CM33_NoTZ_GCC"/>
563       <accept condition="CM33_NoTZ_IAR"/>
564     </condition>
565     <condition id="FreeRTOS Port Cortex-M33 TZ">
566       <description>Requirements for FreeRTOS port for Cortex-M33 with TrustZone</description>
567       <accept condition="CM33_TZ_ARMCC6"/>
568       <accept condition="CM33_TZ_GCC"/>
569       <accept condition="CM33_TZ_IAR"/>
570     </condition>
571     <condition id="FreeRTOS Port Cortex-A9 FPU DP">
572       <description>Requirements for FreeRTOS port for Cortex-A9 using FPU (DP)</description>
573       <accept condition="CA9_DP_ARMCC"/>
574       <accept condition="CA9_DP_ARMCC6"/>
575       <accept condition="CA9_DP_GCC"/>
576       <accept condition="CA9_DP_IAR"/>
577     </condition>
578
579     <condition id="FreeRTOS Port Cortex-M v6_v7">
580       <description>Requirements for FreeRTOS port for Cortex-M v6 and v7</description>
581       <accept condition="FreeRTOS Port Cortex-M0"/>
582       <accept condition="FreeRTOS Port Cortex-M3"/>
583       <accept condition="FreeRTOS Port Cortex-M4"/>
584       <accept condition="FreeRTOS Port Cortex-M4 FPU"/>
585       <accept condition="FreeRTOS Port Cortex-M7"/>
586       <accept condition="FreeRTOS Port Cortex-M7 FPU SP"/>
587       <accept condition="FreeRTOS Port Cortex-M7 FPU DP"/>
588     </condition>
589     <condition id="FreeRTOS Port Cortex-M v6_v7 MPU">
590       <description>Requirements for FreeRTOS port for Cortex-M v6 and v7 using MPU</description>
591       <accept condition="FreeRTOS Port Cortex-M3 MPU"/>
592       <accept condition="FreeRTOS Port Cortex-M4 MPU"/>
593       <accept condition="FreeRTOS Port Cortex-M4 FPU MPU"/>
594     </condition>
595     <condition id="FreeRTOS Port Cortex-M v8">
596       <description>Requirements for FreeRTOS port for Cortex-M v8</description>
597       <accept condition="FreeRTOS Port Cortex-M23"/>
598       <accept condition="FreeRTOS Port Cortex-M23 NoTZ"/>
599       <accept condition="FreeRTOS Port Cortex-M23 TZ"/>
600       <accept condition="FreeRTOS Port Cortex-M33"/>
601       <accept condition="FreeRTOS Port Cortex-M33 NoTZ"/>
602       <accept condition="FreeRTOS Port Cortex-M33 TZ"/>
603     </condition>
604     <condition id="FreeRTOS Port Cortex-M v8 TZ">
605       <description>Requirements for FreeRTOS port for Cortex-M v8 with TrustZone</description>
606       <accept condition="FreeRTOS Port Cortex-M23 TZ"/>
607       <accept condition="FreeRTOS Port Cortex-M33 TZ"/>
608     </condition>
609     <condition id="FreeRTOS Port Cortex-A">
610       <description>Requirements for FreeRTOS port for Cortex-A</description>
611       <accept condition="FreeRTOS Port Cortex-A9 FPU DP"/>
612     </condition>
613     <condition id="FreeRTOS Port Cortex-M">
614       <description>Requirements for FreeRTOS port for Cortex-M</description>
615       <accept condition="FreeRTOS Port Cortex-M v6_v7"/>
616       <accept condition="FreeRTOS Port Cortex-M v8"/>
617     </condition>
618     <condition id="FreeRTOS Port">
619       <description>FreeRTOS ports for Arm Cortex combined</description>
620       <accept condition="FreeRTOS Port Cortex-A"/>
621       <accept condition="FreeRTOS Port Cortex-M"/>
622     </condition>
623
624     <!-- Conditions for RTOS::FreeRTOS components -->
625     <condition id="FreeRTOS Message or Stream Buffer API">
626       <description>FreeRTOS Message or Stream Buffer component</description>
627       <accept Cclass="RTOS" Cbundle="FreeRTOS" Cgroup="Message Buffer"/>
628       <accept Cclass="RTOS" Cbundle="FreeRTOS" Cgroup="Stream Buffer"/>
629     </condition>
630
631     <condition id="FreeRTOS Core CA">
632       <description>Requirements for FreeRTOS Core for Cortex-A</description>
633       <require condition="FreeRTOS Port Cortex-A"/>
634
635       <require Cclass="Device" Cgroup="Startup"/>
636       <require Cclass="RTOS" Cbundle="FreeRTOS" Cgroup="Config"/>
637       <require Cclass="RTOS" Cbundle="FreeRTOS" Cgroup="Heap"/>
638     </condition>
639
640     <condition id="FreeRTOS Core CM">
641       <description>Requirements for FreeRTOS Core for Cortex-M</description>
642       <require condition="FreeRTOS Port Cortex-M"/>
643
644       <require Cclass="Device" Cgroup="Startup"/>
645       <require Cclass="RTOS" Cbundle="FreeRTOS" Cgroup="Config"/>
646       <require Cclass="RTOS" Cbundle="FreeRTOS" Cgroup="Heap"/>
647     </condition>
648
649     <condition id="FreeRTOS Core CM v6_v7 MPU">
650     <description>Requirements for FreeRTOS Core with MPU support for Cortex-M v6 and v7</description>
651       <require condition="FreeRTOS Port Cortex-M v6_v7 MPU"/>
652
653       <require Cclass="Device" Cgroup="Startup"/>
654       <require Cclass="RTOS" Cbundle="FreeRTOS" Cgroup="Config"/>
655       <require Cclass="RTOS" Cbundle="FreeRTOS" Cgroup="Heap"/>
656       <require Cclass="RTOS" Cbundle="FreeRTOS" Cgroup="Event Groups"/>
657       <require Cclass="RTOS" Cbundle="FreeRTOS" Cgroup="Timers"/>
658       <require condition="FreeRTOS Message or Stream Buffer API"/>
659     </condition>
660
661     <condition id="FreeRTOS Core TZ">
662       <description>Requirements for FreeRTOS Core with TrustZone support</description>
663       <require condition="FreeRTOS Port Cortex-M v8 TZ"/>
664
665       <require Cclass="Device" Cgroup="Startup"/>
666       <require Cclass="RTOS" Cbundle="FreeRTOS" Cgroup="Config"/>
667       <require Cclass="RTOS" Cbundle="FreeRTOS" Cgroup="Heap"/>
668     </condition>
669
670     <condition id="FreeRTOS Core TZ MPU">
671       <description>Requirements for FreeRTOS Core with TrustZone and MPU support</description>
672       <require condition="FreeRTOS Port Cortex-M v8 TZ"/>
673
674       <require Cclass="Device" Cgroup="Startup"/>
675       <require Cclass="RTOS" Cbundle="FreeRTOS" Cgroup="Config"/>
676       <require Cclass="RTOS" Cbundle="FreeRTOS" Cgroup="Heap"/>
677       <require Cclass="RTOS" Cbundle="FreeRTOS" Cgroup="Event Groups"/>
678       <require Cclass="RTOS" Cbundle="FreeRTOS" Cgroup="Timers"/>
679       <require condition="FreeRTOS Message or Stream Buffer API"/>
680     </condition>
681
682     <condition id="FreeRTOS Config Native">
683       <description>Components required for FreeRTOS Config Native variant</description>
684       <require condition="FreeRTOS Port"/>
685
686       <require Cclass="RTOS" Cbundle="FreeRTOS" Cgroup="Core"/>
687     </condition>
688
689     <condition id="FreeRTOS Config CMSIS RTOS2">
690       <description>Components required for FreeRTOS Config CMSIS RTOS2 variant</description>
691       <require condition="FreeRTOS Port"/>
692
693       <require Cclass="CMSIS" Cgroup="RTOS2" Csub="FreeRTOS"/>
694     </condition>
695
696     <condition id="FreeRTOS Coroutines">
697       <description>Components required for FreeRTOS Coroutines</description>
698       <require condition="FreeRTOS Port"/>
699
700       <require Cclass="RTOS" Cbundle="FreeRTOS" Cgroup="Core"/>
701     </condition>
702
703     <condition id="FreeRTOS Event Groups">
704       <description>Components required for FreeRTOS Event Groups</description>
705       <require condition="FreeRTOS Port"/>
706
707       <require Cclass="RTOS" Cbundle="FreeRTOS" Cgroup="Core"/>
708     </condition>
709
710     <condition id="FreeRTOS Heap">
711       <description>Components required for FreeRTOS Heap</description>
712       <require condition="FreeRTOS Port"/>
713
714       <require Cclass="RTOS" Cbundle="FreeRTOS" Cgroup="Core"/>
715     </condition>
716
717     <condition id="FreeRTOS Message Buffer">
718       <description>Components required for FreeRTOS Message Buffer</description>
719       <require condition="FreeRTOS Port"/>
720
721       <require Cclass="RTOS" Cbundle="FreeRTOS" Cgroup="Core"/>
722     </condition>
723
724     <condition id="FreeRTOS Stream Buffer">
725       <description>Components required for FreeRTOS Stream Buffer</description>
726       <require condition="FreeRTOS Port"/>
727
728       <require Cclass="RTOS" Cbundle="FreeRTOS" Cgroup="Core"/>
729     </condition>
730
731     <condition id="FreeRTOS Timers">
732       <description>Components required for FreeRTOS Timers</description>
733       <require condition="FreeRTOS Port"/>
734
735       <require Cclass="RTOS" Cbundle="FreeRTOS" Cgroup="Core"/>
736     </condition>
737
738     <condition id="FreeRTOS TrustZone">
739       <description>Components required for FreeRTOS TrustZone</description>
740       <require condition="FreeRTOS Port Cortex-M v8 TZ"/>
741
742       <!-- TrustZone Secure Context is a standalone component -->
743       <deny Cclass="CMSIS" Cgroup="RTOS"  Csub="FreeRTOS"/>
744       <deny Cclass="CMSIS" Cgroup="RTOS2" Csub="FreeRTOS"/>
745
746       <deny Cclass="RTOS" Cbundle="FreeRTOS" Cgroup="Config"/>
747       <deny Cclass="RTOS" Cbundle="FreeRTOS" Cgroup="Core"/>
748       <deny Cclass="RTOS" Cbundle="FreeRTOS" Cgroup="Coroutines"/>
749       <deny Cclass="RTOS" Cbundle="FreeRTOS" Cgroup="Heap"/>
750       <deny Cclass="RTOS" Cbundle="FreeRTOS" Cgroup="Event Groups"/>
751       <deny Cclass="RTOS" Cbundle="FreeRTOS" Cgroup="Message Buffer"/>
752       <deny Cclass="RTOS" Cbundle="FreeRTOS" Cgroup="Stream Buffer"/>
753       <deny Cclass="RTOS" Cbundle="FreeRTOS" Cgroup="Timers"/>
754     </condition>
755     
756     <condition id="CMSIS RTOS FreeRTOS">
757       <description>Components required for CMSIS RTOS API on top of FreeRTOS</description>
758       <require condition="FreeRTOS Port"/>
759
760       <require Cclass="CMSIS" Cgroup="RTOS2" Csub="FreeRTOS"/>
761     </condition>
762
763     <condition id="CMSIS RTOS2 FreeRTOS CortexM">
764       <description>Components required for CMSIS RTOS2 API on top of FreeRTOS for Cortex-M</description>
765       <require condition="FreeRTOS Port Cortex-M"/>
766
767       <require Cclass="RTOS" Cbundle="FreeRTOS" Cgroup="Config" Cvariant="CMSIS RTOS2"/>
768       <require Cclass="RTOS" Cbundle="FreeRTOS" Cgroup="Core"/>
769       <require Cclass="RTOS" Cbundle="FreeRTOS" Cgroup="Event Groups"/>
770       <require Cclass="RTOS" Cbundle="FreeRTOS" Cgroup="Timers"/>
771     </condition>
772
773     <condition id="CMSIS RTOS2 FreeRTOS CortexA">
774       <description>Components required for CMSIS RTOS2 API on top of FreeRTOS for Cortex-A</description>
775       <require condition="FreeRTOS Port Cortex-A"/>
776
777       <require Cclass="Device" Cgroup="IRQ Controller"/>
778       <require Cclass="Device" Cgroup="OS Tick"/>
779       <require Cclass="RTOS" Cbundle="FreeRTOS" Cgroup="Config" Cvariant="CMSIS RTOS2"/>
780       <require Cclass="RTOS" Cbundle="FreeRTOS" Cgroup="Core"/>
781       <require Cclass="RTOS" Cbundle="FreeRTOS" Cgroup="Event Groups"/>
782       <require Cclass="RTOS" Cbundle="FreeRTOS" Cgroup="Timers"/>
783     </condition>
784
785   </conditions>
786
787   <components>
788     <!-- CMSIS-RTOS FreeRTOS component -->
789     <component Cclass="CMSIS" Cgroup="RTOS" Csub="FreeRTOS" Cversion="10.3.1" Capiversion="1.0.0" condition="CMSIS RTOS FreeRTOS">
790       <description>CMSIS-RTOS implementation for Cortex-M based on FreeRTOS</description>
791       <RTE_Components_h>
792         #define RTE_CMSIS_RTOS                  /* CMSIS-RTOS */
793         #define RTE_CMSIS_RTOS_FreeRTOS         /* CMSIS-RTOS FreeRTOS */
794       </RTE_Components_h>
795       <files>
796         <file category="header" name="CMSIS/RTOS2/FreeRTOS/Include1/cmsis_os.h"/>
797         <file category="source" name="CMSIS/RTOS2/FreeRTOS/Source/cmsis_os1.c"/>
798       </files>
799     </component>
800
801     <!-- CMSIS-RTOS2 FreeRTOS component -->
802     <component Cclass="CMSIS" Cgroup="RTOS2" Csub="FreeRTOS" Cvariant="Cortex-M" Cversion="10.3.1" Capiversion="2.1.3" condition="CMSIS RTOS2 FreeRTOS CortexM">
803       <description>CMSIS-RTOS2 implementation for Cortex-M based on FreeRTOS</description>
804       <RTE_Components_h>
805         #define RTE_CMSIS_RTOS2                 /* CMSIS-RTOS2 */
806         #define RTE_CMSIS_RTOS2_FreeRTOS        /* CMSIS-RTOS2 FreeRTOS */
807       </RTE_Components_h>
808       <files>
809         <file category="doc"    name="CMSIS/Documentation/General/html/index.html"/>
810         <file category="header" name="CMSIS/RTOS2/FreeRTOS/Include/freertos_mpool.h"/>
811         <file category="source" name="CMSIS/RTOS2/FreeRTOS/Source/cmsis_os2.c"/>
812         <file category="source" name="CMSIS/RTOS2/FreeRTOS/Source/ARM/clib_arm.c" condition="ARMCC"/>
813         <file category="source" name="CMSIS/RTOS2/FreeRTOS/Source/ARM/clib_arm.c" condition="ARMCC6"/>
814
815         <file category="source" name="CMSIS/RTOS2/FreeRTOS/Source/os_systick.c"/>
816       </files>
817     </component>
818
819     <component Cclass="CMSIS" Cgroup="RTOS2" Csub="FreeRTOS" Cvariant="Cortex-A" Cversion="10.3.1" Capiversion="2.1.3" condition="CMSIS RTOS2 FreeRTOS CortexA">
820       <description>CMSIS-RTOS2 implementation for Cortex-A based on FreeRTOS</description>
821       <RTE_Components_h>
822         #define RTE_CMSIS_RTOS2                 /* CMSIS-RTOS2 */
823         #define RTE_CMSIS_RTOS2_FreeRTOS        /* CMSIS-RTOS2 FreeRTOS */
824       </RTE_Components_h>
825       <files>
826         <file category="doc"    name="CMSIS/Documentation/General/html/index.html"/>
827         <file category="header" name="CMSIS/RTOS2/FreeRTOS/Include/freertos_mpool.h"/>
828         <file category="source" name="CMSIS/RTOS2/FreeRTOS/Source/cmsis_os2.c"/>
829         <file category="source" name="CMSIS/RTOS2/FreeRTOS/Source/ARM/clib_arm.c" condition="ARMCC"/>
830         <file category="source" name="CMSIS/RTOS2/FreeRTOS/Source/ARM/clib_arm.c" condition="ARMCC6"/>
831
832         <file category="source" attr="config" name="CMSIS/RTOS2/FreeRTOS/Source/handlers.c" version="9.1.0"/>
833       </files>
834     </component>
835
836     <bundle Cbundle="FreeRTOS" Cclass="RTOS" Cversion="10.3.1">
837       <description>FreeRTOS Real Time Kernel</description>
838       <doc>https://www.freertos.org/Documentation/FreeRTOS_Reference_Manual_V10.0.0.pdf</doc>
839
840       <component Cgroup="Core" Cvariant="Cortex-M" isDefaultVariant="true" condition="FreeRTOS Core CM">
841         <description>Core API (Kernel, Tasks, Semaphores, Mutexes, Queues) for Cortex-M</description>
842         <RTE_Components_h>
843           #define RTE_RTOS_FreeRTOS_CORE          /* RTOS FreeRTOS Core */
844         </RTE_Components_h>
845         <files>
846           <file category="include" name="Source/include/"/>
847
848           <file category="header"  name="Source/include/FreeRTOS.h"/>
849           <file category="header"  name="Source/include/queue.h"/>
850           <file category="header"  name="Source/include/semphr.h"/>
851           <file category="header"  name="Source/include/task.h"/>
852
853           <file category="source"  name="Source/list.c"/>
854           <file category="source"  name="Source/queue.c"/>
855           <file category="source"  name="Source/tasks.c"/>
856
857           <file category="include"   condition="CM0_ARMCC"    name="Source/portable/RVDS/ARM_CM0/"/>
858           <file category="source"    condition="CM0_ARMCC"    name="Source/portable/RVDS/ARM_CM0/port.c"/>
859           <file category="include"   condition="CM3_ARMCC"    name="Source/portable/RVDS/ARM_CM3/"/>
860           <file category="source"    condition="CM3_ARMCC"    name="Source/portable/RVDS/ARM_CM3/port.c"/>
861           <file category="include"   condition="CM4_ARMCC"    name="Source/portable/RVDS/ARM_CM3/"/>
862           <file category="source"    condition="CM4_ARMCC"    name="Source/portable/RVDS/ARM_CM3/port.c"/>
863           <file category="include"   condition="CM4_FP_ARMCC" name="Source/portable/RVDS/ARM_CM4F/"/>
864           <file category="source"    condition="CM4_FP_ARMCC" name="Source/portable/RVDS/ARM_CM4F/port.c"/>
865           <file category="include"   condition="CM7_ARMCC"    name="Source/portable/RVDS/ARM_CM3/"/>
866           <file category="source"    condition="CM7_ARMCC"    name="Source/portable/RVDS/ARM_CM3/port.c"/>
867           <file category="include"   condition="CM7_DP_ARMCC" name="Source/portable/RVDS/ARM_CM7/r0p1/"/>
868           <file category="source"    condition="CM7_DP_ARMCC" name="Source/portable/RVDS/ARM_CM7/r0p1/port.c"/>
869           <file category="include"   condition="CM7_SP_ARMCC" name="Source/portable/RVDS/ARM_CM7/r0p1/"/>
870           <file category="source"    condition="CM7_SP_ARMCC" name="Source/portable/RVDS/ARM_CM7/r0p1/port.c"/>
871
872           <file category="include"   condition="CM0_ARMCC6"    name="Source/portable/GCC/ARM_CM0/"/>
873           <file category="source"    condition="CM0_ARMCC6"    name="Source/portable/GCC/ARM_CM0/port.c"/>
874           <file category="include"   condition="CM3_ARMCC6"    name="Source/portable/GCC/ARM_CM3/"/>
875           <file category="source"    condition="CM3_ARMCC6"    name="Source/portable/GCC/ARM_CM3/port.c"/>
876           <file category="include"   condition="CM4_ARMCC6"    name="Source/portable/GCC/ARM_CM3/"/>
877           <file category="source"    condition="CM4_ARMCC6"    name="Source/portable/GCC/ARM_CM3/port.c"/>
878           <file category="include"   condition="CM4_FP_ARMCC6" name="Source/portable/GCC/ARM_CM4F/"/>
879           <file category="source"    condition="CM4_FP_ARMCC6" name="Source/portable/GCC/ARM_CM4F/port.c"/>
880           <file category="include"   condition="CM7_ARMCC6"    name="Source/portable/GCC/ARM_CM3/"/>
881           <file category="source"    condition="CM7_ARMCC6"    name="Source/portable/GCC/ARM_CM3/port.c"/>
882           <file category="include"   condition="CM7_DP_ARMCC6" name="Source/portable/GCC/ARM_CM7/r0p1/"/>
883           <file category="source"    condition="CM7_DP_ARMCC6" name="Source/portable/GCC/ARM_CM7/r0p1/port.c"/>
884           <file category="include"   condition="CM7_SP_ARMCC6" name="Source/portable/GCC/ARM_CM7/r0p1/"/>
885           <file category="source"    condition="CM7_SP_ARMCC6" name="Source/portable/GCC/ARM_CM7/r0p1/port.c"/>
886           <file category="include"   condition="CM23_ARMCC6"   name="Source/portable/GCC/ARM_CM23_NTZ/non_secure/"/>
887           <file category="source"    condition="CM23_ARMCC6"   name="Source/portable/GCC/ARM_CM23_NTZ/non_secure/port.c"/>
888           <file category="source"    condition="CM23_ARMCC6"   name="Source/portable/GCC/ARM_CM23_NTZ/non_secure/portasm.c"/>
889           <file category="include"   condition="CM33_ARMCC6"   name="Source/portable/GCC/ARM_CM33_NTZ/non_secure/"/>
890           <file category="source"    condition="CM33_ARMCC6"   name="Source/portable/GCC/ARM_CM33_NTZ/non_secure/port.c"/>
891           <file category="source"    condition="CM33_ARMCC6"   name="Source/portable/GCC/ARM_CM33_NTZ/non_secure/portasm.c"/>
892
893           <file category="include"   condition="CM0_GCC"    name="Source/portable/GCC/ARM_CM0/"/>
894           <file category="source"    condition="CM0_GCC"    name="Source/portable/GCC/ARM_CM0/port.c"/>
895           <file category="include"   condition="CM3_GCC"    name="Source/portable/GCC/ARM_CM3/"/>
896           <file category="source"    condition="CM3_GCC"    name="Source/portable/GCC/ARM_CM3/port.c"/>
897           <file category="include"   condition="CM4_GCC"    name="Source/portable/GCC/ARM_CM3/"/>
898           <file category="source"    condition="CM4_GCC"    name="Source/portable/GCC/ARM_CM3/port.c"/>
899           <file category="include"   condition="CM4_FP_GCC" name="Source/portable/GCC/ARM_CM4F/"/>
900           <file category="source"    condition="CM4_FP_GCC" name="Source/portable/GCC/ARM_CM4F/port.c"/>
901           <file category="include"   condition="CM7_GCC"    name="Source/portable/GCC/ARM_CM3/"/>
902           <file category="source"    condition="CM7_GCC"    name="Source/portable/GCC/ARM_CM3/port.c"/>
903           <file category="include"   condition="CM7_DP_GCC" name="Source/portable/GCC/ARM_CM7/r0p1/"/>
904           <file category="source"    condition="CM7_DP_GCC" name="Source/portable/GCC/ARM_CM7/r0p1/port.c"/>
905           <file category="include"   condition="CM7_SP_GCC" name="Source/portable/GCC/ARM_CM7/r0p1/"/>
906           <file category="source"    condition="CM7_SP_GCC" name="Source/portable/GCC/ARM_CM7/r0p1/port.c"/>
907           <file category="include"   condition="CM23_GCC"   name="Source/portable/GCC/ARM_CM23_NTZ/non_secure/"/>
908           <file category="source"    condition="CM23_GCC"   name="Source/portable/GCC/ARM_CM23_NTZ/non_secure/port.c"/>
909           <file category="source"    condition="CM23_GCC"   name="Source/portable/GCC/ARM_CM23_NTZ/non_secure/portasm.c"/>
910           <file category="include"   condition="CM33_GCC"   name="Source/portable/GCC/ARM_CM33_NTZ/non_secure/"/>
911           <file category="source"    condition="CM33_GCC"   name="Source/portable/GCC/ARM_CM33_NTZ/non_secure/port.c"/>
912           <file category="source"    condition="CM33_GCC"   name="Source/portable/GCC/ARM_CM33_NTZ/non_secure/portasm.c"/>
913
914           <file category="include"   condition="CM0_IAR"    name="Source/portable/IAR/ARM_CM0/"/>
915           <file category="source"    condition="CM0_IAR"    name="Source/portable/IAR/ARM_CM0/port.c"/>
916           <file category="sourceAsm" condition="CM0_IAR"    name="Source/portable/IAR/ARM_CM0/portasm.s"/>
917           <file category="include"   condition="CM3_IAR"    name="Source/portable/IAR/ARM_CM3/"/>
918           <file category="source"    condition="CM3_IAR"    name="Source/portable/IAR/ARM_CM3/port.c"/>
919           <file category="sourceAsm" condition="CM3_IAR"    name="Source/portable/IAR/ARM_CM3/portasm.s"/>
920           <file category="include"   condition="CM4_IAR"    name="Source/portable/IAR/ARM_CM3/"/>
921           <file category="source"    condition="CM4_IAR"    name="Source/portable/IAR/ARM_CM3/port.c"/>
922           <file category="sourceAsm" condition="CM4_IAR"    name="Source/portable/IAR/ARM_CM3/portasm.s"/>
923           <file category="include"   condition="CM4_FP_IAR" name="Source/portable/IAR/ARM_CM4F/"/>
924           <file category="source"    condition="CM4_FP_IAR" name="Source/portable/IAR/ARM_CM4F/port.c"/>
925           <file category="sourceAsm" condition="CM4_FP_IAR" name="Source/portable/IAR/ARM_CM4F/portasm.s"/>
926           <file category="include"   condition="CM7_IAR"    name="Source/portable/IAR/ARM_CM3/"/>
927           <file category="source"    condition="CM7_IAR"    name="Source/portable/IAR/ARM_CM3/port.c"/>
928           <file category="sourceAsm" condition="CM7_IAR"    name="Source/portable/IAR/ARM_CM3/portasm.s"/>
929           <file category="include"   condition="CM7_DP_IAR" name="Source/portable/IAR/ARM_CM7/r0p1/"/>
930           <file category="source"    condition="CM7_DP_IAR" name="Source/portable/IAR/ARM_CM7/r0p1/port.c"/>
931           <file category="sourceAsm" condition="CM7_DP_IAR" name="Source/portable/IAR/ARM_CM7/r0p1/portasm.s"/>
932           <file category="include"   condition="CM7_SP_IAR" name="Source/portable/IAR/ARM_CM7/r0p1/"/>
933           <file category="source"    condition="CM7_SP_IAR" name="Source/portable/IAR/ARM_CM7/r0p1/port.c"/>
934           <file category="sourceAsm" condition="CM7_SP_IAR" name="Source/portable/IAR/ARM_CM7/r0p1/portasm.s"/>
935           <file category="include"   condition="CM23_IAR"   name="Source/portable/IAR/ARM_CM23_NTZ/non_secure/"/>
936           <file category="source"    condition="CM23_IAR"   name="Source/portable/IAR/ARM_CM23_NTZ/non_secure/port.c"/>
937           <file category="source"    condition="CM23_IAR"   name="Source/portable/IAR/ARM_CM23_NTZ/non_secure/portasm.s"/>
938           <file category="include"   condition="CM33_IAR"   name="Source/portable/IAR/ARM_CM33_NTZ/non_secure/"/>
939           <file category="source"    condition="CM33_IAR"   name="Source/portable/IAR/ARM_CM33_NTZ/non_secure/port.c"/>
940           <file category="source"    condition="CM33_IAR"   name="Source/portable/IAR/ARM_CM33_NTZ/non_secure/portasm.s"/>
941
942           <file category="include" name="CMSIS/RTOS2/FreeRTOS/Include/"/>
943           <file category="source"  name="CMSIS/RTOS2/FreeRTOS/Source/freertos_evr.c"/>
944           <file category="other"   name="CMSIS/RTOS2/FreeRTOS/FreeRTOS.scvd"/>
945         </files>
946       </component>
947
948       <component Cgroup="Core" Cvariant="Cortex-M MPU" condition="FreeRTOS Core CM v6_v7 MPU">
949         <description>Core API (Kernel, Tasks, Semaphores, Mutexes, Queues) for Cortex-M using MPU</description>
950         <RTE_Components_h>
951           #define RTE_RTOS_FreeRTOS_CORE          /* RTOS FreeRTOS Core */
952           #define RTE_RTOS_FreeRTOS_CORE_MPU      /* RTOS FreeRTOS Core with MPU support */
953         </RTE_Components_h>
954         <files>
955           <file category="include" name="Source/include/"/>
956
957           <file category="header"  name="Source/include/FreeRTOS.h"/>
958           <file category="header"  name="Source/include/queue.h"/>
959           <file category="header"  name="Source/include/semphr.h"/>
960           <file category="header"  name="Source/include/task.h"/>
961
962           <file category="source"  name="Source/list.c"/>
963           <file category="source"  name="Source/queue.c"/>
964           <file category="source"  name="Source/tasks.c"/>
965           <file category="source"  name="Source/portable/Common/mpu_wrappers.c"/>
966
967           <file category="include"   condition="CM4_FP_ARMCC" name="Source/portable/RVDS/ARM_CM4_MPU/"/>
968           <file category="source"    condition="CM4_FP_ARMCC" name="Source/portable/RVDS/ARM_CM4_MPU/port.c"/>
969
970           <file category="include"   condition="CM3_ARMCC6"    name="Source/portable/GCC/ARM_CM3_MPU/"/>
971           <file category="source"    condition="CM3_ARMCC6"    name="Source/portable/GCC/ARM_CM3_MPU/port.c"/>
972           <file category="include"   condition="CM4_ARMCC6"    name="Source/portable/GCC/ARM_CM3_MPU/"/>
973           <file category="source"    condition="CM4_ARMCC6"    name="Source/portable/GCC/ARM_CM3_MPU/port.c"/>
974           <file category="include"   condition="CM4_FP_ARMCC6" name="Source/portable/GCC/ARM_CM4_MPU/"/>
975           <file category="source"    condition="CM4_FP_ARMCC6" name="Source/portable/GCC/ARM_CM4_MPU/port.c"/>
976
977           <file category="include"   condition="CM3_GCC"    name="Source/portable/GCC/ARM_CM3_MPU/"/>
978           <file category="source"    condition="CM3_GCC"    name="Source/portable/GCC/ARM_CM3_MPU/port.c"/>
979           <file category="include"   condition="CM4_GCC"    name="Source/portable/GCC/ARM_CM3_MPU/"/>
980           <file category="source"    condition="CM4_GCC"    name="Source/portable/GCC/ARM_CM3_MPU/port.c"/>
981           <file category="include"   condition="CM4_FP_GCC" name="Source/portable/GCC/ARM_CM4_MPU/"/>
982           <file category="source"    condition="CM4_FP_GCC" name="Source/portable/GCC/ARM_CM4_MPU/port.c"/>
983
984           <file category="include"   condition="CM4_FP_IAR" name="Source/portable/IAR/ARM_CM4F_MPU/"/>
985           <file category="source"    condition="CM4_FP_IAR" name="Source/portable/IAR/ARM_CM4F_MPU/port.c"/>
986           <file category="sourceAsm" condition="CM4_FP_IAR" name="Source/portable/IAR/ARM_CM4F_MPU/portasm.s"/>
987
988           <file category="include" name="CMSIS/RTOS2/FreeRTOS/Include/"/>
989           <file category="source"  name="CMSIS/RTOS2/FreeRTOS/Source/freertos_evr.c"/>
990           <file category="other"   name="CMSIS/RTOS2/FreeRTOS/FreeRTOS.scvd"/>
991         </files>
992       </component>
993
994       <component Cgroup="Core" Cvariant="Cortex-M Non-Secure" condition="FreeRTOS Core TZ">
995         <description>Core API (Kernel, Tasks, Semaphores, Mutexes, Queues) for Cortex-M using Non-Secure Domain (TrustZone)</description>
996         <RTE_Components_h>
997           #define RTE_RTOS_FreeRTOS_CORE          /* RTOS FreeRTOS Core */
998           #define RTE_RTOS_FreeRTOS_CORE_TZ_NS    /* RTOS FreeRTOS Core with TrustZone Non-Secure Domain */
999         </RTE_Components_h>
1000         <files>
1001           <file category="include" name="Source/include/"/>
1002
1003           <file category="header"  name="Source/include/FreeRTOS.h"/>
1004           <file category="header"  name="Source/include/queue.h"/>
1005           <file category="header"  name="Source/include/semphr.h"/>
1006           <file category="header"  name="Source/include/task.h"/>
1007
1008           <file category="source"  name="Source/list.c"/>
1009           <file category="source"  name="Source/queue.c"/>
1010           <file category="source"  name="Source/tasks.c"/>
1011
1012           <file category="include"   condition="CM23_ARMCC6" name="Source/portable/GCC/ARM_CM23/secure/"/>
1013           <file category="include"   condition="CM23_ARMCC6" name="Source/portable/GCC/ARM_CM23/non_secure/"/>
1014           <file category="source"    condition="CM23_ARMCC6" name="Source/portable/GCC/ARM_CM23/non_secure/port.c"/>
1015           <file category="source"    condition="CM23_ARMCC6" name="Source/portable/GCC/ARM_CM23/non_secure/portasm.c"/>
1016           <file category="include"   condition="CM33_ARMCC6" name="Source/portable/GCC/ARM_CM33/secure/"/>
1017           <file category="include"   condition="CM33_ARMCC6" name="Source/portable/GCC/ARM_CM33/non_secure/"/>
1018           <file category="source"    condition="CM33_ARMCC6" name="Source/portable/GCC/ARM_CM33/non_secure/port.c"/>
1019           <file category="source"    condition="CM33_ARMCC6" name="Source/portable/GCC/ARM_CM33/non_secure/portasm.c"/>
1020
1021           <file category="include"   condition="CM23_GCC"    name="Source/portable/GCC/ARM_CM23/secure/"/>
1022           <file category="include"   condition="CM23_GCC"    name="Source/portable/GCC/ARM_CM23/non_secure/"/>
1023           <file category="source"    condition="CM23_GCC"    name="Source/portable/GCC/ARM_CM23/non_secure/port.c"/>
1024           <file category="source"    condition="CM23_GCC"    name="Source/portable/GCC/ARM_CM23/non_secure/portasm.c"/>
1025           <file category="include"   condition="CM33_GCC"    name="Source/portable/GCC/ARM_CM33/secure/"/>
1026           <file category="include"   condition="CM33_GCC"    name="Source/portable/GCC/ARM_CM33/non_secure/"/>
1027           <file category="source"    condition="CM33_GCC"    name="Source/portable/GCC/ARM_CM33/non_secure/port.c"/>
1028           <file category="source"    condition="CM33_GCC"    name="Source/portable/GCC/ARM_CM33/non_secure/portasm.c"/>
1029
1030           <file category="include"   condition="CM23_IAR"    name="Source/portable/IAR/ARM_CM23/secure/"/>
1031           <file category="include"   condition="CM23_IAR"    name="Source/portable/IAR/ARM_CM23/non_secure/"/>
1032           <file category="source"    condition="CM23_IAR"    name="Source/portable/IAR/ARM_CM23/non_secure/port.c"/>
1033           <file category="sourceAsm" condition="CM23_IAR"    name="Source/portable/IAR/ARM_CM23/non_secure/portasm.s"/>
1034           <file category="include"   condition="CM33_IAR"    name="Source/portable/IAR/ARM_CM33/secure/"/>
1035           <file category="include"   condition="CM33_IAR"    name="Source/portable/IAR/ARM_CM33/non_secure/"/>
1036           <file category="source"    condition="CM33_IAR"    name="Source/portable/IAR/ARM_CM33/non_secure/port.c"/>
1037           <file category="sourceAsm" condition="CM33_IAR"    name="Source/portable/IAR/ARM_CM33/non_secure/portasm.s"/>
1038
1039           <file category="include" name="CMSIS/RTOS2/FreeRTOS/Include/"/>
1040           <file category="source"  name="CMSIS/RTOS2/FreeRTOS/Source/freertos_evr.c"/>
1041           <file category="other"   name="CMSIS/RTOS2/FreeRTOS/FreeRTOS.scvd"/>
1042         </files>
1043       </component>
1044
1045       <component Cgroup="Core" Cvariant="Cortex-M Non-Secure MPU" condition="FreeRTOS Core TZ MPU">
1046         <description>Core API (Kernel, Tasks, Semaphores, Mutexes, Queues) for Cortex-M using Non-Secure Domain (TrustZone) and MPU</description>
1047         <RTE_Components_h>
1048           #define RTE_RTOS_FreeRTOS_CORE          /* RTOS FreeRTOS Core */
1049           #define RTE_RTOS_FreeRTOS_CORE_MPU      /* RTOS FreeRTOS Core with MPU support */
1050           #define RTE_RTOS_FreeRTOS_CORE_TZ_NS    /* RTOS FreeRTOS Core with TrustZone Non-Secure Domain */
1051         </RTE_Components_h>
1052         <files>
1053           <file category="include" name="Source/include/"/>
1054
1055           <file category="header"  name="Source/include/FreeRTOS.h"/>
1056           <file category="header"  name="Source/include/queue.h"/>
1057           <file category="header"  name="Source/include/semphr.h"/>
1058           <file category="header"  name="Source/include/task.h"/>
1059
1060           <file category="source"  name="Source/list.c"/>
1061           <file category="source"  name="Source/queue.c"/>
1062           <file category="source"  name="Source/tasks.c"/>
1063           <file category="source"  name="Source/portable/Common/mpu_wrappers.c"/>
1064
1065           <file category="include"   condition="CM23_ARMCC6" name="Source/portable/GCC/ARM_CM23/secure/"/>
1066           <file category="include"   condition="CM23_ARMCC6" name="Source/portable/GCC/ARM_CM23/non_secure/"/>
1067           <file category="source"    condition="CM23_ARMCC6" name="Source/portable/GCC/ARM_CM23/non_secure/port.c"/>
1068           <file category="source"    condition="CM23_ARMCC6" name="Source/portable/GCC/ARM_CM23/non_secure/portasm.c"/>
1069           <file category="include"   condition="CM33_ARMCC6" name="Source/portable/GCC/ARM_CM33/secure/"/>
1070           <file category="include"   condition="CM33_ARMCC6" name="Source/portable/GCC/ARM_CM33/non_secure/"/>
1071           <file category="source"    condition="CM33_ARMCC6" name="Source/portable/GCC/ARM_CM33/non_secure/port.c"/>
1072           <file category="source"    condition="CM33_ARMCC6" name="Source/portable/GCC/ARM_CM33/non_secure/portasm.c"/>
1073
1074           <file category="include"   condition="CM23_GCC"    name="Source/portable/GCC/ARM_CM23/secure/"/>
1075           <file category="include"   condition="CM23_GCC"    name="Source/portable/GCC/ARM_CM23/non_secure/"/>
1076           <file category="source"    condition="CM23_GCC"    name="Source/portable/GCC/ARM_CM23/non_secure/port.c"/>
1077           <file category="source"    condition="CM23_GCC"    name="Source/portable/GCC/ARM_CM23/non_secure/portasm.c"/>
1078           <file category="include"   condition="CM33_GCC"    name="Source/portable/GCC/ARM_CM33/secure/"/>
1079           <file category="include"   condition="CM33_GCC"    name="Source/portable/GCC/ARM_CM33/non_secure/"/>
1080           <file category="source"    condition="CM33_GCC"    name="Source/portable/GCC/ARM_CM33/non_secure/port.c"/>
1081           <file category="source"    condition="CM33_GCC"    name="Source/portable/GCC/ARM_CM33/non_secure/portasm.c"/>
1082
1083           <file category="include"   condition="CM23_IAR"    name="Source/portable/IAR/ARM_CM23/secure/"/>
1084           <file category="include"   condition="CM23_IAR"    name="Source/portable/IAR/ARM_CM23/non_secure/"/>
1085           <file category="source"    condition="CM23_IAR"    name="Source/portable/IAR/ARM_CM23/non_secure/port.c"/>
1086           <file category="sourceAsm" condition="CM23_IAR"    name="Source/portable/IAR/ARM_CM23/non_secure/portasm.s"/>
1087           <file category="include"   condition="CM33_IAR"    name="Source/portable/IAR/ARM_CM33/secure/"/>
1088           <file category="include"   condition="CM33_IAR"    name="Source/portable/IAR/ARM_CM33/non_secure/"/>
1089           <file category="source"    condition="CM33_IAR"    name="Source/portable/IAR/ARM_CM33/non_secure/port.c"/>
1090           <file category="sourceAsm" condition="CM33_IAR"    name="Source/portable/IAR/ARM_CM33/non_secure/portasm.s"/>
1091
1092           <file category="include" name="CMSIS/RTOS2/FreeRTOS/Include/"/>
1093           <file category="source"  name="CMSIS/RTOS2/FreeRTOS/Source/freertos_evr.c"/>
1094           <file category="other"   name="CMSIS/RTOS2/FreeRTOS/FreeRTOS.scvd"/>
1095         </files>
1096       </component>
1097
1098       <component Cgroup="Core" Cvariant="Cortex-A" isDefaultVariant="true" condition="FreeRTOS Core CA">
1099         <description>Core API (Kernel, Tasks, Semaphores, Mutexes, Queues) for Cortex-A</description>
1100         <RTE_Components_h>
1101           #define RTE_RTOS_FreeRTOS_CORE          /* RTOS FreeRTOS Core */
1102         </RTE_Components_h>
1103         <files>
1104           <file category="include" name="Source/include/"/>
1105
1106           <file category="header"  name="Source/include/FreeRTOS.h"/>
1107           <file category="header"  name="Source/include/queue.h"/>
1108           <file category="header"  name="Source/include/semphr.h"/>
1109           <file category="header"  name="Source/include/task.h"/>
1110
1111           <file category="source"  name="Source/list.c"/>
1112           <file category="source"  name="Source/queue.c"/>
1113           <file category="source"  name="Source/tasks.c"/>
1114
1115           <file category="include"   condition="ARMCC"  name="Source/portable/RVDS/ARM_CA9/"/>
1116           <file category="source"    condition="ARMCC"  name="Source/portable/RVDS/ARM_CA9/port.c"/>
1117           <file category="sourceAsm" condition="ARMCC"  name="Source/portable/RVDS/ARM_CA9/portASM.s"/>
1118
1119           <file category="include"   condition="ARMCC6" name="Source/portable/GCC/ARM_CA9/"/>
1120           <file category="source"    condition="ARMCC6" name="Source/portable/GCC/ARM_CA9/port.c"/>
1121           <file category="sourceAsm" condition="ARMCC6" name="Source/portable/GCC/ARM_CA9/portASM.S"/>
1122
1123           <file category="include"   condition="GCC"    name="Source/portable/GCC/ARM_CA9/"/>
1124           <file category="source"    condition="GCC"    name="Source/portable/GCC/ARM_CA9/port.c"/>
1125           <file category="sourceAsm" condition="GCC"    name="Source/portable/GCC/ARM_CA9/portASM.S"/>
1126
1127           <file category="include"   condition="IAR"    name="Source/portable/IAR/ARM_CA9/"/>
1128           <file category="source"    condition="IAR"    name="Source/portable/IAR/ARM_CA9/port.c"/>
1129           <file category="sourceAsm" condition="IAR"    name="Source/portable/IAR/ARM_CA9/portASM.s"/>
1130
1131           <file category="include" name="CMSIS/RTOS2/FreeRTOS/Include/"/>
1132           <file category="source"  name="CMSIS/RTOS2/FreeRTOS/Source/freertos_evr.c"/>
1133           <file category="other"   name="CMSIS/RTOS2/FreeRTOS/FreeRTOS.scvd"/>
1134         </files>
1135       </component>
1136
1137       <component Cgroup="Config" Cvariant="CMSIS RTOS2" condition="FreeRTOS Config CMSIS RTOS2">
1138         <description>FreeRTOS CMSIS-RTOS2 API configuration file</description>
1139         <RTE_Components_h>
1140           #define RTE_RTOS_FreeRTOS_CONFIG_RTOS2  /* RTOS FreeRTOS Config for CMSIS RTOS2 API */
1141         </RTE_Components_h>
1142         <files>
1143           <file category="doc"    name="CMSIS/Documentation/General/html/cre_freertos_proj.html#cmsis_freertos_config"/>
1144           <file category="header" attr="config" name="CMSIS/RTOS2/FreeRTOS/Config/ARMCM/FreeRTOSConfig.h" version="10.2.0" condition="CoreM"/>
1145           <file category="header" attr="config" name="CMSIS/RTOS2/FreeRTOS/Config/ARMCA/FreeRTOSConfig.h" version="10.2.0" condition="CoreA"/>
1146         </files>
1147       </component>
1148
1149       <component Cgroup="Config" Cvariant="FreeRTOS" condition="FreeRTOS Config Native">
1150         <description>FreeRTOS API configuration file</description>
1151         <RTE_Components_h>
1152           #define RTE_RTOS_FreeRTOS_CONFIG        /* RTOS FreeRTOS Config for FreeRTOS API */
1153         </RTE_Components_h>
1154         <files>
1155           <file category="doc"    name="CMSIS/Documentation/General/html/cre_freertos_proj.html#native_freertos_config"/>
1156           <file category="header" attr="config" name="Config/ARMCM/FreeRTOSConfig.h" version="10.2.0" condition="CoreM"/>
1157           <file category="header" attr="config" name="Config/ARMCA/FreeRTOSConfig.h" version="10.2.0" condition="CoreA"/>
1158         </files>
1159       </component>
1160
1161       <component Cgroup="Coroutines" condition="FreeRTOS Coroutines">
1162         <description>Co-routine API</description>
1163         <RTE_Components_h>
1164           #define RTE_RTOS_FreeRTOS_COROUTINE     /* RTOS FreeRTOS Co-routines */
1165         </RTE_Components_h>
1166         <files>
1167           <file category="header" name="Source/include/croutine.h"/>
1168           <file category="source" name="Source/croutine.c"/>
1169         </files>
1170       </component>
1171
1172       <component Cgroup="Event Groups" condition="FreeRTOS Event Groups">
1173         <description>Event Group API</description>
1174         <RTE_Components_h>
1175           #define RTE_RTOS_FreeRTOS_EVENTGROUPS   /* RTOS FreeRTOS Event Groups */
1176         </RTE_Components_h>
1177         <files>
1178           <file category="header" name="Source/include/event_groups.h"/>
1179           <file category="source" name="Source/event_groups.c"/>
1180         </files>
1181       </component>
1182
1183       <component Cgroup="Heap" Cvariant="Heap_1" condition="FreeRTOS Heap">
1184         <description>Very simple, does not permit memory to be freed.</description>
1185         <RTE_Components_h>
1186           #define RTE_RTOS_FreeRTOS_HEAP_1        /* RTOS FreeRTOS Heap 1 */
1187         </RTE_Components_h>
1188         <files>
1189           <file category="source" name="Source/portable/MemMang/heap_1.c"/>
1190           <file category="doc"    name="http://www.freertos.org/a00111.html"/>
1191         </files>
1192       </component>
1193
1194       <component Cgroup="Heap" Cvariant="Heap_2" condition="FreeRTOS Heap">
1195         <description>Permits memory to be freed, but not does coalescence adjacent free memory blocks.</description>
1196         <RTE_Components_h>
1197           #define RTE_RTOS_FreeRTOS_HEAP_2        /* RTOS FreeRTOS Heap 2 */
1198         </RTE_Components_h>
1199         <files>
1200           <file category="source" name="Source/portable/MemMang/heap_2.c"/>
1201           <file category="doc"    name="http://www.freertos.org/a00111.html"/>
1202         </files>
1203       </component>
1204
1205       <component Cgroup="Heap" Cvariant="Heap_3" condition="FreeRTOS Heap">
1206         <description>Wraps the standard malloc() and free() for thread safety.</description>
1207         <RTE_Components_h>
1208           #define RTE_RTOS_FreeRTOS_HEAP_3        /* RTOS FreeRTOS Heap 3 */
1209         </RTE_Components_h>
1210         <files>
1211           <file category="source" name="Source/portable/MemMang/heap_3.c"/>
1212           <file category="doc"    name="http://www.freertos.org/a00111.html"/>
1213         </files>
1214       </component>
1215
1216       <component Cgroup="Heap" Cvariant="Heap_4" condition="FreeRTOS Heap" isDefaultVariant="true">
1217         <description>Coalescences adjacent free memory blocks to avoid fragmentation. Includes absolute address placement option.</description>
1218         <RTE_Components_h>
1219           #define RTE_RTOS_FreeRTOS_HEAP_4        /* RTOS FreeRTOS Heap 4 */
1220         </RTE_Components_h>
1221         <files>
1222           <file category="source" name="Source/portable/MemMang/heap_4.c"/>
1223           <file category="doc"    name="http://www.freertos.org/a00111.html"/>
1224         </files>
1225       </component>
1226
1227       <component Cgroup="Heap" Cvariant="Heap_5" condition="FreeRTOS Heap">
1228         <description>Same as Heap_4, with the ability to span the heap across multiple non-adjacent memory areas.</description>
1229         <RTE_Components_h>
1230           #define RTE_RTOS_FreeRTOS_HEAP_5        /* RTOS FreeRTOS Heap 5 */
1231         </RTE_Components_h>
1232         <files>
1233           <file category="source" name="Source/portable/MemMang/heap_5.c"/>
1234           <file category="doc"    name="http://www.freertos.org/a00111.html"/>
1235         </files>
1236       </component>
1237
1238       <component Cgroup="Message Buffer" condition="FreeRTOS Message Buffer">
1239         <description>Message Buffer API</description>
1240         <RTE_Components_h>
1241           #define RTE_RTOS_FreeRTOS_MESSAGE_BUFFER /* RTOS FreeRTOS Message Buffers */
1242         </RTE_Components_h>
1243         <files>
1244           <file category="header" name="Source/include/message_buffer.h"/>
1245           <file category="source" name="Source/stream_buffer.c"/>
1246         </files>
1247       </component>
1248
1249       <component Cgroup="Stream Buffer" condition="FreeRTOS Stream Buffer">
1250         <description>Stream Buffer API</description>
1251         <RTE_Components_h>
1252           #define RTE_RTOS_FreeRTOS_STREAM_BUFFER /* RTOS FreeRTOS Stream Buffers */
1253         </RTE_Components_h>
1254         <files>
1255           <file category="header" name="Source/include/stream_buffer.h"/>
1256           <file category="source" name="Source/stream_buffer.c"/>
1257         </files>
1258       </component>
1259
1260       <component Cgroup="Timers" condition="FreeRTOS Timers">
1261         <description>Timer API</description>
1262         <RTE_Components_h>
1263           #define RTE_RTOS_FreeRTOS_TIMERS        /* RTOS FreeRTOS Timers */
1264         </RTE_Components_h>
1265         <files>
1266           <file category="header" name="Source/include/timers.h"/>
1267           <file category="source" name="Source/timers.c"/>
1268         </files>
1269       </component>
1270
1271       <component Cgroup="TrustZone" condition="FreeRTOS TrustZone">
1272         <description>TrustZone Secure Context API</description>
1273         <RTE_Components_h>
1274           #define RTE_RTOS_FreeRTOS_TZ
1275         </RTE_Components_h>
1276         <files>
1277           <file category="header" attr="config" name="CMSIS/RTOS2/FreeRTOS/Config/ARMCM_TZ/FreeRTOSConfig.h" version="10.2.0"/>
1278
1279           <file category="header"    condition="CM23_TZ_ARMCC6" name="Source/portable/GCC/ARM_CM23/secure/secure_port_macros.h"/>
1280           <file category="include"   condition="CM23_TZ_ARMCC6" name="Source/portable/GCC/ARM_CM23/secure/"/>
1281           <file category="source"    condition="CM23_TZ_ARMCC6" name="Source/portable/GCC/ARM_CM23/secure/secure_context.c"/>
1282           <file category="source"    condition="CM23_TZ_ARMCC6" name="Source/portable/GCC/ARM_CM23/secure/secure_context_port.c"/>
1283           <file category="source"    condition="CM23_TZ_ARMCC6" name="Source/portable/GCC/ARM_CM23/secure/secure_heap.c"/>
1284           <file category="source"    condition="CM23_TZ_ARMCC6" name="Source/portable/GCC/ARM_CM23/secure/secure_init.c"/>
1285           <file category="header"    condition="CM33_TZ_ARMCC6" name="Source/portable/GCC/ARM_CM33/secure/secure_port_macros.h"/>
1286           <file category="include"   condition="CM33_TZ_ARMCC6" name="Source/portable/GCC/ARM_CM33/secure/"/>
1287           <file category="source"    condition="CM33_TZ_ARMCC6" name="Source/portable/GCC/ARM_CM33/secure/secure_context.c"/>
1288           <file category="source"    condition="CM33_TZ_ARMCC6" name="Source/portable/GCC/ARM_CM33/secure/secure_context_port.c"/>
1289           <file category="source"    condition="CM33_TZ_ARMCC6" name="Source/portable/GCC/ARM_CM33/secure/secure_heap.c"/>
1290           <file category="source"    condition="CM33_TZ_ARMCC6" name="Source/portable/GCC/ARM_CM33/secure/secure_init.c"/>
1291
1292           <file category="header"    condition="CM23_TZ_GCC"    name="Source/portable/GCC/ARM_CM23/secure/secure_port_macros.h"/>
1293           <file category="include"   condition="CM23_TZ_GCC"    name="Source/portable/GCC/ARM_CM23/secure/"/>
1294           <file category="source"    condition="CM23_TZ_GCC"    name="Source/portable/GCC/ARM_CM23/secure/secure_context.c"/>
1295           <file category="source"    condition="CM23_TZ_GCC"    name="Source/portable/GCC/ARM_CM23/secure/secure_context_port.c"/>
1296           <file category="source"    condition="CM23_TZ_GCC"    name="Source/portable/GCC/ARM_CM23/secure/secure_heap.c"/>
1297           <file category="source"    condition="CM23_TZ_GCC"    name="Source/portable/GCC/ARM_CM23/secure/secure_init.c"/>
1298           <file category="header"    condition="CM33_TZ_GCC"    name="Source/portable/GCC/ARM_CM33/secure/secure_port_macros.h"/>
1299           <file category="include"   condition="CM33_TZ_GCC"    name="Source/portable/GCC/ARM_CM33/secure/"/>
1300           <file category="source"    condition="CM33_TZ_GCC"    name="Source/portable/GCC/ARM_CM33/secure/secure_context.c"/>
1301           <file category="source"    condition="CM33_TZ_GCC"    name="Source/portable/GCC/ARM_CM33/secure/secure_context_port.c"/>
1302           <file category="source"    condition="CM33_TZ_GCC"    name="Source/portable/GCC/ARM_CM33/secure/secure_heap.c"/>
1303           <file category="source"    condition="CM33_TZ_GCC"    name="Source/portable/GCC/ARM_CM33/secure/secure_init.c"/>
1304
1305           <file category="header"    condition="CM23_TZ_IAR"    name="Source/portable/IAR/ARM_CM23/secure/secure_port_macros.h"/>
1306           <file category="include"   condition="CM23_TZ_IAR"    name="Source/portable/IAR/ARM_CM23/secure/"/>
1307           <file category="source"    condition="CM23_TZ_IAR"    name="Source/portable/IAR/ARM_CM23/secure/secure_context.c"/>
1308           <file category="source"    condition="CM23_TZ_IAR"    name="Source/portable/IAR/ARM_CM23/secure/secure_context_port.c"/>
1309           <file category="sourceAsm" condition="CM23_TZ_IAR"    name="Source/portable/IAR/ARM_CM23/secure/secure_context_port_asm.s"/>
1310           <file category="source"    condition="CM23_TZ_IAR"    name="Source/portable/IAR/ARM_CM23/secure/secure_heap.c"/>
1311           <file category="source"    condition="CM23_TZ_IAR"    name="Source/portable/IAR/ARM_CM23/secure/secure_init.c"/>
1312           <file category="header"    condition="CM33_TZ_IAR"    name="Source/portable/IAR/ARM_CM33/secure/secure_port_macros.h"/>
1313           <file category="include"   condition="CM33_TZ_IAR"    name="Source/portable/IAR/ARM_CM33/secure/"/>
1314           <file category="source"    condition="CM33_TZ_IAR"    name="Source/portable/IAR/ARM_CM33/secure/secure_context.c"/>
1315           <file category="source"    condition="CM33_TZ_IAR"    name="Source/portable/IAR/ARM_CM33/secure/secure_context_port.c"/>
1316           <file category="sourceAsm" condition="CM33_TZ_IAR"    name="Source/portable/IAR/ARM_CM33/secure/secure_context_port_asm.s"/>
1317           <file category="source"    condition="CM33_TZ_IAR"    name="Source/portable/IAR/ARM_CM33/secure/secure_heap.c"/>
1318           <file category="source"    condition="CM33_TZ_IAR"    name="Source/portable/IAR/ARM_CM33/secure/secure_init.c"/>
1319         </files>
1320       </component>
1321     </bundle>
1322   </components>
1323
1324   <examples>
1325     <example name="CMSIS-RTOS2 FreeRTOS Blinky" doc="Abstract.txt" folder="CMSIS/RTOS2/FreeRTOS/Examples/Blinky">
1326       <description>CMSIS-RTOS2 Blinky example using FreeRTOS</description>
1327       <board name="uVision Simulator" vendor="Keil"/>
1328       <project>
1329         <environment name="uv" load="Blinky.uvprojx"/>
1330       </project>
1331       <attributes>
1332         <component Cclass="CMSIS" Cgroup="CORE"/>
1333         <component Cclass="CMSIS" Cgroup="RTOS2"/>
1334         <component Cclass="Device" Cgroup="Startup"/>
1335         <category>Getting Started</category>
1336       </attributes>
1337     </example>
1338
1339     <example name="Native FreeRTOS Blinky" doc="Abstract.txt" folder="CMSIS/RTOS2/FreeRTOS/Examples/Native_Blinky">
1340       <description>Blinky example using FreeRTOS natively</description>
1341       <board name="uVision Simulator" vendor="Keil"/>
1342       <project>
1343         <environment name="uv" load="Blinky.uvprojx"/>
1344       </project>
1345       <attributes>
1346         <component Cclass="CMSIS" Cgroup="CORE"/>
1347         <component Cclass="CMSIS" Cgroup="RTOS2"/>
1348         <component Cclass="Device" Cgroup="Startup"/>
1349         <category>Getting Started</category>
1350       </attributes>
1351     </example>
1352
1353     <example name="TrustZone for ARMv8-M" doc="NonSecure/Abstract.txt" folder="CMSIS/RTOS2/FreeRTOS/Examples/TrustZone">
1354       <description>CMSIS-RTOS2 example with secure/non-secure thread context management using FreeRTOS</description>
1355       <board name="uVision Simulator" vendor="Keil"/>
1356       <project>
1357         <environment name="uv" load="TrustZone.uvmpw"/>
1358       </project>
1359       <attributes>
1360         <component Cclass="CMSIS" Cgroup="CORE"/>
1361         <component Cclass="CMSIS" Cgroup="RTOS2"/>
1362         <component Cclass="Device" Cgroup="Startup"/>
1363         <category>Getting Started</category>
1364       </attributes>
1365     </example>
1366
1367     <example name="CMSIS-RTOS2 FreeRTOS Blinky" doc="Blinky/Abstract.txt" folder="CMSIS/RTOS2/FreeRTOS/Examples/Blinky_IAR">
1368       <description>CMSIS-RTOS2 Blinky example using FreeRTOS</description>
1369       <board name="EWARM Simulator" vendor="iar"/>
1370       <project>
1371         <environment name="iar" load="Blinky/Blinky.ewp"/>
1372       </project>
1373       <attributes>
1374         <component Cclass="CMSIS" Cgroup="CORE"/>
1375         <component Cclass="CMSIS" Cgroup="RTOS2"/>
1376         <component Cclass="Device" Cgroup="Startup"/>
1377         <category>Getting Started</category>
1378       </attributes>
1379     </example>
1380
1381   </examples>
1382 </package>