CMSIS-Zone
Version 1.2.0-alpha
System Resource Management
|
The available memory can be further divided into smaller regions that are later assigned to zones, for example a zone for loader and zone for application.
For memory and peripherals properties such as access permission, privilege, and security level can be configured. These settings can be for example used to generate source code files that configure the device at run-time.
Initially, this uses the information in the *.rzone file which defines the generic access permissions for memory and peripherals. The CMSIS-Zone Editor shows the Resource Map of the given device:
Here, you can see all resources that are available on the device.You see Memory, Peripherals, Cores, and Info related to the resources. Colored resources are assigned to a zone.
To create a new memory region, right-click on the memory that you want to divide and select Add memory region:
In the dialog a name derived from the parent memory region is provided. Change this region name as needed and specify the size. In this dialog, you change permissions, privilege, or security level for the memory region. When done, click Finish:
The new memory region is immediately shown in the zone map. Depending on the security level, you may be able to assign this new region only to certain zones. For example, secure memory regions cannot be assigned to a non-secure zone.
The information about the memory regions is stored in the /azone/partition/memory element element of the *.azone file.
To delete a memory region, right-click on the memory region select Delete memory region:
To change the properties of a resource, such as a peripheral for example, right-click the resource and select Properties:
Then, you can set these properties:
General
Shared:
the resource can be accessed by more than one zoneStartup:
locate the vector table to this regionNo
zero init: preserve RAM content at startupDMA:
enable direct memory accessPermissions
peripheral:
mark this as a peripheralread
write
execute
Privilege
not
specifiedprivileged
unprivileged
Security
not
specifiednon-secure
non-secure
callablesecure
The information about the peripherals is stored in the /azone/partition/peripheral element element of the *.azone file.
Peripherals can have so called slots that can be configured separately. Depending on the peripheral, the slots have different names in the Zone Editor. For example, for DMA they are called Channels:
For GPIOs, they are called Pins:
In the dialog, you can set security and privilege levels:
The information about the slots is stored in the /azone/partition/peripheral/slot element element of the *.azone file.