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