<?xml version="1.0" encoding="utf-8"?>

<package schemaVersion="1.6.2" xmlns:xs="http://www.w3.org/2001/XMLSchema-instance" xs:noNamespaceSchemaLocation="PACK.xsd">
  <vendor>Hitex</vendor>
  <name>CMSIS_RTOS2_Tutorial</name>
  <description>An Introduction to using CMSIS RTOS for Cortex-M Microcontrollers</description>
  <url>http://www.keil.com/pack/</url>
  <supportContact>tmartin@hitex.co.uk</supportContact>
  <!-- optional license file -->
   
  <license>License\License.txt</license>

  
  <releases>
    <release version="1.0.0" date="2020-03-24">
      Initial release for CMSIS-RTOS2 (Keil RTX5).
    </release>
  </releases>

  <keywords>
    <!-- keywords for indexing -->
    <keyword>CMSIS</keyword>
	  <keyword>CMSIS-RTOS2</keyword>
  </keywords>

  <boards>
  <board vendor="Hitex" name="CMSIS_RTOS2_Tutorial" revision="V2.1">
      <description>Simulation examples for CMSIS RTOS2 Tutorial</description>
      <mountedDevice deviceIndex="0" Dvendor="STMicroelectronics:13" Dname="STM32F103RB"/>
   </board>
  </boards>

  <examples>
  	<example name="Ex 01 First project" folder="Examples/Exercise 1 First Project" doc="Instructions.pdf" version="1.0">
      <description>Creating a first CMSIS RTOS Project</description>
      <board vendor="Hitex" name="CMSIS_RTOS2_Tutorial"/>
      <project>
        <environment name="uv"  load="First Project.uvmpw"/>
      </project>
      <attributes>
        <component Cclass="CMSIS" Cgroup="CORE"/>
        <component Cclass="Device" Cgroup="Startup"/>
      </attributes>
    </example>
	
    <example name="Ex 02 Threads" folder="Examples/Exercise 2 Creating and Managing Threads" doc="Instructions.pdf" version="1.0">
      <description>Creating Threads and managing Thread priority</description>
      <board vendor="Hitex" name="CMSIS_RTOS2_Tutorial"/>
      <project>
        <environment name="uv"  load="CMSISrtxThreads.uvprojx"/>
      </project>
      <attributes>
        <component Cclass="CMSIS" Cgroup="CORE"/>
        <component Cclass="Device" Cgroup="Startup"/>
      </attributes>
	</example>
	
	<example name="Ex 03 Memory Model" folder="Examples/Exercise 3 Memory model" doc="Instructions.pdf" version="1.0">
      <description>Creating Threads in different memory objects</description>
      <board vendor="Hitex" name="CMSIS_RTOS2_Tutorial"/>
      <project>
        <environment name="uv"  load="CMSISrtxThreads.uvprojx"/>
      </project>
      <attributes>
        <component Cclass="CMSIS" Cgroup="CORE"/>
        <component Cclass="Device" Cgroup="Startup"/>
      </attributes>  
    </example>
	
	<example name="Ex 04 Multiple Instances" folder="Examples/Exercise 4 Multiple Thread Instances" doc="Instructions.pdf" version="1.0">
      <description>Creating and Managing multiple thread instances</description>
      <board vendor="Hitex" name="CMSIS_RTOS2_Tutorial"/>
      <project>
        <environment name="uv"  load="CMSISrtxMultipleInstance.uvprojx"/>
      </project>
      <attributes>
        <component Cclass="CMSIS" Cgroup="CORE"/>
        <component Cclass="Device" Cgroup="Startup"/>
      </attributes>
    </example>
	
	<example name="Ex 05 Join" folder="Examples/Exercise 5 Join" doc="Instructions.pdf" version="1.0">
      <description>creating worker threads and the join function </description>
      <board vendor="Hitex" name="CMSIS_RTOS2_Tutorial"/>
      <project>
        <environment name="uv"  load="CMSISrtxThreads.uvprojx"/>
      </project>
      <attributes>
        <component Cclass="CMSIS" Cgroup="CORE"/>
        <component Cclass="Device" Cgroup="Startup"/>
      </attributes>
	  </example>
	  
    <example name="Ex 06 Time Management" folder="Examples/Exercise 6 Time Management" doc="Instructions.pdf" version="1.0">
      <description>How to use the osDelay function for time delays</description>
      <board vendor="Hitex" name="CMSIS_RTOS2_Tutorial"/>
      <project>
        <environment name="uv"  load="CMSISrtxTimeManagement.uvprojx"/>
      </project>
      <attributes>
        <component Cclass="CMSIS" Cgroup="CORE"/>
        <component Cclass="Device" Cgroup="Startup"/>
      </attributes>
    </example>
	
    <example name="Ex 07 Virtual Timers" folder="Examples/Exercise 7 Virtual Timer" doc="Instructions.pdf" version="1.0">
      <description>Creating virtual timers for periodic code execution</description>
      <board vendor="Hitex" name="CMSIS_RTOS2_Tutorial"/>
      <project>
        <environment name="uv"  load="CMSISrtxTimer.uvprojx"/>
      </project>
      <attributes>
        <component Cclass="CMSIS" Cgroup="CORE"/>
        <component Cclass="Device" Cgroup="Startup"/>
      </attributes>
    </example>
	
    <example name="Ex 08 Idle Thread" folder="Examples/Exercise 8 Idle Thread" doc="Instructions.pdf" version="1.0">
      <description>Run time power management with the Idle Thread</description>
      <board vendor="Hitex" name="CMSIS_RTOS2_Tutorial"/>
      <project>
        <environment name="uv"  load="CMSISrtxIdle.uvprojx"/>
      </project>
      <attributes>
        <component Cclass="CMSIS" Cgroup="CORE"/>
        <component Cclass="Device" Cgroup="Startup"/>
      </attributes>
    </example>
	
	<example name="Ex 09 Thread Flags" folder="Examples/Exercise 9 Thread Flags" doc="Instructions.pdf" version="1.0">
      <description>Using Thread Flags to trigger activity between Threads</description>
      <board vendor="Hitex" name="CMSIS_RTOS2_Tutorial"/>
      <project>
        <environment name="uv"  load="CMSISrtxThreadFlags.uvprojx"/>
      </project>
      <attributes>
        <component Cclass="CMSIS" Cgroup="CORE"/>
        <component Cclass="Device" Cgroup="Startup"/>
      </attributes>
	  </example> 
		
	<example name="Ex 10 Event Flags" folder="Examples/Exercise 10 Event Flags" doc="Instructions.pdf" version="1.0">
      <description>Using Thread Flags to trigger activity between Threads</description>
      <board vendor="Hitex" name="CMSIS_RTOS2_Tutorial"/>
      <project>
        <environment name="uv"  load="CMSISrtxSignals.uvprojx"/>
      </project>
      <attributes>
        <component Cclass="CMSIS" Cgroup="CORE"/>
        <component Cclass="Device" Cgroup="Startup"/>
      </attributes>
    </example>
	
    <example name="Ex 11 Semaphore Signaling" folder="Examples/Exercise 11 Semaphore Signalling" doc="Instructions.pdf" version="1.0">
      <description>Creating and using a Semaphore for simple signalling between Threads</description>
      <board vendor="Hitex" name="CMSIS_RTOS2_Tutorial"/>
      <project>
        <environment name="uv"  load="CMSISrtxSemaphore.uvprojx"/>
      </project>
      <attributes>
        <component Cclass="CMSIS" Cgroup="CORE"/>
        <component Cclass="Device" Cgroup="Startup"/>
      </attributes>
    </example>
	
    <example name="Ex 12 Multiplex" folder="Examples/Exercise 12 Multiplex" doc="Instructions.pdf" version="1.0">
      <description>Using two semaphores to synchronize two threads at a rendezvous point</description>
      <board vendor="Hitex" name="CMSIS_RTOS2_Tutorial"/>
      <project>
        <environment name="uv"  load="CMSISrtxMultiplex.uvprojx"/>
      </project>
      <attributes>
        <component Cclass="CMSIS" Cgroup="CORE"/>
        <component Cclass="Device" Cgroup="Startup"/>
      </attributes>
    </example>
	
	 <example name="Ex 13 Rendezvous" folder="Examples/Exercise 13 Rendezvous" doc="Instructions.pdf" version="1.0">
      <description>Using two semaphores to synchronize two threads at a rendezvous point</description>
      <board vendor="Hitex" name="CMSIS_RTOS2_Tutorial"/>
      <project>
        <environment name="uv"  load="CMSISrtxSemaphoreRendezvous.uvprojx"/>
      </project>
      <attributes>
        <component Cclass="CMSIS" Cgroup="CORE"/>
        <component Cclass="Device" Cgroup="Startup"/>
      </attributes>
    </example>
	
    <example name="Ex 14 Barrier" folder="Examples/Exercise 14 Barrier" doc="Instructions.pdf" version="1.0">
      <description>Using semaphores to create an execution barrier for multiple Threads</description>
      <board vendor="Hitex" name="CMSIS_RTOS2_Tutorial"/>
      <project>
        <environment name="uv"  load="CMSISrtxSemaphoreBarrier.uvprojx"/>
      </project>
      <attributes>
        <component Cclass="CMSIS" Cgroup="CORE"/>
        <component Cclass="Device" Cgroup="Startup"/>
      </attributes>
    </example>
	
    <example name="Ex 15 Mutex" folder="Examples/Exercise 15 Mutex" doc="Instructions.pdf" version="1.0">
      <description>Using a Mutex to control Thread access to a periperal resource</description>
      <board vendor="Hitex" name="CMSIS_RTOS2_Tutorial"/>
      <project>
        <environment name="uv"  load="CMSISrtxMutex.uvprojx"/>
      </project>
      <attributes>
        <component Cclass="CMSIS" Cgroup="CORE"/>
        <component Cclass="Device" Cgroup="Startup"/>
      </attributes>
    </example>
	
    <example name="Ex 16 Message Queue" folder="Examples/Exercise 16 Message Queue" doc="Instructions.pdf" version="1.0">
      <description>How to create a message queue to send data between two threads </description>
      <board vendor="Hitex" name="CMSIS_RTOS2_Tutorial"/>
      <project>
        <environment name="uv"  load="CMSISrtxMessageQueue.uvprojx"/>
      </project>
      <attributes>
        <component Cclass="CMSIS" Cgroup="CORE"/>
        <component Cclass="Device" Cgroup="Startup"/>
      </attributes>
    </example>
	
    <example name="Ex 17 Extended Message Queue" folder="Examples/Exercise 17 Large Message Queue" doc="Instructions.pdf" version="1.0">
      <description>Extending the size of data items that can be posted to a message queue </description>
      <board vendor="Hitex" name="CMSIS_RTOS2_Tutorial"/>
      <project>
        <environment name="uv"  load="CMSISrtxMessageQueue.uvprojx"/>
      </project>
      <attributes>
        <component Cclass="CMSIS" Cgroup="CORE"/>
        <component Cclass="Device" Cgroup="Startup"/>
      </attributes>
    </example>
	
    <example name="Ex 18 Zero Copy Mailbox" folder="Examples/Exercise 18 Zero Copy Mailbox" doc="Instructions.pdf" version="1.0">
      <description>Creating a zero copy mailbox system to send blocks of data between threads</description>
      <board vendor="Hitex" name="CMSIS_RTOS2_Tutorial"/>
      <project>
        <environment name="uv"  load="CMSISrtxMemoryPool.uvprojx"/>
      </project>
      <attributes>
        <component Cclass="CMSIS" Cgroup="CORE"/>
        <component Cclass="Device" Cgroup="Startup"/>
      </attributes>
    </example>
	
  </examples> 
  
 </package>
