This document provides a consolidated guide on how to program XMOS devices.
The xCORE architecture delivers, in hardware, many of the elements that you would normally see in a real-time operating system (RTOS). This includes the task scheduler, timers, and channel communication as well as providing separate logical processor cores for the real-time tasks. The benefit of this is that real-time systems become much more predictable, much more scalable and respond much faster than conventional RTOS based sequential processor systems.
The software environment complements these hardware features by providing tools that makes it easy to define real-time tasks as a parallel system. The xTIMEcomposer tools come with fully standards compliant C and C++ compilers plus the standard language libraries, an IDE, simulator, symbolic debugger, runtime instrumentation and trace libraries and a static code timing analyzer (XTA). All of the components are aware of the real-time multicore nature of the programs, giving a fully integrated approach.
To help programmers access the real-time hardware features some easy to use, yet powerful, multicore language extensions for C have been added. These extensions form a programming language called xC which contains features for task based parallelism and communication, accurate timing and I/O, and safe memory management.