CMSIS-Zone (Preview)  Version 0.9.0
System Resource Management
 All Files Pages
CMSIS-Zone (Preview) Documentation

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, peripherals and related interrupts. The system resources and partition assignments are stored in Zone Description Format (XML based).

CMSIS-Zone includes a utility that manages these XML files. This utility:

  • displays all available system resources including memory and peripherals
  • allows to partition memory and assign resources to sub-systems.
  • supports the setup of secure, non-secure, and MPU protected execution zones with assignment of memory, peripherals, and interrupts.
  • provides a data model for generation of configuration files for tool and hardware setup.

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

Partitioning_Workflow.png
CMSIS-Zone development workflow

The CMSIS-Zone utility reads a .rzone file that defines the overall system resources of an SoC system. An interactive GUI supports the system partitioning. The assignments of the various partitions (also called zones) saved in the .azone file.

The combined information of resources and assignments can be exported to multiple .rzone files that represent a sub-system. By using file templates the CMSIS-Zone utility can create tool or hardware configuration files.

It is possible to uses these steps multiple times which allows to split a complex SoC design with multiple processors into smaller sub-systems. For example a multi-core device can be partitioned in steps:

  • Step 1: split the multi-processor system into single processor sub-systems.
  • Step 2: create the partitions for secure and non-secure execution.
  • Step 3: configure MPU protected execution zones.

The following SoC diagram exemplifies step 1 and step 2 of this workflow.

Partitioning_Hardware.png
Hardware partitioning in multiple steps

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.png
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.png
TrustZone Partitioning and MPU Protection

Multi-Core Partitioning

Beside traditional single cores asymmetric 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 misbehavior.

multicore.png
Multi-Core Partitioning