XMOS FreeRTOS port

Started 6Feb2020. Updated 30Apr2020.
This note is in group Technology and is meant to track what is happening on the XMOS pages about their FreeRTOS port

Also see

  1. My XMOS pages
  2. My SafeRTOS notes

Derivations

The source code, of f.ex. tasks.c (here) tells me that this is an Amazon derivation, even if it says it’s forked from https://github.com/FreeRTOS/FreeRTOS. It’s probably easy to understand once I understand it:

/*
 * FreeRTOS Kernel V10.2.1
 * Copyright (C) 2019 Amazon.com, Inc. or its affiliates.  All Rights Reserved.
 * ...
 * http://www.FreeRTOS.org
 * http://aws.amazon.com/freertos
 *
 * 1 tab == 4 spaces!
 */

FreeRTOS port for XMOS xcore-200 multicore microcontrollers

What me worrying about the role of XC?

Me worry?

MW1

8Apr2020: I see that on lib_rtos_support – which is a software library that provides support for running an RTOS on xCOREAny RTOS:

lib_soc provides a system on chip like platform in which an RTOS application may run. It allows for separation of an RTOS application from the more hardware-like xCORE libraries that run on their own cores, and a mechanism for communication between them. Common peripheral devices, including i2c and Ethernet, are provided, as well as drivers to use them from an RTOS application. Currently only FreeRTOS is supported by the RTOS drivers.

When me worry?

A library I have used a lot, the lib_i2c is at: lib_i2c.

These libraries are of course written in XC. I should not be worried about XC and xTIMEcomposer with this knowledge in mind. The quote above is also reassuring. Then I am only worried about XC and xcore.ai!

MW2

29Apr2020 (1): However, in [2] XMOS CEO Mark Lippet says (in the context of Neuromorphic Computing) that

Lippett also said any technology that involves a change in the way people think about programming systems will be faced with challenges when it comes to market. Even the

Xcore, though based on a RISC architecture, faced market challenges. Lippett said any technology that involves new programming paradigms will meet resistance.

“The key observation that we’ve made is you really need to be very close to a pre-existing, familiar programming model in order for rapid adoption to take place. So, I think that’s the challenge, to make the benefits of those technologies available from a cost perspective, but also accessible to the skills of the existing community, otherwise adoption will be very slow,” he added. “I’m comfortable that we’re not competing [with neuromorphic computing] in the very near term, but clearly it’s an exciting technology and one to watch.”

XC or not? I feel I get a tiny amount of doubt there again..

MW3

29Apr2020 (2): Not a word about XC in XCORE.AI product brief [3]. I feel the ME WORRY figure is out of scope. I should worry.

But now I have finally queried at the XCore Exchange forum (bullet 3).

MW4

In 206:[13] the author Linley Gwennap writes (below). Is the blue text about XC?

The Xcore CPU lacks an MMU, but it can run a real-time operating system such as FreeRTOS on a single thread or multiple threads. For the flexible I/O, the company supplies library code for many protocols. It also offers libraries of DSP kernels and neural-network functions. Users can create applications in high-level code and link them to these library routines. XMOS provides an LLVM compiler, Gnu debugger, linker, software-timing-closure tool, and other tools for directly programming its architecture. Note that instead of using interrupts, programmers can allocate threads to time- critical tasks; these threads can restart immediately when an input is received, eliminating interrupt latency.
..
XMOS also provides a C compiler and other tools for developing application software, including optimized libraries of DSP and voice functions, but these tools are less complete than those for Arm and even RISC-V.

XMOS FreeRTOS port on GitHub

Start here: https://github.com/xmos/FreeRTOS

Release announcement

19Jan2020: “XMOS has released an SMP (Symmetric multiprocessing) FreeRTOS port along with a peripheral support library for xcore-200 silicon devices” at: FreeRTOS port for XMOS xcore-200 multicore microcontrollers. It points to these two GitHub entries: RTOS Support Library and How to use the app_freertos_micarray_board application

But what happens to XC and xTIMEcomposer when xcore.ai?

They haven’t told. I suppose it’s ok to reveal that the whitepapers by XMOS:

    • WHY THE AIoT NEEDS A NEW KIND OF PROCESSOR. WHITEPAPER 7 FEBRUARY 2020
    • XCORE.AI. TECHNICAL OVERVIEW. WHITEPAPER 7 FEBRUARY 2020

don’t mention XC.

Silicon to Satisfy the AIoT – xcore.ai

20Feb2020. See [1]

FreeRTOS in an Erlang context

Briefly discussed at My leaf of comfort – SW / HW that cannot turn against us?

XCore Exchange forum

  1. FreeRTOS questions – 6Feb2020
  2. XMOS FreeRTOS port documentation? Plus some questions – 8Apr2020
  3. xC on xcore.ai – 30Apr2020

References

Wiki-refs:

  • English: ..

Numbered refs

  1. Silicon to Satisfy the AIoT: xcore.ai, by Max Maxfield. In EEJ, Electronic Engineering Journal, see https://www.eejournal.com/article/silicon-to-satisfy-the-aiot-xcore-ai/ (20Feb2020)
  2. Will Neuromorphic Computing Compete with Today’s AI Accelerators? by Sally Ward-Foxton in EETimes, see https://www.eetimes.com/will-neuromorphic-computing-compete-with-todays-ai-accelerators/ (13Apr2020) (Referred 29Apr2020)
  3. XCORE.AI product brief, marketing material by XMOS, see https://www.xcore.ai/wp-content/uploads/2020/04/xcore.ai-Product-Brief.pdf (2020) (Referred 29Apr2020)

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.