/*=======0=========1=========2=========3=========4=========5=========6=========7=========8=========9=========0=========1====*/ /** \page zoneFormat Zone Description Format The <b>Zone Description Format</b> is a tool agnostic storage format and is split into: - <b>Resource File (*.rzone)</b> that describes the system resources available. - <b>Assignment File (*.azone)</b> that describes the resource partitioning. The combination of both <b>Resource File</b> and <b>Assignment File</b> can be used to create a new derived <b>Resource File</b> that only contains the resources available for this project. It is therefore possible to split the resources incrementally as needed. A <b>Resource File (*.rzone)</b> can therefore describe: - A complete embedded system including device with one or more processors, external memory and/or external peripheral components. - TrustZone definition and initial setting for Secure Attribute Unit - A resource partition for an independent software project (i.e. boot loader, user application, secure partition) that implement the application for the system. An <b>Assignment File (*.azone)</b> allows to specify either: - The partitioning of a system into multiple independent software projects. - The configuration of a Memory Protection Unit (MPU) for functional segregation of a software project. \note It is impossible to use a single <b>Assignment File</b> for both, partitioning of software projects and MPU configuration. \section XML_Format_Schema Overall XML structure The CMSIS-Zone utility uses two XML files to store system and configuration information. The structure these XML files is described with schema files that are located in the ARM.CMSIS pack in the directory .\\CMSIS\\Utilities. File type | Schema file | Description :-----------|:--------------|:------------- \ref rzone "*.rzone" | rzone.xsd | Stores the system resources (processors, memory, peripherals) available. \ref azone "*.azone" | azone.xsd | Stores the system partitioning which includes assignments and memory splits for a related .rzone file. *.fzone | fzone.xsd | CMSIS-Zone data input file for FreeMarker as explained in \ref GenDataModel. \note It is important to understand the relationship between *.rzone and *.azone files. While the *.rzone file contains all the information about the available resources in a system or sub-system, the *.azone file contains all the information about the system partitioning. If the *.rzone file changes (for example because the partitioning of a sub-system has changed), you will not loose the work done on the partitioning of that sub-system. If resources are removed, the \ref zTGUI will notify you about this and you can make the required changes. \anchor rzone Top-level .rzone XML elements ============================= - \subpage xml_rzone_pg "<rzone>" is the root element of the *.rzone file. - \ref xml_creator "<creator>" describes the creation for this *.rzone file. - \ref xml_device "<device>" describes the device that is part of the system. It may contain one or more processors. - \ref xml_resources "<resources>" describes the memory and peripheral resources of the system. Structure of .rzone XML file ---------------------------- \code <rzone> // root element of system zone file <creator> // describes how this rzone file was created <device> // device information <package/> // software pack that defines device <processor/> // processor information </device> <resources> // physical resources off-chip <sau_init> // fixed SAU settings required for system <region/> // region setting for SAU </sau_init> <memories> // memories section <memory> // memory resource <mpc> // memory protection controller information </memories> <peripherals> // peripheral resources off-chip { <group> } // peripheral group (optional) <peripheral> // peripheral description <slot> // optional slot description (pin or DMA channel) <interrupt/> // optional interrupts for slot <setup/> // optional register setup for slot </slot> <interrupt/> // optional interrupts for peripheral <setup/> // optional register setup for peripheral </peripheral> { </group> } // peripheral group (optional) </peripherals> </resources> </rzone> \endcode \anchor azone Top-level .azone XML elements ============================= - \subpage xml_azone_pg "<azone>" is the root element of the *.azone file. - \ref xml_configure "<configure>" controls the behavior of the CMSIS-Zone utility (project or MPU assignments). - \ref xml_partition "<partition>" defines memory partitions that split available system memory. - \ref xml_zones "<zones>" defines the assignment of memory, block, and peripherals. \code <azone> <rzone> // Refers related .rzone file <configure> // CMSIS-Zone utility UI behavior <partition> // memory partition information <memory> // memory split information </partition> <zones> // zone assignments <zone> // project zone name <assign> // used peripheral or memory <interrupt/> // for peripherals optional interrupt usage </assign> </zone> </zones> </azone> \endcode \anchor security Security Type ============= The attribute \em security defines the security setting for a memory or peripheral region. Only one of the settings is allow: - \<empty\> security not defined (default) - 'n' non-secure - 'c' secure on non-secure callable - 's' secure \anchor access Access Type =========== The attribute \em access defines the access permission for a memory or peripheral region. Multiple settings are allow: - 'r' read - 'w' write - 'x' execute - 'p' peripheral</td> \anchor privilege Privilege Type ============== The attribute \em privilege defines the privilege level that is required for memory/peripheral access or code execution in a MPU zone. Only one of the settings is allow: - \<empty\> privilege level not specified - 'u' unprivileged level - 'p' privileged level */ /**************************************************************************************************/ /** \page xml_rzone_pg /rzone element The \ref xml_rzone_pg element is the root element of the .rzone file which describes the resources (processors, memory, peripherals) available. <table class="cmtable" summary="Element: rzone"> <tr> <th>Parent Element</th> <th colspan="3">Element Chain</th> </tr> <tr> <td>root</td> <td colspan=3>Document root</td> </tr> <tr> <th>Attributes</th> <th>Description</th> <th>Type</th> <th>Use</th> </tr> <tr> <td>schemaVersion</td> <td>CMSIS-Zone schema version used for describing the *.rzone file.</td> <td>VersionType</td> <td>required</td> </tr> <tr> <td>xmlns:xs</td> <td>Is set to: \token{"http://www.w3.org/2001/XMLSchema-instance"} to indicate compliance to the XML format.</td> <td>xs:string</td> <td>required</td> </tr> <tr> <td>xs:noNamespaceSchemaLocation</td> <td>File name of the schema file. For example, \token{"rzone.xsd"}.</td> <td>xs:string</td> <td>required</td> </tr> <tr> <th>Child Elements</th> <th>Description</th> <th>Type</th> <th>Occurrence</th> </tr> <tr> <td>\subpage xml_creator "creator"</td> <td>Specifies how a derived .rzone file was created.</td> <td>CreatorType</td> <td>0..1</td> </tr> <tr> <td>\subpage xml_device "device"</td> <td>Device that includes one or more processing element (PE).</td> <td>DeviceType</td> <td>1..1 </td> </tr> <tr> <td>\subpage xml_resources "resources"</td> <td>Physical resources (memory and peripherals) that are available in the system.</td> <td>SResourceType</td> <td>1..1 </td> </tr> </table> */ /**************************************************************************************************/ /** \page xml_creator /rzone/creator element The \ref xml_creator specifies how a derived .rzone file was created. <table class="cmtable" summary="Element: device"> <tr> <th>Parent Element</th> <th colspan="3">Element Chain</th> </tr> <tr> <td>\ref xml_rzone_pg "rzone"</td> <td colspan=3>\ref xml_rzone_pg</td> </tr> <tr> <th>Attributes</th> <th>Description</th> <th>Type</th> <th>...
robert72001