CMSIS-Zone (Preview) Documentation

This is a preview of CMSIS-Zone which is scheduled for release in Q1'2018. The final release of CMSIS-Zone will provide:

  • Zone Description Format (XML based) which stores consistent system setup information.
  • CMSIS-Zone configuration utility for system partitioning. The data captured can be exported to various project and configuration files using file templates.

CMSIS-Zone defines methods to describe system resources and to partition these resources into multiple projects and execution areas. The system resources may include multiple processors, memory areas, and peripherals. The system resource and partitioning information is stored in Zone Description Format (XML based).

CMSIS-Zone includes an interactive tool that manages files in the Zone Description Format which allows to:

  • create system resource information from existing CMSIS-SVD and CMSIS-Pack descriptions.
  • partition system resources into various project zones.
  • partition a project zone into multiple execution zones.
  • generate various configuration files for tool set-up and hardware initialization.

The following diagram explains the development flow when using the CMSIS-Zone management tool.

CMSIS-Zone Development Flow

The following sections explain:

  • Zone Description Format (XML based) that stores system resource information and the configuration of project zones and execution zones.
  • Generator Data Model which is used to create tool set-up files and hardware configuration files.

CMSIS-Zone Use Cases

CMSIS-Zone simplifies to manage the complexity and the configuration of modern embedded systems that frequently include multiple processors and/or memory protection hardware. It helps to split the embedded application various projects which creates the need to partition system resources. And it simplifies the consistent configuration of access rights across the system, for example when using an MPU (memory protection unit).

The following section describes several uses cases that benefit from CMSIS-Zone.

MPU Protection

Focused on a single core microcontroller one might want to utilize the memory protection unit (MPU) capabilities to segregate parts of an application. Thus the need to partition the system resources accordingly arises.

MPU Protection

TrustZone Partitioning

TrustZone extensions add another degree of segregation which must be handled consistently. In this case one has to handle MPU settings per security context and SAU configuration.

TrustZone Partitioning and MPU Protection

Multi-Core Partitioning

Beside traditional single cores asymetric and hybrid multi-core devices contribute to increasing development complexity for embedded systems. Having multiple cores running different parts of an application concurrently needs a well defined resource assignment to prevent undesired misbehaviour.

Multi-Core Partitioning