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