]> begriffs open source - cmsis-freertos/blob - ARM.CMSIS-FreeRTOS.pdsc
Added native FreeRTOS example project and a condition to Device:Startup, changed...
[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     <!-- ARMCC compiler -->
90     <condition id="CM0_ARMCC">
91       <description>Cortex-M0 or Cortex-M0+ or SC000 processor based device for the ARM Compiler</description>
92       <require condition="CM0"/>
93       <require Tcompiler="ARMCC"/>
94     </condition>
95
96     <condition id="CM3_ARMCC">
97       <description>Cortex-M3 or SC300 processor based device for the ARM Compiler</description>
98       <require condition="CM3"/>
99       <require Tcompiler="ARMCC"/>
100     </condition>
101
102     <condition id="CM4_ARMCC">
103       <description>Cortex-M4 processor based device for the ARM Compiler</description>
104       <require condition="CM4"/>
105       <require Tcompiler="ARMCC"/>
106     </condition>
107     <condition id="CM4_FP_ARMCC">
108       <description>Cortex-M4 processor based device using Floating Point Unit for the ARM Compiler</description>
109       <require condition="CM4_FP"/>
110       <require Tcompiler="ARMCC"/>
111     </condition>
112
113     <condition id="CM7_ARMCC">
114       <description>Cortex-M7 processor based device for the ARM Compiler</description>
115       <require condition="CM7"/>
116       <require Tcompiler="ARMCC"/>
117     </condition>
118     <condition id="CM7_SP_ARMCC">
119       <description>Cortex-M7 processor based device using Floating Point Unit (SP) for the ARM Compiler</description>
120       <require condition="CM7_SP"/>
121       <require Tcompiler="ARMCC"/>
122     </condition>
123     <condition id="CM7_DP_ARMCC">
124       <description>Cortex-M7 processor based device using Floating Point Unit (DP) for the ARM Compiler</description>
125       <require condition="CM7_DP"/>
126       <require Tcompiler="ARMCC"/>
127     </condition>
128
129     <!-- GCC compiler -->
130     <condition id="CM0_GCC">
131       <description>Cortex-M0 or Cortex-M0+ or SC000 processor based device for the GCC Compiler</description>
132       <require condition="CM0"/>
133       <require Tcompiler="GCC"/>
134     </condition>
135
136     <condition id="CM3_GCC">
137       <description>Cortex-M3 or SC300 processor based device for the GCC Compiler</description>
138       <require condition="CM3"/>
139       <require Tcompiler="GCC"/>
140     </condition>
141
142     <condition id="CM4_GCC">
143       <description>Cortex-M4 processor based device for the GCC Compiler</description>
144       <require condition="CM4"/>
145       <require Tcompiler="GCC"/>
146     </condition>
147
148     <condition id="CM4_FP_GCC">
149       <description>Cortex-M4 processor based device using Floating Point Unit for the GCC Compiler</description>
150       <require condition="CM4_FP"/>
151       <require Tcompiler="GCC"/>
152     </condition>
153
154     <condition id="CM7_GCC">
155       <description>Cortex-M7 processor based device for the GCC Compiler</description>
156       <require condition="CM7"/>
157       <require Tcompiler="GCC"/>
158     </condition>
159
160     <condition id="CM7_SP_GCC">
161       <description>Cortex-M7 processor based device using Floating Point Unit (SP) for the GCC Compiler</description>
162       <require condition="CM7_SP"/>
163       <require Tcompiler="GCC"/>
164     </condition>
165
166     <condition id="CM7_DP_GCC">
167       <description>Cortex-M7 processor based device using Floating Point Unit (DP) for the GCC Compiler</description>
168       <require condition="CM7_DP"/>
169       <require Tcompiler="GCC"/>
170     </condition>
171
172     <condition id="CMSIS RTOS2 FreeRTOS">
173       <require Cclass="CMSIS" Cgroup="RTOS2" Csub="FreeRTOS"/>  
174     </condition>
175
176     <condition id="FreeRTOS">
177       <require condition="ARMCC GCC"/>
178       <require Cclass="RTOS" Cbundle="FreeRTOS" Cgroup="Config"/>
179       <require Cclass="RTOS" Cbundle="FreeRTOS" Cgroup="Heap"/>
180     </condition>
181
182     <condition id="FreeRTOS Core">
183       <require Cclass="RTOS" Cbundle="FreeRTOS" Cgroup="Core"/>
184       <require Cclass="Device" Cgroup="Startup"/>
185     </condition>
186
187     <condition id="FreeRTOS RTOS2 Core">
188       <require Cclass="RTOS" Cbundle="FreeRTOS" Cgroup="Event Groups"/>
189       <require Cclass="RTOS" Cbundle="FreeRTOS" Cgroup="Timers"/>
190       <require Cclass="RTOS" Cbundle="FreeRTOS" Cgroup="Core"/>
191       <require Cclass="RTOS" Cbundle="FreeRTOS" Cgroup="Config" Cvariant="CMSIS RTOS2"/>
192     </condition>
193
194   </conditions>
195
196   <components>
197     <!-- CMSIS-RTOS2 FreeRTOS component -->
198     <component Cclass="CMSIS" Cgroup="RTOS2" Csub="FreeRTOS" Cversion="9.0.0" Capiversion="2.1.0" condition="FreeRTOS RTOS2 Core">
199       <description>CMSIS-RTOS2 implementation for Cortex-M based on FreeRTOS</description>
200       <RTE_Components_h>
201         #define RTE_CMSIS_RTOS2                     /* CMSIS-RTOS2 */
202         #define RTE_CMSIS_RTOS2_FreeRTOS            /* CMSIS-RTOS2 FreeRTOS */
203       </RTE_Components_h>
204       <files>
205         <file category="doc"    name="CMSIS/Documentation/General/html/index.html"/>
206         <file category="source" name="CMSIS/RTOS2/FreeRTOS/Source/cmsis_os2.c"/>
207         <file category="source" name="CMSIS/RTOS2/FreeRTOS/Source/ARM/clib_arm.c" condition="ARMCC"/>
208       </files>
209     </component>
210
211     <bundle Cbundle="FreeRTOS" Cclass="RTOS" Cversion="9.0.0">
212       <description>FreeRTOS Real Time Kernel</description>
213       <doc>http://www.freertos.org/Documentation/FreeRTOS_Reference_Manual_V9.0.0.pdf</doc>
214       <component Cgroup="Core" Cversion="9.0.0" condition="FreeRTOS">
215         <description>Core components API (Kernel, Tasks, Semaphores, Mutexes, Queues)</description>
216         <RTE_Components_h>
217           #define RTE_RTOS_FreeRTOS_CORE            /* RTOS FreeRTOS Core */
218         </RTE_Components_h>
219         <files>
220           <file category="include" name="Source/include/"/>
221   
222           <file category="header"  name="Source/include/FreeRTOS.h"/>
223           <file category="header"  name="Source/include/queue.h"/>
224           <file category="header"  name="Source/include/semphr.h"/>
225           <file category="header"  name="Source/include/task.h"/>
226   
227           <file category="source"  name="Source/list.c"/>
228           <file category="source"  name="Source/queue.c"/>
229           <file category="source"  name="Source/tasks.c"/>
230   
231           <file category="include" condition="CM0_ARMCC"    name="Source/portable/RVDS/ARM_CM0/"/>
232           <file category="source"  condition="CM0_ARMCC"    name="Source/portable/RVDS/ARM_CM0/port.c"/>
233           <file category="include" condition="CM3_ARMCC"    name="Source/portable/RVDS/ARM_CM3/"/>
234           <file category="source"  condition="CM3_ARMCC"    name="Source/portable/RVDS/ARM_CM3/port.c"/>
235           <file category="include" condition="CM4_ARMCC"    name="Source/portable/RVDS/ARM_CM3/"/>
236           <file category="source"  condition="CM4_ARMCC"    name="Source/portable/RVDS/ARM_CM3/port.c"/>
237           <file category="include" condition="CM4_FP_ARMCC" name="Source/portable/RVDS/ARM_CM4F/"/>
238           <file category="source"  condition="CM4_FP_ARMCC" name="Source/portable/RVDS/ARM_CM4F/port.c"/>
239           <file category="include" condition="CM7_ARMCC"    name="Source/portable/RVDS/ARM_CM3/"/>
240           <file category="source"  condition="CM7_ARMCC"    name="Source/portable/RVDS/ARM_CM3/port.c"/>
241           <file category="include" condition="CM7_DP_ARMCC" name="Source/portable/RVDS/ARM_CM7/r0p1/"/>
242           <file category="source"  condition="CM7_DP_ARMCC" name="Source/portable/RVDS/ARM_CM7/r0p1/port.c"/>
243           <file category="include" condition="CM7_SP_ARMCC" name="Source/portable/RVDS/ARM_CM7/r0p1/"/>
244           <file category="source"  condition="CM7_SP_ARMCC" name="Source/portable/RVDS/ARM_CM7/r0p1/port.c"/>
245   
246           <file category="include" condition="CM0_GCC"      name="Source/portable/GCC/ARM_CM0/"/>
247           <file category="source"  condition="CM0_GCC"      name="Source/portable/GCC/ARM_CM0/port.c"/>
248           <file category="include" condition="CM3_GCC"      name="Source/portable/GCC/ARM_CM3/"/>
249           <file category="source"  condition="CM3_GCC"      name="Source/portable/GCC/ARM_CM3/port.c"/>
250           <file category="include" condition="CM4_GCC"      name="Source/portable/GCC/ARM_CM3/"/>
251           <file category="source"  condition="CM4_GCC"      name="Source/portable/GCC/ARM_CM3/port.c"/>
252           <file category="include" condition="CM4_FP_GCC"   name="Source/portable/GCC/ARM_CM4F/"/>
253           <file category="source"  condition="CM4_FP_GCC"   name="Source/portable/GCC/ARM_CM4F/port.c"/>
254           <file category="include" condition="CM7_GCC"      name="Source/portable/GCC/ARM_CM3/"/>
255           <file category="source"  condition="CM7_GCC"      name="Source/portable/GCC/ARM_CM3/port.c"/>
256           <file category="include" condition="CM7_DP_GCC"   name="Source/portable/GCC/ARM_CM7/r0p1/"/>
257           <file category="source"  condition="CM7_DP_GCC"   name="Source/portable/GCC/ARM_CM7/r0p1/port.c"/>
258           <file category="include" condition="CM7_SP_GCC"   name="Source/portable/GCC/ARM_CM7/r0p1/"/>
259           <file category="source"  condition="CM7_SP_GCC"   name="Source/portable/GCC/ARM_CM7/r0p1/port.c"/>
260         </files>
261       </component>
262   
263       <component Cgroup="Config" Cvariant="CMSIS RTOS2" Cversion="9.0.0" condition="CMSIS RTOS2 FreeRTOS">
264         <description>FreeRTOS CMSIS-RTOS2 API configuration file</description>
265         <RTE_Components_h>
266           #define RTE_RTOS_FreeRTOS_CONFIG_RTOS2    /* RTOS FreeRTOS Config for CMSIS RTOS2 API */
267         </RTE_Components_h>
268         <files>
269           <file category="header" attr="config" name="CMSIS/RTOS2/FreeRTOS/Config/FreeRTOSConfig.h" version="9.0.0"/>
270         </files>
271       </component>
272      
273       <component Cgroup="Config" Cvariant="FreeRTOS" Cversion="9.0.0" condition="FreeRTOS Core">
274         <description>FreeRTOS API configuration file</description>
275         <RTE_Components_h>
276           #define RTE_RTOS_FreeRTOS_CONFIG          /* RTOS FreeRTOS Config for FreeRTOS API */
277         </RTE_Components_h>
278         <files>
279           <file category="header" attr="config" name="Config/FreeRTOSConfig.h" version="9.0.0"/>
280         </files>
281       </component>
282      
283       <component Cgroup="Coroutines" Cversion="9.0.0" condition="FreeRTOS Core">
284         <description>Co-routine API</description>
285         <RTE_Components_h>
286           #define RTE_RTOS_FreeRTOS_COROUTINE       /* RTOS FreeRTOS Co-routines */
287         </RTE_Components_h>
288         <files>
289           <file category="header" name="Source/include/croutine.h"/>
290           <file category="source" name="Source/croutine.c"/>
291         </files>
292       </component>
293      
294       <component Cgroup="Event Groups" Cversion="9.0.0" condition="FreeRTOS Core">
295         <description>Event Group API</description>
296         <RTE_Components_h>
297           #define RTE_RTOS_FreeRTOS_EVENTGROUPS     /* RTOS FreeRTOS Event Groups */
298         </RTE_Components_h>
299         <files>
300           <file category="header" name="Source/include/event_groups.h"/>
301           <file category="source" name="Source/event_groups.c"/>
302         </files>
303       </component>
304      
305       <component Cgroup="Timers" Cversion="9.0.0" condition="FreeRTOS Core">
306         <description>Timer API</description>
307         <RTE_Components_h>
308           #define RTE_RTOS_FreeRTOS_TIMERS          /* RTOS FreeRTOS Timers */
309         </RTE_Components_h>
310         <files>
311           <file category="header" name="Source/include/timers.h"/>
312           <file category="source" name="Source/timers.c"/>
313         </files>
314       </component>
315      
316       <component Cgroup="Heap" Cvariant="Heap_1" Cversion="9.0.0" condition="FreeRTOS Core">
317         <description>Very simple, does not permit memory to be freed.</description>
318         <RTE_Components_h>
319           #define RTE_RTOS_FreeRTOS_HEAP_1          /* RTOS FreeRTOS Heap 1 */
320         </RTE_Components_h>
321         <files>
322           <file category="source" name="Source/portable/MemMang/heap_1.c"/>
323         </files>
324       </component>
325      
326       <component Cgroup="Heap" Cvariant="Heap_2" Cversion="9.0.0" condition="FreeRTOS Core">
327         <description>Permits memory to be freed, but not does coalescence adjacent free memory blocks.</description>
328         <RTE_Components_h>
329           #define RTE_RTOS_FreeRTOS_HEAP_2          /* RTOS FreeRTOS Heap 2 */
330         </RTE_Components_h>
331         <files>
332           <file category="source" name="Source/portable/MemMang/heap_2.c"/>
333         </files>
334       </component>
335      
336       <component Cgroup="Heap" Cvariant="Heap_3" Cversion="9.0.0" condition="FreeRTOS Core">
337         <description>Wraps the standard malloc() and free() for thread safety.</description>
338         <RTE_Components_h>
339           #define RTE_RTOS_FreeRTOS_HEAP_3          /* RTOS FreeRTOS Heap 3 */
340         </RTE_Components_h>
341         <files>
342           <file category="source" name="Source/portable/MemMang/heap_3.c"/>
343         </files>
344       </component>
345      
346       <component Cgroup="Heap" Cvariant="Heap_4" Cversion="9.0.0" condition="FreeRTOS Core">
347         <description>Coalescences adjacent free memory blocks to avoid fragmentation. Includes absolute address placement option.</description>
348         <RTE_Components_h>
349           #define RTE_RTOS_FreeRTOS_HEAP_4          /* RTOS FreeRTOS Heap 4 */
350         </RTE_Components_h>
351         <files>
352           <file category="source" name="Source/portable/MemMang/heap_4.c"/>
353         </files>
354       </component>
355      
356       <component Cgroup="Heap" Cvariant="Heap_5" Cversion="9.0.0" condition="FreeRTOS Core">
357         <description>Same as Heap_4, with the ability to span the heap across multiple non-adjacent memory areas.</description>
358         <RTE_Components_h>
359           #define RTE_RTOS_FreeRTOS_HEAP_5          /* RTOS FreeRTOS Heap 5 */
360         </RTE_Components_h>
361         <files>
362           <file category="source" name="Source/portable/MemMang/heap_5.c"/>
363         </files>
364       </component>
365     </bundle>
366   </components>
367
368   <examples>
369     <example name="CMSIS-RTOS2 FreeRTOS Blinky" doc="Abstract.txt" folder="CMSIS/RTOS2/FreeRTOS/Examples/Blinky">
370       <description>CMSIS-RTOS2 Blinky example using FreeRTOS</description>
371       <board name="uVision Simulator" vendor="Keil"/>
372       <project>
373         <environment name="uv" load="Blinky.uvprojx"/>
374       </project>
375       <attributes>
376         <component Cclass="CMSIS" Cgroup="CORE"/>
377         <component Cclass="CMSIS" Cgroup="RTOS2"/>
378         <component Cclass="Device" Cgroup="Startup"/>
379         <category>Getting Started</category>
380       </attributes>
381     </example>
382     <example name="Native FreeRTOS Blinky" doc="Abstract.txt" folder="CMSIS/RTOS2/FreeRTOS/Examples/Native_Blinky">
383       <description>Blinky example using FreeRTOS natively</description>
384       <board name="uVision Simulator" vendor="Keil"/>
385       <project>
386         <environment name="uv" load="Blinky.uvprojx"/>
387       </project>
388       <attributes>
389         <component Cclass="CMSIS" Cgroup="CORE"/>
390         <component Cclass="CMSIS" Cgroup="RTOS2"/>
391         <component Cclass="Device" Cgroup="Startup"/>
392         <category>Getting Started</category>
393       </attributes>
394     </example>
395   </examples>
396 </package>