CMSIS-Zone: Memory and Peripheral Resources

| CMSIS-Zone Version 1.0.0 System Resource Management

- Main Page
- Usage and Description

All Files Pages
Memory and Peripheral Resources

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.

# View memory and peripheral resources

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.

# Create Memory Regions

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.

# Delete Memory Regions

To delete a memory region, right-click on the memory region select Delete memory region:

# Resource Properties

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 zone
- `Startup:` locate the vector table to this region
- `No` zero init: preserve RAM content at startup
- `DMA:` enable direct memory access

Permissions

- `peripheral:` mark this as a peripheral
- `read`
- `write`
- `execute`

Privilege

- `not` specified
- `privileged`
- `unprivileged`

Security

- `not` specified
- `non-secure`
- `non-secure` callable
- `secure`

The information about the peripherals is stored in the /azone/partition/peripheral element element of the *.azone file.

# Configure peripheral slot access rights

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.