CMSIS-Zone (Preview)  Version 0.9.5
System Resource Management
 All Files Pages
Generator Data Model

The Generator Data Model defines the resource and partition data structure for code generators. This data structure is connected to a FreeMarker template engine and file templates allow to generate various files that can be used to configure development tools or hardware components.

generator.png
FreeMarker Template Engine

FreeMarker top-level format

system element provides memory layout and TrustZone configuration of the complete system. zone element setup information of a zone (or system partition) along with related peripherals.

FreeMarker basics

The variable types relevant for CMSIS-Zone are:

scalar: variable that stores a single value of a scalar type scalar-types:

  • string
  • int
  • bool

hash: variable that that stores one or more variables with a unique lookup name

sequence: variable that stores sub-variables without names but instead are selected via index (myVariable[index])

A variable is accessed using the dollar character followed by a variable or expression in brackets:

${...}

Output the name of the zone:

${zone.name}

A sequence gets iterated:

<#list zone.memory as mem>
Memory region name $mem.name
</#list>

Printing a sorted list of all available memory entries by start address

<#list zone.memory?sort_by("start") as mem>
${mem.start} ${mem.name}
</#list>