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