|
|
@@ -2,26 +2,47 @@
|
|
|
/**
|
|
|
\mainpage
|
|
|
|
|
|
-\b CMSIS-Zone defines methods to describe system resources and to partition these resources into multiple projects and execution areas.
|
|
|
-The system resources may include multiple processors, memory areas, peripherals and related interrupts.
|
|
|
-The system resources and partition assignments are stored in \ref zoneFormat (XML based).
|
|
|
-
|
|
|
-\b CMSIS-Zone includes a utility that manages these XML files. This utility:
|
|
|
- - displays all available system resources including memory and peripherals
|
|
|
- - allows to partition memory and assign resources to sub-systems.
|
|
|
- - supports the setup of secure, non-secure, and MPU protected execution zones with assignment of memory, peripherals, and interrupts.
|
|
|
- - provides a data model for generation of configuration files for tool and hardware setup.
|
|
|
-
|
|
|
-The following diagram explains the development work flow when using the \b CMSIS-Zone management tool.
|
|
|
+\section Overview Overview
|
|
|
+
|
|
|
+Embedded systems frequently integrate specify hardware for access protection or system isolation. For example, a Cortex-M33 processor based system may incorporate:
|
|
|
+ - SAU (Secure Attribute Unit) to create a secure execution partition with controlled access from a non-secure execution partition.
|
|
|
+ - MPC (Memory Protection Controller) to control the system-wide access permissions to memory.
|
|
|
+ - PPC (Peripheral Protection Controller) to control the system-wide access permissions to peripherals.
|
|
|
+ - MPU (Memory Protection Controller) to create execution compartments and protect other system parts from illegal access.
|
|
|
+
|
|
|
+Embedded systems may also integrate multiple processors that share system resources (memory and peripherals). In an AMP
|
|
|
+(Asymmetric Multiprocessor System) it is required to assign or partition the available resources to various processors
|
|
|
+that execute independent parts of the application software.
|
|
|
+
|
|
|
+\b CMSIS-Zone helps you to manage this complexity and allows to partition an embedded system into <b>project zones</b>
|
|
|
+and/or <b>execution zones</b>.
|
|
|
+
|
|
|
+A <b>project zone</b> defines the memory resources and peripherals for a sub-project that execute on the system.
|
|
|
+Typical examples are boot-loader and user application, however also the secure and non-secure parts of a Cortex-M TrustZone
|
|
|
+system is defined using project zones.
|
|
|
+
|
|
|
+An <b>execution zone</b> is a software compartment that is protected using a MPU.
|
|
|
+It defines the access rights to memory and peripherals for a isolated part of the system. This ensures that for example a
|
|
|
+communication stack (with design flaws) cannot tamper the data or peripherals of other critical parts in a system.
|
|
|
+
|
|
|
+\b CMSIS-Zone includes a utility that allows you to manage these zones. The input to this utility is a resource (*.rzone) file the defines the system resources
|
|
|
+including memory and peripherals.
|
|
|
+
|
|
|
+For these resources the user interface of the CMSIS-Zone utility allows:
|
|
|
+ - to setup of overall system-wide access permissions to memory and peripherals.
|
|
|
+ - to define project zones (optional with processor selection and/or security mode) or execution zones (optional with privilege level).
|
|
|
+ - to assign memory and peripherals to these project or execution zones.
|
|
|
+
|
|
|
+This system configuration is stored in an assignment (*.azone) file. With the \b Generate function of
|
|
|
+the CMSIS-Zone utility, the resource and configuration data can be used to generate:
|
|
|
+ - source code for the setup of protection hardware such as SAU, MPC, PPC, MPU.
|
|
|
+ - configuration files for software development tools (i.e. linker scatter file).
|
|
|
+ - sub-system resource (*.rzone) files that list <b>project zone</b> resources available for sub-projects.
|
|
|
+
|
|
|
+The following diagram shows the development work flow when using the \b CMSIS-Zone management tool.
|
|
|
|
|
|
\image html Partitioning_Workflow.png "CMSIS-Zone development workflow"
|
|
|
|
|
|
-The CMSIS-Zone utility reads a \ref rzone ".rzone" file that defines the overall system resources of an SoC system.
|
|
|
-An interactive GUI supports the system partitioning. The assignments of the various partitions (also called zones)
|
|
|
-saved in the \ref azone ".azone" file.
|
|
|
-
|
|
|
-The combined information of resources and assignments can be exported to multiple \ref rzone ".rzone" files that represent a sub-system.
|
|
|
-By using file templates the CMSIS-Zone utility can create tool or hardware configuration files.
|
|
|
|
|
|
It is possible to uses these steps multiple times which allows to split a complex SoC design with multiple processors into
|
|
|
smaller sub-systems. For example a multi-core device can be partitioned in steps:
|
|
|
@@ -33,9 +54,16 @@ The following SoC diagram exemplifies step 1 and step 2 of this workflow.
|
|
|
|
|
|
\image html Partitioning_Hardware.png "Hardware partitioning in multiple steps"
|
|
|
|
|
|
-\section mainIntroVideo CMSIS-Zone introduction video
|
|
|
+\section ManualSections Manual Sections
|
|
|
+
|
|
|
+The following sections explain:
|
|
|
+- \ref zoneToolUsage describes the tool features and explains the usage on several examples.
|
|
|
+- \ref zoneFormat (XML based) that stores resource (*.rzone) and assignment (*.azone) information.
|
|
|
+- \ref GenDataModel which is used to create tool set-up files and hardware configuration files.
|
|
|
+
|
|
|
+\section mainIntroVideo Introduction Video
|
|
|
|
|
|
-Watch this short video to learn how to use the \ref zoneToolUsage :
|
|
|
+This video show how to use the \ref zoneToolUsage :
|
|
|
|
|
|
\htmlonly
|
|
|
<video preload="none" controls="" poster="https://community.arm.com/cfs-file/__key/telligent-evolution-videotranscoding-securefilestorage/communityserver-blogs-components-weblogfiles-00-00-00-21-12/Nuvoton_5F00_Zone.mp4.jpg" width="880" height="495">
|
|
|
@@ -44,12 +72,6 @@ Watch this short video to learn how to use the \ref zoneToolUsage :
|
|
|
</video>
|
|
|
\endhtmlonly
|
|
|
|
|
|
-
|
|
|
-The following sections explain:
|
|
|
-- \ref zoneToolUsage shows hot to use the CMSIS-Zone stand-alone tool to generate the relevant project information to be used
|
|
|
- in integrated development environments (IDEs).
|
|
|
-- \ref zoneFormat (XML based) that stores system resource information and the configuration of project zones and execution zones.
|
|
|
-- \ref GenDataModel which is used to create tool set-up files and hardware configuration files.
|
|
|
*/
|
|
|
|
|
|
|