CMSIS-Zone: /rzone/resources/peripherals element

| CMSIS-Zone Version 1.2.0-alpha System Resource Management

- Main Page
- Usage and Description

All Files Pages
/rzone/resources/peripherals element

The /rzone/resources/peripherals element contains a list of all peripherals available in the system. It also restricts the availability to specific processors or security modes.

Example

<resources>
:
<peripherals>
<peripheral name="ADC0" start="0x40080000" size="0x1000" access="rwp" info="Analog/Digital Converter 0 (12-bit)"/>
:
<group name="TIM" info="Timer Group">
<peripheral name="TIM1" start="0x40012c00" start_s="0x50012c00" size="0x400" access="rw">
<interrupt name="TIM1_BRK" irqn="41" info="Timer 1 Break"/>
<interrupt name="TIM1_UP" irqn="42" info="Timer 1 Update"/>
<interrupt name="TIM1_BRK" irqn="43" info="Timer 1 Trigger and Commutation"/>
<interrupt name="TIM1_CC" irqn="44" info="Timer 1 Capture and Compare"/>
</peripheral>
<peripheral name="TIM2" start="0x40000000" start_s="0x50000000" size="0x400" access="rw">
<interrupt name="TIM2" irqn="45" info="Timer2 Global Interrupt"/>
</peripheral>
</group>
</peripherals>
</resources>

Parent Element | Element Chain
--- | ---
resources | /rzone/resources element
Child Elements | Description | Type | Occurrence
group | Logical grouping of peripherals. | complexType | 0..*
peripheral | Peripheral definitions. | complexType | 0..*

# /rzone/resources/peripherals/group element

The /rzone/resources/peripherals/group element can be used to logically group peripherals according to functionality or bus topology.

Parent Element | Element Chain
--- | ---
peripherals | /rzone/resources/peripherals element
Attributes | Description | Type | Use
name | The name for the peripheral group must be be unique within a processor (specified by Pname). | xs:string | required
start | The logical start address of the peripheral group in both secure and non-secure mode. | xs:string | required
start_s | The logical start address of the peripheral group in secure mode only. | xs:string | optional
physical | The physical start address of the peripheral group (in case that peripheral is shared in multi-processor system on different address). | xs:string | optional
size | The physical size of the peripheral group in bytes. | xs:string | required
shared | "1" specifies that this peripheral group is used by multiple zones. Default value is "0". | xs:boolean | optional
dma | "1" specifies that this peripheral group is accessed by a DMA controller. Default value is "0". | xs:boolean | optional
external | "1" specifies that this peripheral group is provided by an external component that is not part of the device. Default value is "0". | xs:boolean | optional
Pname | The processor that can access this peripheral group. If omitted all processors of the system have access. | xs:string | optional
access | Access permissions for this peripheral group. | AccessType | optional
security | Security attributes for this peripheral group. | SecurityType | optional
privilege | Privilege level for this peripheral group. | PrivilegeType | optional
info | Brief description of the peripheral group. | xs:string | optional
Child Elements | Description | Type | Occurrence
peripheral | Peripheral definitions. | complexType | 0..*
setup | Setup information for the peripheral group. | complexType | 0..*

# /rzone/resources/peripherals/.../peripheral element

The /rzone/resources/peripherals/.../peripheral element is used to define an address mapping for one peripheral.

Parent Element | Element Chain
--- | ---
peripherals | /rzone/resources/peripherals element
group | /rzone/resources/peripherals/group element
Attributes | Description | Type | Use
name | The name of the peripheral. The combination group / name must be be unique within a processor (specified by Pname). | xs:string | required
start | The logical start address of the peripheral in both secure and non-secure mode. | xs:string | optional
start_s | The logical start address of the peripheral in secure mode only. | xs:string | optional
physical | The physical start address of the peripheral (in case that peripheral is shared in multi-processor system on different address). | xs:string | optional
offset | Specifies an offset for the peripheral for the /rzone/resources/peripherals/group element values. The values start, start_s, physical are taken from the /rzone/resources/peripherals/group element element if not overwritten. | xs:string | optional
size | The physical size of the peripheral in bytes. | xs:string | required
shared | "1" specifies that this peripheral group is used by multiple zones. Default value is "0". | xs:boolean | optional
dma | "1" specifies that this peripheral group is accessed by a DMA controller. Default value is "0". | xs:boolean | optional
external | "1" specifies that this peripheral is provided by an external component that is not part of the device. Default value is "0". | xs:boolean | optional
Pname | The processor that can access this peripheral. If omitted all processors of the system have access. | xs:string | optional
access | Access permissions for this peripheral. | AccessType | optional
security | Security attributes for this peripheral. | SecurityType | optional
privilege | Privilege level for this peripheral. | PrivilegeType | optional
info | Brief description of the peripheral. | xs:string | optional
slot_name | Attribute name of the slot (i.e. Pins or Channels). Used in context menu or dialog heading. | xs:string | optional

slot_type

Specifies the values that are configured for the slots:

- type="s" : (default) only the secure attribute is configured.
- type="p" : only the Privileged attribute is configured.
- type="sp" : both the Secure are Privileged attribute are configured.

SlotTypeEnum

optional

Child Elements | Description | Type | Occurrence
slot | Configuration of security or privileged attribute for slots (typically channels or pins). | complexType | 0..*
interrupt | Interrupts generated by this peripheral. | complexType | 0..*
setup | Setup information for the peripheral. | complexType | 0..*

# /rzone/resources/peripherals/.../peripheral/slot element

The /rzone/resources/peripherals/.../peripheral/slot element is specific to a channel or pin of a peripheral. It specifies the configuration for interrupts or setup registers that belong to that slot (which is typically a channels or pins).

Parent Element | Element Chain
--- | ---
peripheral | /rzone/resources/peripherals/.../peripheral element
Attributes | Description | Type | Use
name | The name of the slot (typically channel or pin name). | xs:string | required
secure | Setting of the secure attribute (default="0"). | xs:boolean | optional
privilege | Setting of the privilege attribute (default="0"). | xs:boolean | optional
Child Elements | Description | Type | Occurrence
interrupt | Interrupts generated by this peripheral. | complexType | 0..*
setup | Setup information for the peripheral. | complexType | 0..*

# /rzone/resources/peripherals/.../interrupt element

The /rzone/resources/peripherals/.../interrupt element defines the interrupts that are generated by a peripheral or slot.

Parent Element | Element Chain
--- | ---
peripheral | /rzone/resources/peripherals/.../peripheral element
Attributes | Description | Type | Use
name | The name of the interrupt. | xs:string | required
irqn | The interrupt number. | xs:string | required
info | Brief description of the peripheral. | xs:string | optional

# /rzone/resources/peripherals/.../setup element

The /rzone/resources/peripherals/.../setup element defines the setup information for this peripheral, slot, or peripheral group. The attributes security and privilege specifies conditions. When the peripheral is specified for on the the conditions, the value is assigned to the register name (with an optional index).

Parent Element | Element Chain
--- | ---
peripheral | /rzone/resources/peripherals/.../peripheral element
group | /rzone/resources/peripherals/group element
Attributes | Description | Type | Use
name | The name of the register. | xs:string | required
index | An index value for the register. | xs:string | required
value | The value that should be written to the register when the security or privilege condition matches with the peripheral configuration. | xs:string | required
security | Security condition for this setup value. Security can be "s" or "n". When a peripheral matches that security setting the value will be written. | SecurityType | optional
privilege | Privilege level condition for this setup value. Privilege can be "u" or "p". When a peripheral matches that privilege setting the value will be written. When both Security and Privilege is specified, both conditions must match. | PrivilegeType | optional
info | Brief description of the setup value. | xs:string | optional