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 LEDsKeyword
- takes in an audio clip and uses a machine learning model to spot keywords and use them to control the state of LEDsSpeech
- takes in an audio clip and uses a machine learning model to output a transcript of spoken sentencesBenchmark
- draws on the screen to demonstrate numerous features ofArm-2D
graphic libraryWatch Panel
- uses theArm-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.