Skip to content

Total Solutions applications

Contents

Introduction

Arm IoT Total Solutions provides a complete solution designed for specific use-cases, leaving developers to focus on what really matters - innovation and differentiation across diverse and varied use cases. It has everything needed to simplify the design process and streamline product development, including: * Hardware IP * Software * Real-time OS support * Machine learning (ML) models * Advanced tools such as the new Arm Virtual Hardware * Application specific reference code * Support from the world's largest IoT ecosystem.

It provides applications running in secure and non-secure partitions controlled with TrustedFirmware-M (TF-M).

The applications are based on Arm's Corstone SSE-300 and Corstone SSE-310 reference platforms which hardware abstraction layers (HALs) are provided with an implementation of the CMSIS-Driver API in CMSIS-Pack.

Total Solutions applications have been validated to run on emulations known as Fast Models Fixed Virtual Platforms (FVP) and Arm Virtual Hardware (AVH): * Corstone SSE-300 FVP * Corstone SSE-310 FVP * Arm Virtual Hardware

TF-M and MDH-ARM are made available to applications through The Open IoT SDK which refers to them as components. The Open IoT SDK is a one-stop project from which all necessary components to build a fully fledged IoT application (from device drivers to commercial cloud platforms connection) are made available. It also provides libraries to seamlessly integrate these components with end users applications. Component selection is done by listing the component to fetch in the IOTSDK_FETCH_LIST CMake variable.

Overview

The following Total Solutions applications demonstrate the latest Arm technlogies:

  • Blinky - periodically blinks a set of LEDs
  • Keyword - takes in an audio clip and uses a machine learning model to spot keywords and use them to control the state of LEDs
  • Speech - takes in an audio clip and uses a machine learning model to output a transcript of spoken sentences
  • Benchmark - draws on the screen to demonstrate numerous features of Arm-2D graphic library
  • Watch Panel - uses the Arm-2D graphic library to draw a clock

All of the applications above have TrustedFirmware-M enabled in their systems. They come with support for building them with Arm Compiler for Embedded using CMake. Though TS-PixelGraphics also comes with GNU Arm Embedded Toolchain support.

The following Total Solutions application demonstrates the basic use of the Open IoT SDK without the latest technologies (such as TrustedFirmware-M) enabled:

  • [Blinky Example][blinky-example] - periodically blinks an LED

Building Blinky Example is only supported with GNU Arm Embedded Toolchain.

As memory region organization is intrinsic to the application, linker scripts are not provided by the Open IoT SDK. Blinky, Keyword and Speech share the same linker scripts (also known as scatter files for Arm Compiler for Embedded) whether building for Corstone SSE-300 or Corstone SSE-310. Benchmark and Watch Panel contain linker scripts for both platforms in their respective subdirectories. Blinky Example contains linker scripts for Cortex-M4 SMM and Corstone SSE-300.

Keyword and Speech

These applications run on top of a Real-Time Operating System (RTOS) to orchestrate the different threads. CMSIS-RTOS RTX, FreeRTOS, and Azure RTOS ThreadX are currenty supported.

The Keyword and Speech applications use Machine Learning (ML) inference models provided by Arm ML embedded evaluation kit. The Arm ML embedded evaluation kit targets Arm Cortex-M CPUs and Arm Ethos-U NPUs. The applications can connect to Cloud Service Provider (CSP) platforms to broadcast the ML inference results to the cloud in an MQTT topic. The applications can also process Over-The-Air (OTA) update requests from CSP platforms and securely apply updates using the PSA Firmware Update API.

The CSP platforms currently supported are: * Amazon Web Services (AWS) * Microsoft Azure

As connection to the CSP platforms (also know as endpoint) uses different networking stacks, the applications include specific source files depending on whether building to connect to AWS or Azure. The rest of this section will have hyperlinks for the Keyword application, however, the same is also true for the Speech application. The application source files that are specific to an endpoint are prefixed with either aws_* or azure_* and are selected in CMake depending on the endpoint select when running the build script. The main() function is the same regardless of the endpoint.

For more infomation including RTOS and endpoint compatibility, read the build instructions.

Arm-2D Benchmark and Watch Panel

The Arm-2D library provides low level 2D image processing services mainly used in deeply embedded display systems. The rendering performance is accelerated by the latest features of the Arm Cortex-M processors, most notably Arm Helium (also known as the M-Profile Vector Extension, MVE). Arm Helium is part of the latest Armv8.1-M architecture implemeneted by the Cortex-M55 processor (available on Corstone SSE-300) and the Cortex-M85 processor (available on Corstone SSE-310), although earlier generations of Cortex-M processors without Helium are also supported by Arm-2D.

The Benchmark and Watch Panel applications use the Arm-2D API to draw complex animation frames and display the frames on the LCD panels of Corstone SSE-300 and Corstone SSE-310 Fast Model Fixed Virtual Platforms.