CMSIS-Zone  Version 1.2.0-alpha
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>