<?xml version="1.0" encoding="utf-8"?>

<package schemaVersion="1.2" xmlns:xs="http://www.w3.org/2001/XMLSchema-instance" xs:noNamespaceSchemaLocation="PACK.xsd">
  <vendor>Hitex</vendor>
  <name>CMSIS_RTOS_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.1.0">
     Updated to work with SM32F1xx pack 2.0.0
    </release>
    <release version="1.0.3">
     First Release
    </release>
  </releases>

  <keywords>
    <!-- keywords for indexing -->
    <keyword>insert_keyword_for_search_engines</keyword>
  </keywords>

  <boards>
  <board vendor="Hitex" name="CMSIS_RTOS_Tutorial" revision="V1.1.0" >
      <description>Simulation examples for CMSIS RTOS Tutorial</description>
      <mountedDevice deviceIndex="0" Dvendor="STMicroelectronics:13" Dname="STM32F103RB"/>
      <book category="manual" name="Documentation\CMSIS_RTOS_Tutorial.pdf" title="CMSIS RTOS Tutorial"/>
  </board>
  </boards>

  <examples>
  	<example name="Ex 1 First project" folder="Examples\Exercise 1 First Project " doc="Abstract.txt" version="1.0">
      <description>Creating a first CMSIS RTOS Project</description>
      <board vendor="Hitex" name="CMSIS_RTOS_Tutorial"/>
      <project>
        <environment name="uv"  load="CMSISrtxFirstProject.uvprojx"/>
      </project>
      <attributes>
        <component Cclass="CMSIS" Cgroup="CORE"/>
        <component Cclass="Device" Cgroup="Startup"/>
      </attributes>
    </example>
    <example name="Ex 2 and 3 Threads" folder="Examples\Exercise 2 and 3 Creating and Managing Threads" doc="Abstract.txt" version="1.0">
      <description>Creating Threads and managing Thread priority</description>
      <board vendor="Hitex" name="CMSIS_RTOS_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 4 Multiple Instances" folder="Examples\Exercise 4 Multiple Thread Instances" doc="Abstract.txt" version="1.0">
      <description>Creating and Managing threads</description>
      <board vendor="Hitex" name="CMSIS_RTOS_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 5 Time Management" folder="Examples\Exercise 5 Time Management" doc="Abstract.txt" version="1.0">
      <description>How to use the osDelay function for time delays</description>
      <board vendor="Hitex" name="CMSIS_RTOS_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 6 Virtual Timers" folder="Examples\Exercise 6 Virtual Timer" doc="Abstract.txt" version="1.0">
      <description>Creating virtual timers for periodic code execution</description>
      <board vendor="Hitex" name="CMSIS_RTOS_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 7 Idle Thread" folder="Examples\Exercise 7 Idle Thread" doc="Abstract.txt" version="1.0">
      <description>Creating and Managing threads</description>
      <board vendor="Hitex" name="CMSIS_RTOS_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 8 Signals" folder="Examples\Exercise 8 Signals" doc="Abstract.txt" version="1.0">
      <description>Using Signals to trigger activity between Threads</description>
      <board vendor="Hitex" name="CMSIS_RTOS_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 9 Interrupt Signal" folder="Examples\Exercise 9 Interrupt Signal" doc="Abstract.txt" version="1.0">
      <description>Using signals to trigger threads from an Interrupt Service Routine</description>
      <board vendor="Hitex" name="CMSIS_RTOS_Tutorial"/>
      <project>
        <environment name="uv"  load="CMSISrtxInterruptSignal.uvprojx"/>
      </project>
      <attributes>
        <component Cclass="CMSIS" Cgroup="CORE"/>
        <component Cclass="Device" Cgroup="Startup"/>
      </attributes>
    </example>
    <example name="Ex 10 Supervisor Call" folder="Examples\Exercise 10 Interrupt_SVC" doc="Abstract.txt" version="1.0">
      <description>Using a Supervisor call to access the CPU priviliged operating mode</description>
      <board vendor="Hitex" name="CMSIS_RTOS_Tutorial"/>
      <project>
        <environment name="uv"  load="CMSISrtxInterruptSVC.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="Abstract.txt" version="1.0">
      <description>Creating and using a Semaphore for simple signalling between Threads</description>
      <board vendor="Hitex" name="CMSIS_RTOS_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="Abstract.txt" version="1.0">
      <description>Using semaphores to create a thread multiplex</description>
      <board vendor="Hitex" name="CMSIS_RTOS_Tutorial"/>
      <project>
        <environment name="uv"  load="CMSISrtxSemaphoreMultiplex.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="Abstract.txt" version="1.0">
      <description>Using two semaphores to synchronize two threads at a rendezvous point</description>
      <board vendor="Hitex" name="CMSIS_RTOS_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="Abstract.txt" version="1.0">
      <description>Using semaphores to create an execution barrier for multiple Threads</description>
      <board vendor="Hitex" name="CMSIS_RTOS_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="Abstract.txt" version="1.0">
      <description>Using a Mutex to control Thread access to a periperal resource</description>
      <board vendor="Hitex" name="CMSIS_RTOS_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="Abstract.txt" version="1.0">
      <description>How to create a message queue to send data between two threads </description>
      <board vendor="Hitex" name="CMSIS_RTOS_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 Memory Pool " folder="Examples\Exercise 17 MemoryPool" doc="Abstract.txt" version="1.0">
      <description>Creating a memory pool of formatted buffers </description>
      <board vendor="Hitex" name="CMSIS_RTOS_Tutorial"/>
      <project>
        <environment name="uv"  load="CMSISrtxMemoryPool.uvprojx"/>
      </project>
      <attributes>
        <component Cclass="CMSIS" Cgroup="CORE"/>
        <component Cclass="Device" Cgroup="Startup"/>
      </attributes>
    </example>
    <example name="Ex 18 Mail Box " folder="Examples\Exercise 18 Mailbox" doc="Abstract.txt" version="1.0">
      <description>Creating a zero copy mailbox system to send blocks of data between threads</description>
      <board vendor="Hitex" name="CMSIS_RTOS_Tutorial"/>
      <project>
        <environment name="uv"  load="CMSISrtxMailbox.uvprojx"/>
      </project>
      <attributes>
        <component Cclass="CMSIS" Cgroup="CORE"/>
        <component Cclass="Device" Cgroup="Startup"/>
      </attributes>
    </example>
        
  </examples> 
 </package>
