1 <?xml version="1.0" encoding="utf-8"?>
3 <package schemaVersion="1.4" xmlns:xs="http://www.w3.org/2001/XMLSchema-instance" xs:noNamespaceSchemaLocation="PACK.xsd">
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>
11 <release version="9.0.1-dev2">
12 Added support for OS Tick component
14 <release version="9.0.1-dev1">
15 Added documentation for configuration options (native/CMSIS-RTOS2)
17 <release version="9.0.1-dev0">
18 Debug event TaskIncrementTick level set to Detail
20 <release version="9.0.0" date="2017-03-13">
21 Initial release version:
22 - native FreeRTOS component (RTOS: Variant=FreeRTOS)
23 - CMSIS-RTOS FreeRTOS for Cortex-M and Cortex-A9 (CMSIS:RTOS:FreeRTOS, CMSIS:RTOS2:FreeRTOS)
29 <package vendor="ARM" name="CMSIS" version="5.0.1-0"/>
34 <condition id="ARMCC">
35 <require Tcompiler="ARMCC"/>
38 <require Tcompiler="GCC"/>
41 <require Tcompiler="IAR"/>
43 <condition id="ARMCC GCC">
44 <accept Tcompiler="ARMCC"/>
45 <accept Tcompiler="GCC"/>
47 <condition id="ARMCC GCC IAR">
48 <accept Tcompiler="ARMCC"/>
49 <accept Tcompiler="GCC"/>
50 <accept Tcompiler="IAR"/>
54 <description>Cortex-M0 or Cortex-M0+ or SC000 processor based device</description>
55 <accept Dcore="Cortex-M0"/>
56 <accept Dcore="Cortex-M0+"/>
57 <accept Dcore="SC000"/>
61 <description>Cortex-M3 or SC300 processor based device</description>
62 <accept Dcore="Cortex-M3"/>
63 <accept Dcore="SC300"/>
67 <description>Cortex-M4 processor based device</description>
68 <require Dcore="Cortex-M4" Dfpu="NO_FPU"/>
71 <condition id="CM4_FP">
72 <description>Cortex-M4 processor based device using Floating Point Unit</description>
73 <require Dcore="Cortex-M4" Dfpu="FPU"/>
77 <description>Cortex-M7 processor based device</description>
78 <require Dcore="Cortex-M7" Dfpu="NO_FPU"/>
81 <condition id="CM7_FP">
82 <description>Cortex-M7 processor based device using Floating Point Unit</description>
83 <accept Dcore="Cortex-M7" Dfpu="SP_FPU"/>
84 <accept Dcore="Cortex-M7" Dfpu="DP_FPU"/>
87 <condition id="CM7_SP">
88 <description>Cortex-M7 processor based device using Floating Point Unit (SP)</description>
89 <require Dcore="Cortex-M7" Dfpu="SP_FPU"/>
92 <condition id="CM7_DP">
93 <description>Cortex-M7 processor based device using Floating Point Unit (DP)</description>
94 <require Dcore="Cortex-M7" Dfpu="DP_FPU"/>
97 <condition id="CA9_DP">
98 <description>Cortex-A9 processor based device using Floating Point Unit (DP)</description>
99 <require Dcore="Cortex-A9" Dfpu="DP_FPU"/>
102 <condition id="CoreM">
103 <description>Cortex-M processor based device</description>
104 <accept condition="CM0"/>
105 <accept condition="CM3"/>
106 <accept condition="CM4"/>
107 <accept condition="CM4_FP"/>
108 <accept condition="CM7"/>
109 <accept condition="CM7_FP"/>
112 <condition id="CoreA">
113 <description>Cortex-A processor based device</description>
114 <accept condition="CA9_DP"/>
117 <!-- ARMCC compiler -->
118 <condition id="CM0_ARMCC">
119 <description>Cortex-M0 or Cortex-M0+ or SC000 processor based device for the ARM Compiler</description>
120 <require condition="CM0"/>
121 <require Tcompiler="ARMCC"/>
124 <condition id="CM3_ARMCC">
125 <description>Cortex-M3 or SC300 processor based device for the ARM Compiler</description>
126 <require condition="CM3"/>
127 <require Tcompiler="ARMCC"/>
130 <condition id="CM4_ARMCC">
131 <description>Cortex-M4 processor based device for the ARM Compiler</description>
132 <require condition="CM4"/>
133 <require Tcompiler="ARMCC"/>
135 <condition id="CM4_FP_ARMCC">
136 <description>Cortex-M4 processor based device using Floating Point Unit for the ARM Compiler</description>
137 <require condition="CM4_FP"/>
138 <require Tcompiler="ARMCC"/>
141 <condition id="CM7_ARMCC">
142 <description>Cortex-M7 processor based device for the ARM Compiler</description>
143 <require condition="CM7"/>
144 <require Tcompiler="ARMCC"/>
146 <condition id="CM7_SP_ARMCC">
147 <description>Cortex-M7 processor based device using Floating Point Unit (SP) for the ARM Compiler</description>
148 <require condition="CM7_SP"/>
149 <require Tcompiler="ARMCC"/>
151 <condition id="CM7_DP_ARMCC">
152 <description>Cortex-M7 processor based device using Floating Point Unit (DP) for the ARM Compiler</description>
153 <require condition="CM7_DP"/>
154 <require Tcompiler="ARMCC"/>
157 <condition id="CA9_DP_ARMCC">
158 <description>Cortex-A9 processor based device for the ARM Compiler</description>
159 <require condition="CA9_DP"/>
160 <require Tcompiler="ARMCC"/>
163 <!-- GCC compiler -->
164 <condition id="CM0_GCC">
165 <description>Cortex-M0 or Cortex-M0+ or SC000 processor based device for the GCC Compiler</description>
166 <require condition="CM0"/>
167 <require Tcompiler="GCC"/>
170 <condition id="CM3_GCC">
171 <description>Cortex-M3 or SC300 processor based device for the GCC Compiler</description>
172 <require condition="CM3"/>
173 <require Tcompiler="GCC"/>
176 <condition id="CM4_GCC">
177 <description>Cortex-M4 processor based device for the GCC Compiler</description>
178 <require condition="CM4"/>
179 <require Tcompiler="GCC"/>
182 <condition id="CM4_FP_GCC">
183 <description>Cortex-M4 processor based device using Floating Point Unit for the GCC Compiler</description>
184 <require condition="CM4_FP"/>
185 <require Tcompiler="GCC"/>
188 <condition id="CM7_GCC">
189 <description>Cortex-M7 processor based device for the GCC Compiler</description>
190 <require condition="CM7"/>
191 <require Tcompiler="GCC"/>
194 <condition id="CM7_SP_GCC">
195 <description>Cortex-M7 processor based device using Floating Point Unit (SP) for the GCC Compiler</description>
196 <require condition="CM7_SP"/>
197 <require Tcompiler="GCC"/>
200 <condition id="CM7_DP_GCC">
201 <description>Cortex-M7 processor based device using Floating Point Unit (DP) for the GCC Compiler</description>
202 <require condition="CM7_DP"/>
203 <require Tcompiler="GCC"/>
206 <condition id="CA9_DP_GCC">
207 <description>Cortex-A9 processor based device for the GCC Compiler</description>
208 <require condition="CA9_DP"/>
209 <require Tcompiler="GCC"/>
212 <condition id="CMSIS RTOS2 FreeRTOS">
213 <require Cclass="CMSIS" Cgroup="RTOS2" Csub="FreeRTOS"/>
216 <condition id="FreeRTOS">
217 <require condition="ARMCC GCC"/>
218 <require Cclass="Device" Cgroup="Startup"/>
219 <require Cclass="RTOS" Cbundle="FreeRTOS" Cgroup="Config"/>
220 <require Cclass="RTOS" Cbundle="FreeRTOS" Cgroup="Heap"/>
223 <condition id="FreeRTOS Core">
224 <require Cclass="RTOS" Cbundle="FreeRTOS" Cgroup="Core"/>
227 <condition id="FreeRTOS RTOS2 Core">
228 <require Cclass="RTOS" Cbundle="FreeRTOS" Cgroup="Event Groups"/>
229 <require Cclass="RTOS" Cbundle="FreeRTOS" Cgroup="Timers"/>
230 <require Cclass="RTOS" Cbundle="FreeRTOS" Cgroup="Core"/>
231 <require Cclass="RTOS" Cbundle="FreeRTOS" Cgroup="Config" Cvariant="CMSIS RTOS2"/>
234 <condition id="FreeRTOS RTOS2 CortexM">
235 <require condition="CoreM"/>
236 <require Cclass="RTOS" Cbundle="FreeRTOS" Cgroup="Event Groups"/>
237 <require Cclass="RTOS" Cbundle="FreeRTOS" Cgroup="Timers"/>
238 <require Cclass="RTOS" Cbundle="FreeRTOS" Cgroup="Core"/>
239 <require Cclass="RTOS" Cbundle="FreeRTOS" Cgroup="Config" Cvariant="CMSIS RTOS2"/>
242 <condition id="FreeRTOS RTOS2 CortexA">
243 <require condition="CoreA"/>
244 <require Cclass="Device" Cgroup="OS Tick"/>
245 <require Cclass="RTOS" Cbundle="FreeRTOS" Cgroup="Event Groups"/>
246 <require Cclass="RTOS" Cbundle="FreeRTOS" Cgroup="Timers"/>
247 <require Cclass="RTOS" Cbundle="FreeRTOS" Cgroup="Core"/>
248 <require Cclass="RTOS" Cbundle="FreeRTOS" Cgroup="Config" Cvariant="CMSIS RTOS2"/>
254 <!-- CMSIS-RTOS FreeRTOS component -->
255 <component Cclass="CMSIS" Cgroup="RTOS" Csub="FreeRTOS" Cversion="9.0.0" Capiversion="1.0.0" condition="FreeRTOS RTOS2 Core">
256 <description>CMSIS-RTOS implementation for Cortex-M based on FreeRTOS</description>
258 #define RTE_CMSIS_RTOS /* CMSIS-RTOS */
259 #define RTE_CMSIS_RTOS_FreeRTOS /* CMSIS-RTOS FreeRTOS */
262 <file category="header" name="CMSIS/RTOS2/FreeRTOS/Include1/cmsis_os.h"/>
263 <file category="source" name="CMSIS/RTOS2/FreeRTOS/Source/cmsis_os1.c"/>
267 <!-- CMSIS-RTOS2 FreeRTOS component -->
268 <component Cclass="CMSIS" Cgroup="RTOS2" Csub="FreeRTOS" Cversion="9.0.0" Capiversion="2.1.1" condition="FreeRTOS RTOS2 CortexM">
269 <description>CMSIS-RTOS2 implementation for Cortex-M based on FreeRTOS</description>
271 #define RTE_CMSIS_RTOS2 /* CMSIS-RTOS2 */
272 #define RTE_CMSIS_RTOS2_FreeRTOS /* CMSIS-RTOS2 FreeRTOS */
275 <file category="doc" name="CMSIS/Documentation/General/html/index.html"/>
276 <file category="source" name="CMSIS/RTOS2/FreeRTOS/Source/cmsis_os2.c"/>
277 <file category="source" name="CMSIS/RTOS2/FreeRTOS/Source/ARM/clib_arm.c" condition="ARMCC"/>
279 <!-- OS Tick (SysTick) -->
280 <file category="source" name="CMSIS/RTOS2/FreeRTOS/Source/os_systick.c"/>
284 <component Cclass="CMSIS" Cgroup="RTOS2" Csub="FreeRTOS" Cversion="9.0.0" Capiversion="2.1.1" condition="FreeRTOS RTOS2 CortexA">
285 <description>CMSIS-RTOS2 implementation for Cortex-A based on FreeRTOS</description>
287 #define RTE_CMSIS_RTOS2 /* CMSIS-RTOS2 */
288 #define RTE_CMSIS_RTOS2_FreeRTOS /* CMSIS-RTOS2 FreeRTOS */
291 <file category="doc" name="CMSIS/Documentation/General/html/index.html"/>
292 <file category="source" name="CMSIS/RTOS2/FreeRTOS/Source/cmsis_os2.c"/>
293 <file category="source" name="CMSIS/RTOS2/FreeRTOS/Source/ARM/clib_arm.c" condition="ARMCC"/>
297 <bundle Cbundle="FreeRTOS" Cclass="RTOS" Cversion="9.0.0">
298 <description>FreeRTOS Real Time Kernel</description>
299 <doc>http://www.freertos.org/Documentation/FreeRTOS_Reference_Manual_V9.0.0.pdf</doc>
300 <component Cgroup="Core" Cversion="9.0.0" condition="FreeRTOS">
301 <description>Core components API (Kernel, Tasks, Semaphores, Mutexes, Queues)</description>
303 #define RTE_RTOS_FreeRTOS_CORE /* RTOS FreeRTOS Core */
306 <file category="include" name="Source/include/"/>
308 <file category="header" name="Source/include/FreeRTOS.h"/>
309 <file category="header" name="Source/include/queue.h"/>
310 <file category="header" name="Source/include/semphr.h"/>
311 <file category="header" name="Source/include/task.h"/>
313 <file category="source" name="Source/list.c"/>
314 <file category="source" name="Source/queue.c"/>
315 <file category="source" name="Source/tasks.c"/>
317 <file category="include" condition="CM0_ARMCC" name="Source/portable/RVDS/ARM_CM0/"/>
318 <file category="source" condition="CM0_ARMCC" name="Source/portable/RVDS/ARM_CM0/port.c"/>
319 <file category="include" condition="CM3_ARMCC" name="Source/portable/RVDS/ARM_CM3/"/>
320 <file category="source" condition="CM3_ARMCC" name="Source/portable/RVDS/ARM_CM3/port.c"/>
321 <file category="include" condition="CM4_ARMCC" name="Source/portable/RVDS/ARM_CM3/"/>
322 <file category="source" condition="CM4_ARMCC" name="Source/portable/RVDS/ARM_CM3/port.c"/>
323 <file category="include" condition="CM4_FP_ARMCC" name="Source/portable/RVDS/ARM_CM4F/"/>
324 <file category="source" condition="CM4_FP_ARMCC" name="Source/portable/RVDS/ARM_CM4F/port.c"/>
325 <file category="include" condition="CM7_ARMCC" name="Source/portable/RVDS/ARM_CM3/"/>
326 <file category="source" condition="CM7_ARMCC" name="Source/portable/RVDS/ARM_CM3/port.c"/>
327 <file category="include" condition="CM7_DP_ARMCC" name="Source/portable/RVDS/ARM_CM7/r0p1/"/>
328 <file category="source" condition="CM7_DP_ARMCC" name="Source/portable/RVDS/ARM_CM7/r0p1/port.c"/>
329 <file category="include" condition="CM7_SP_ARMCC" name="Source/portable/RVDS/ARM_CM7/r0p1/"/>
330 <file category="source" condition="CM7_SP_ARMCC" name="Source/portable/RVDS/ARM_CM7/r0p1/port.c"/>
331 <file category="include" condition="CA9_DP_ARMCC" name="Source/portable/RVDS/ARM_CA9/"/>
332 <file category="source" condition="CA9_DP_ARMCC" name="Source/portable/RVDS/ARM_CA9/port.c"/>
333 <file category="sourceAsm" condition="CA9_DP_ARMCC" name="Source/portable/RVDS/ARM_CA9/portASM.s"/>
335 <file category="include" condition="CM0_GCC" name="Source/portable/GCC/ARM_CM0/"/>
336 <file category="source" condition="CM0_GCC" name="Source/portable/GCC/ARM_CM0/port.c"/>
337 <file category="include" condition="CM3_GCC" name="Source/portable/GCC/ARM_CM3/"/>
338 <file category="source" condition="CM3_GCC" name="Source/portable/GCC/ARM_CM3/port.c"/>
339 <file category="include" condition="CM4_GCC" name="Source/portable/GCC/ARM_CM3/"/>
340 <file category="source" condition="CM4_GCC" name="Source/portable/GCC/ARM_CM3/port.c"/>
341 <file category="include" condition="CM4_FP_GCC" name="Source/portable/GCC/ARM_CM4F/"/>
342 <file category="source" condition="CM4_FP_GCC" name="Source/portable/GCC/ARM_CM4F/port.c"/>
343 <file category="include" condition="CM7_GCC" name="Source/portable/GCC/ARM_CM3/"/>
344 <file category="source" condition="CM7_GCC" name="Source/portable/GCC/ARM_CM3/port.c"/>
345 <file category="include" condition="CM7_DP_GCC" name="Source/portable/GCC/ARM_CM7/r0p1/"/>
346 <file category="source" condition="CM7_DP_GCC" name="Source/portable/GCC/ARM_CM7/r0p1/port.c"/>
347 <file category="include" condition="CM7_SP_GCC" name="Source/portable/GCC/ARM_CM7/r0p1/"/>
348 <file category="source" condition="CM7_SP_GCC" name="Source/portable/GCC/ARM_CM7/r0p1/port.c"/>
349 <file category="include" condition="CA9_DP_GCC" name="Source/portable/GCC/ARM_CA9/"/>
350 <file category="source" condition="CA9_DP_GCC" name="Source/portable/GCC/ARM_CA9/port.c"/>
351 <file category="sourceAsm" condition="CA9_DP_GCC" name="Source/portable/GCC/ARM_CA9/portASM.S"/>
353 <file category="header" name="CMSIS/RTOS2/FreeRTOS/Include/freertos_evr.h"/>
354 <file category="source" name="CMSIS/RTOS2/FreeRTOS/Source/freertos_evr.c"/>
355 <file category="other" name="CMSIS/RTOS2/FreeRTOS/FreeRTOS.scvd"/>
359 <component Cgroup="Config" Cvariant="CMSIS RTOS2" Cversion="9.0.0" condition="CMSIS RTOS2 FreeRTOS">
360 <description>FreeRTOS CMSIS-RTOS2 API configuration file</description>
362 #define RTE_RTOS_FreeRTOS_CONFIG_RTOS2 /* RTOS FreeRTOS Config for CMSIS RTOS2 API */
365 <file category="doc" name="CMSIS/Documentation/General/html/cre_freertos_proj.html#cmsis_freertos_config"/>
366 <file category="header" attr="config" name="CMSIS/RTOS2/FreeRTOS/Config/ARMCM/FreeRTOSConfig.h" version="9.0.1" condition="CoreM"/>
367 <file category="header" attr="config" name="CMSIS/RTOS2/FreeRTOS/Config/ARMCA/FreeRTOSConfig.h" version="9.0.1" condition="CoreA"/>
371 <component Cgroup="Config" Cvariant="FreeRTOS" Cversion="9.0.0" condition="FreeRTOS Core">
372 <description>FreeRTOS API configuration file</description>
374 #define RTE_RTOS_FreeRTOS_CONFIG /* RTOS FreeRTOS Config for FreeRTOS API */
377 <file category="doc" name="CMSIS/Documentation/General/html/cre_freertos_proj.html#native_freertos_config"/>
378 <file category="header" attr="config" name="Config/ARMCM/FreeRTOSConfig.h" version="9.0.0" condition="CoreM"/>
379 <file category="header" attr="config" name="Config/ARMCA/FreeRTOSConfig.h" version="9.0.0" condition="CoreA"/>
383 <component Cgroup="Coroutines" Cversion="9.0.0" condition="FreeRTOS Core">
384 <description>Co-routine API</description>
386 #define RTE_RTOS_FreeRTOS_COROUTINE /* RTOS FreeRTOS Co-routines */
389 <file category="header" name="Source/include/croutine.h"/>
390 <file category="source" name="Source/croutine.c"/>
394 <component Cgroup="Event Groups" Cversion="9.0.0" condition="FreeRTOS Core">
395 <description>Event Group API</description>
397 #define RTE_RTOS_FreeRTOS_EVENTGROUPS /* RTOS FreeRTOS Event Groups */
400 <file category="header" name="Source/include/event_groups.h"/>
401 <file category="source" name="Source/event_groups.c"/>
405 <component Cgroup="Timers" Cversion="9.0.0" condition="FreeRTOS Core">
406 <description>Timer API</description>
408 #define RTE_RTOS_FreeRTOS_TIMERS /* RTOS FreeRTOS Timers */
411 <file category="header" name="Source/include/timers.h"/>
412 <file category="source" name="Source/timers.c"/>
416 <component Cgroup="Heap" Cvariant="Heap_1" Cversion="9.0.0" condition="FreeRTOS Core">
417 <description>Very simple, does not permit memory to be freed.</description>
419 #define RTE_RTOS_FreeRTOS_HEAP_1 /* RTOS FreeRTOS Heap 1 */
422 <file category="source" name="Source/portable/MemMang/heap_1.c"/>
423 <file category="doc" name="http://www.freertos.org/a00111.html"/>
427 <component Cgroup="Heap" Cvariant="Heap_2" Cversion="9.0.0" condition="FreeRTOS Core">
428 <description>Permits memory to be freed, but not does coalescence adjacent free memory blocks.</description>
430 #define RTE_RTOS_FreeRTOS_HEAP_2 /* RTOS FreeRTOS Heap 2 */
433 <file category="source" name="Source/portable/MemMang/heap_2.c"/>
434 <file category="doc" name="http://www.freertos.org/a00111.html"/>
438 <component Cgroup="Heap" Cvariant="Heap_3" Cversion="9.0.0" condition="FreeRTOS Core">
439 <description>Wraps the standard malloc() and free() for thread safety.</description>
441 #define RTE_RTOS_FreeRTOS_HEAP_3 /* RTOS FreeRTOS Heap 3 */
444 <file category="source" name="Source/portable/MemMang/heap_3.c"/>
445 <file category="doc" name="http://www.freertos.org/a00111.html"/>
449 <component Cgroup="Heap" Cvariant="Heap_4" Cversion="9.0.0" condition="FreeRTOS Core" isDefaultVariant="true">
450 <description>Coalescences adjacent free memory blocks to avoid fragmentation. Includes absolute address placement option.</description>
452 #define RTE_RTOS_FreeRTOS_HEAP_4 /* RTOS FreeRTOS Heap 4 */
455 <file category="source" name="Source/portable/MemMang/heap_4.c"/>
456 <file category="doc" name="http://www.freertos.org/a00111.html"/>
460 <component Cgroup="Heap" Cvariant="Heap_5" Cversion="9.0.0" condition="FreeRTOS Core">
461 <description>Same as Heap_4, with the ability to span the heap across multiple non-adjacent memory areas.</description>
463 #define RTE_RTOS_FreeRTOS_HEAP_5 /* RTOS FreeRTOS Heap 5 */
466 <file category="source" name="Source/portable/MemMang/heap_5.c"/>
467 <file category="doc" name="http://www.freertos.org/a00111.html"/>
474 <example name="CMSIS-RTOS2 FreeRTOS Blinky" doc="Abstract.txt" folder="CMSIS/RTOS2/FreeRTOS/Examples/Blinky">
475 <description>CMSIS-RTOS2 Blinky example using FreeRTOS</description>
476 <board name="uVision Simulator" vendor="Keil"/>
478 <environment name="uv" load="Blinky.uvprojx"/>
481 <component Cclass="CMSIS" Cgroup="CORE"/>
482 <component Cclass="CMSIS" Cgroup="RTOS2"/>
483 <component Cclass="Device" Cgroup="Startup"/>
484 <category>Getting Started</category>
488 <example name="CMSIS-RTOS2 FreeRTOS Blinky CA9" doc="Abstract.txt" folder="CMSIS/RTOS2/FreeRTOS/Examples/Blinky_CA9">
489 <description>CMSIS-RTOS2 Blinky example using FreeRTOS for Cortex-A9</description>
490 <board name="ARM Fixed Virtual Platform" vendor="ARM"/>
492 <environment name="ds5" load=".project"/>
495 <component Cclass="CMSIS" Cgroup="CORE"/>
496 <component Cclass="CMSIS" Cgroup="RTOS2"/>
497 <component Cclass="Device" Cgroup="Startup"/>
498 <category>Getting Started</category>
502 <example name="Native FreeRTOS Blinky" doc="Abstract.txt" folder="CMSIS/RTOS2/FreeRTOS/Examples/Native_Blinky">
503 <description>Blinky example using FreeRTOS natively</description>
504 <board name="uVision Simulator" vendor="Keil"/>
506 <environment name="uv" load="Blinky.uvprojx"/>
509 <component Cclass="CMSIS" Cgroup="CORE"/>
510 <component Cclass="CMSIS" Cgroup="RTOS2"/>
511 <component Cclass="Device" Cgroup="Startup"/>
512 <category>Getting Started</category>