This section describes the CrossWorks Tasking Library which will be subsequently referred to as the CTL. The CTL provides a multi-priority, preemptive, task switching and synchronisation facility. Additionally the library provides timer, interrupt service routine and memory block allocation support.

###### In this section

Overview
  Describes the principles behind the CTL.
Tasks
  Describes how to create CTL tasks, turn the main program into a task and manage tasks.
Event sets
  Describes what a CTL event set is and how it can be used.
Semaphores
  Describes what a CTL semphore is and how it can be used.
Message queues
  Describes what a CTL message queue is and how it can be used.
Byte queues
  Describes what a CTL byte queue is and how it can be used.
Global interrupts control
  Describes how you can use CTL functions to enable and disable global interrupts.
Timer support
  Describes the timer facilities that the CTL provides.
Programmable interrupt controller support
  Describes how you can use CTL functions on systems that have programmable interrupt controller hardware.
Low level interrupt service routine support
  Describes how to write interrupt service routines that co-exist with the CTL.
Memory block allocation support
  Describes how you can use the CTL to allocate fixed sized memory blocks.

###### Related sections

<ctl_api.h> - CTL functions
  The reference for each of the functions and variables defined by the CTL.
Threads window
  A scriptable debugger window that displays the threads of a running program together with their state.