From 96d6da4e252b06dcfdc041e7df23e86161c33007 Mon Sep 17 00:00:00 2001 From: rihab kouki Date: Tue, 28 Jul 2020 11:24:49 +0100 Subject: Official ARM version: v5.6.0 --- docs/Zone/html/AddMemoryBlock.png | Bin 0 -> 10718 bytes docs/Zone/html/AddNewZoneButton.png | Bin 0 -> 547 bytes docs/Zone/html/Buttons.png | Bin 0 -> 8552 bytes docs/Zone/html/CMSISPacksPreferences.png | Bin 0 -> 32200 bytes docs/Zone/html/DelMemoryRegion.png | Bin 0 -> 11663 bytes docs/Zone/html/DevelopmentFlow.png | Bin 14254 -> 0 bytes docs/Zone/html/GUI.png | Bin 0 -> 355058 bytes docs/Zone/html/GenCodeButton.png | Bin 0 -> 1325 bytes docs/Zone/html/GenDataModel.html | 72 +++---- docs/Zone/html/GenDataModel.js | 7 + docs/Zone/html/IRAM1_1Display.png | Bin 0 -> 13190 bytes docs/Zone/html/NewMemoryBlockWiz.png | Bin 0 -> 35843 bytes docs/Zone/html/NewZoneCM33_0.png | Bin 0 -> 11118 bytes docs/Zone/html/Partitioning_Hardware.png | Bin 0 -> 75726 bytes docs/Zone/html/Partitioning_Workflow.png | Bin 0 -> 82055 bytes docs/Zone/html/ProjectExplorerWindow.png | Bin 0 -> 48237 bytes docs/Zone/html/STM32L5_zones.png | Bin 0 -> 80157 bytes docs/Zone/html/SaveButton.png | Bin 0 -> 756 bytes docs/Zone/html/SetProjectName.png | Bin 0 -> 20735 bytes docs/Zone/html/SpecifyRzoneFile.png | Bin 0 -> 16737 bytes docs/Zone/html/UseCases.html | 150 +++++++++++++ docs/Zone/html/XML_Format.html | 252 ---------------------- docs/Zone/html/XML_Format.js | 11 - docs/Zone/html/blinky_window.png | Bin 0 -> 30465 bytes docs/Zone/html/cmsis.css | 2 +- docs/Zone/html/dma_channel_config.png | Bin 0 -> 10680 bytes docs/Zone/html/dma_gpio_config.png | Bin 0 -> 24204 bytes docs/Zone/html/fm_interrupt.html | 149 +++++++++++++ docs/Zone/html/fm_memory.html | 183 ++++++++++++++++ docs/Zone/html/fm_mpc_setup.html | 149 +++++++++++++ docs/Zone/html/fm_mpu_setup.html | 147 +++++++++++++ docs/Zone/html/fm_peripheral.html | 175 +++++++++++++++ docs/Zone/html/fm_processor.html | 143 +++++++++++++ docs/Zone/html/fm_reg_setup.html | 145 +++++++++++++ docs/Zone/html/fm_sau.html | 151 +++++++++++++ docs/Zone/html/fm_system.html | 147 +++++++++++++ docs/Zone/html/fm_system.js | 10 + docs/Zone/html/fm_zone.html | 141 ++++++++++++ docs/Zone/html/fm_zone.js | 6 + docs/Zone/html/format_assign.html | 163 -------------- docs/Zone/html/format_assign.js | 4 - docs/Zone/html/format_block.html | 162 -------------- docs/Zone/html/format_capture.html | 158 -------------- docs/Zone/html/format_device.html | 182 ---------------- docs/Zone/html/format_device.js | 7 - docs/Zone/html/format_group.html | 163 -------------- docs/Zone/html/format_group.js | 4 - docs/Zone/html/format_map_memory.html | 161 -------------- docs/Zone/html/format_map_peripheral.html | 156 -------------- docs/Zone/html/format_memory.html | 149 ------------- docs/Zone/html/format_memory.js | 4 - docs/Zone/html/format_memory_map.html | 153 ------------- docs/Zone/html/format_memory_map.js | 5 - docs/Zone/html/format_package.html | 153 ------------- docs/Zone/html/format_peripheral.html | 165 -------------- docs/Zone/html/format_peripherals.html | 155 -------------- docs/Zone/html/format_peripherals.js | 5 - docs/Zone/html/format_processor.html | 171 --------------- docs/Zone/html/format_processor.js | 4 - docs/Zone/html/format_pzone.html | 166 --------------- docs/Zone/html/format_pzone.js | 5 - docs/Zone/html/format_region.html | 162 -------------- docs/Zone/html/format_region.js | 4 - docs/Zone/html/format_resources.html | 158 -------------- docs/Zone/html/format_resources.js | 5 - docs/Zone/html/format_system.html | 177 --------------- docs/Zone/html/format_system.js | 6 - docs/Zone/html/format_xzone.html | 159 -------------- docs/Zone/html/format_xzone.js | 4 - docs/Zone/html/format_zones.html | 149 ------------- docs/Zone/html/format_zones.js | 4 - docs/Zone/html/gen_output.png | Bin 0 -> 14533 bytes docs/Zone/html/genmodel.png | Bin 34141 -> 0 bytes docs/Zone/html/gpio_pins_config.png | Bin 0 -> 9804 bytes docs/Zone/html/hello_world_output.png | Bin 0 -> 6877 bytes docs/Zone/html/hello_world_proj_window.png | Bin 0 -> 32781 bytes docs/Zone/html/import_from_file.png | Bin 0 -> 23670 bytes docs/Zone/html/import_projects.png | Bin 0 -> 33282 bytes docs/Zone/html/index.html | 68 +++--- docs/Zone/html/lpc55_resource_map.png | Bin 0 -> 139809 bytes docs/Zone/html/lpc55_system_startup.png | Bin 0 -> 33546 bytes docs/Zone/html/lpc55_zones.png | Bin 0 -> 103783 bytes docs/Zone/html/navtree.js | 21 +- docs/Zone/html/navtreeindex0.js | 134 +++++++----- docs/Zone/html/pages.html | 82 +++---- docs/Zone/html/partition_h_l5.png | Bin 0 -> 40920 bytes docs/Zone/html/peripheral_properties.png | Bin 0 -> 32066 bytes docs/Zone/html/res_prop.png | Bin 0 -> 8262 bytes docs/Zone/html/resource_map.png | Bin 0 -> 62198 bytes docs/Zone/html/search/all_0.js | 3 +- docs/Zone/html/search/all_1.js | 5 +- docs/Zone/html/search/all_2.js | 2 +- docs/Zone/html/search/all_3.js | 4 +- docs/Zone/html/search/all_4.js | 4 +- docs/Zone/html/search/all_5.html | 26 +++ docs/Zone/html/search/all_5.js | 6 + docs/Zone/html/search/all_6.html | 26 +++ docs/Zone/html/search/all_6.js | 4 + docs/Zone/html/search/all_7.html | 26 +++ docs/Zone/html/search/all_7.js | 4 + docs/Zone/html/search/all_8.html | 26 +++ docs/Zone/html/search/all_8.js | 4 + docs/Zone/html/search/all_9.html | 26 +++ docs/Zone/html/search/all_9.js | 5 + docs/Zone/html/search/all_a.html | 26 +++ docs/Zone/html/search/all_a.js | 6 + docs/Zone/html/search/all_b.html | 26 +++ docs/Zone/html/search/all_b.js | 4 + docs/Zone/html/search/all_c.html | 26 +++ docs/Zone/html/search/all_c.js | 4 + docs/Zone/html/search/all_d.html | 26 +++ docs/Zone/html/search/all_d.js | 4 + docs/Zone/html/search/all_e.html | 26 +++ docs/Zone/html/search/all_e.js | 6 + docs/Zone/html/search/pages_0.js | 2 +- docs/Zone/html/search/pages_1.js | 5 +- docs/Zone/html/search/pages_2.js | 2 +- docs/Zone/html/search/pages_3.html | 26 +++ docs/Zone/html/search/pages_3.js | 5 + docs/Zone/html/search/pages_4.html | 26 +++ docs/Zone/html/search/pages_4.js | 6 + docs/Zone/html/search/pages_5.html | 26 +++ docs/Zone/html/search/pages_5.js | 6 + docs/Zone/html/search/pages_6.html | 26 +++ docs/Zone/html/search/pages_6.js | 4 + docs/Zone/html/search/pages_7.html | 26 +++ docs/Zone/html/search/pages_7.js | 4 + docs/Zone/html/search/pages_8.html | 26 +++ docs/Zone/html/search/pages_8.js | 5 + docs/Zone/html/search/pages_9.html | 26 +++ docs/Zone/html/search/pages_9.js | 6 + docs/Zone/html/search/pages_a.html | 26 +++ docs/Zone/html/search/pages_a.js | 4 + docs/Zone/html/search/pages_b.html | 26 +++ docs/Zone/html/search/pages_b.js | 4 + docs/Zone/html/search/pages_c.html | 26 +++ docs/Zone/html/search/pages_c.js | 6 + docs/Zone/html/search/search.js | 4 +- docs/Zone/html/soc-memorymap.png | Bin 25424 -> 0 bytes docs/Zone/html/som-decomposition.png | Bin 15219 -> 0 bytes docs/Zone/html/storagemodel.png | Bin 25941 -> 0 bytes docs/Zone/html/todo.html | 134 ++++++++++++ docs/Zone/html/xml_arzone.html | 142 ++++++++++++ docs/Zone/html/xml_azone_pg.html | 153 +++++++++++++ docs/Zone/html/xml_azone_pg.js | 17 ++ docs/Zone/html/xml_configure.html | 167 +++++++++++++++ docs/Zone/html/xml_creator.html | 151 +++++++++++++ docs/Zone/html/xml_device.html | 207 ++++++++++++++++++ docs/Zone/html/xml_memories.html | 232 ++++++++++++++++++++ docs/Zone/html/xml_partition.html | 245 +++++++++++++++++++++ docs/Zone/html/xml_peripherals.html | 332 +++++++++++++++++++++++++++++ docs/Zone/html/xml_resources.html | 143 +++++++++++++ docs/Zone/html/xml_resources.js | 17 ++ docs/Zone/html/xml_rzone_pg.html | 151 +++++++++++++ docs/Zone/html/xml_rzone_pg.js | 9 + docs/Zone/html/xml_sau_init.html | 160 ++++++++++++++ docs/Zone/html/xml_zones.html | 228 ++++++++++++++++++++ docs/Zone/html/zTCLI.html | 151 +++++++++++++ docs/Zone/html/zTELPC55.html | 263 +++++++++++++++++++++++ docs/Zone/html/zTEMusca.html | 128 +++++++++++ docs/Zone/html/zTESTM32L5.html | 250 ++++++++++++++++++++++ docs/Zone/html/zTExamples.html | 154 +++++++++++++ docs/Zone/html/zTExamples.js | 20 ++ docs/Zone/html/zTInstall.html | 135 ++++++++++++ docs/Zone/html/zTInteractiveMode.html | 135 ++++++++++++ docs/Zone/html/zTInteractiveMode.js | 15 ++ docs/Zone/html/zTUI.html | 201 +++++++++++++++++ docs/Zone/html/zTUICreateProject.html | 141 ++++++++++++ docs/Zone/html/zTUIGenerate.html | 142 ++++++++++++ docs/Zone/html/zTUIMemPerRes.html | 211 ++++++++++++++++++ docs/Zone/html/zTUIZonePart.html | 151 +++++++++++++ docs/Zone/html/zone-assignment.png | Bin 33330 -> 0 bytes docs/Zone/html/zoneFormat.html | 249 ++++++++++++++++++++++ docs/Zone/html/zoneFormat.js | 6 + docs/Zone/html/zoneToolUsage.html | 147 +++++++++++++ docs/Zone/html/zoneToolUsage.js | 14 ++ docs/Zone/html/zone_map.png | Bin 0 -> 58003 bytes docs/Zone/html/zone_project.png | Bin 0 -> 22171 bytes docs/Zone/html/zone_revisionHistory.html | 6 +- 179 files changed, 7537 insertions(+), 3586 deletions(-) create mode 100644 docs/Zone/html/AddMemoryBlock.png create mode 100644 docs/Zone/html/AddNewZoneButton.png create mode 100644 docs/Zone/html/Buttons.png create mode 100644 docs/Zone/html/CMSISPacksPreferences.png create mode 100644 docs/Zone/html/DelMemoryRegion.png delete mode 100644 docs/Zone/html/DevelopmentFlow.png create mode 100644 docs/Zone/html/GUI.png create mode 100644 docs/Zone/html/GenCodeButton.png create mode 100644 docs/Zone/html/GenDataModel.js create mode 100644 docs/Zone/html/IRAM1_1Display.png create mode 100644 docs/Zone/html/NewMemoryBlockWiz.png create mode 100644 docs/Zone/html/NewZoneCM33_0.png create mode 100644 docs/Zone/html/Partitioning_Hardware.png create mode 100644 docs/Zone/html/Partitioning_Workflow.png create mode 100644 docs/Zone/html/ProjectExplorerWindow.png create mode 100644 docs/Zone/html/STM32L5_zones.png create mode 100644 docs/Zone/html/SaveButton.png create mode 100644 docs/Zone/html/SetProjectName.png create mode 100644 docs/Zone/html/SpecifyRzoneFile.png create mode 100644 docs/Zone/html/UseCases.html delete mode 100644 docs/Zone/html/XML_Format.html delete mode 100644 docs/Zone/html/XML_Format.js create mode 100644 docs/Zone/html/blinky_window.png create mode 100644 docs/Zone/html/dma_channel_config.png create mode 100644 docs/Zone/html/dma_gpio_config.png create mode 100644 docs/Zone/html/fm_interrupt.html create mode 100644 docs/Zone/html/fm_memory.html create mode 100644 docs/Zone/html/fm_mpc_setup.html create mode 100644 docs/Zone/html/fm_mpu_setup.html create mode 100644 docs/Zone/html/fm_peripheral.html create mode 100644 docs/Zone/html/fm_processor.html create mode 100644 docs/Zone/html/fm_reg_setup.html create mode 100644 docs/Zone/html/fm_sau.html create mode 100644 docs/Zone/html/fm_system.html create mode 100644 docs/Zone/html/fm_system.js create mode 100644 docs/Zone/html/fm_zone.html create mode 100644 docs/Zone/html/fm_zone.js delete mode 100644 docs/Zone/html/format_assign.html delete mode 100644 docs/Zone/html/format_assign.js delete mode 100644 docs/Zone/html/format_block.html delete mode 100644 docs/Zone/html/format_capture.html delete mode 100644 docs/Zone/html/format_device.html delete mode 100644 docs/Zone/html/format_device.js delete mode 100644 docs/Zone/html/format_group.html delete mode 100644 docs/Zone/html/format_group.js delete mode 100644 docs/Zone/html/format_map_memory.html delete mode 100644 docs/Zone/html/format_map_peripheral.html delete mode 100644 docs/Zone/html/format_memory.html delete mode 100644 docs/Zone/html/format_memory.js delete mode 100644 docs/Zone/html/format_memory_map.html delete mode 100644 docs/Zone/html/format_memory_map.js delete mode 100644 docs/Zone/html/format_package.html delete mode 100644 docs/Zone/html/format_peripheral.html delete mode 100644 docs/Zone/html/format_peripherals.html delete mode 100644 docs/Zone/html/format_peripherals.js delete mode 100644 docs/Zone/html/format_processor.html delete mode 100644 docs/Zone/html/format_processor.js delete mode 100644 docs/Zone/html/format_pzone.html delete mode 100644 docs/Zone/html/format_pzone.js delete mode 100644 docs/Zone/html/format_region.html delete mode 100644 docs/Zone/html/format_region.js delete mode 100644 docs/Zone/html/format_resources.html delete mode 100644 docs/Zone/html/format_resources.js delete mode 100644 docs/Zone/html/format_system.html delete mode 100644 docs/Zone/html/format_system.js delete mode 100644 docs/Zone/html/format_xzone.html delete mode 100644 docs/Zone/html/format_xzone.js delete mode 100644 docs/Zone/html/format_zones.html delete mode 100644 docs/Zone/html/format_zones.js create mode 100644 docs/Zone/html/gen_output.png delete mode 100644 docs/Zone/html/genmodel.png create mode 100644 docs/Zone/html/gpio_pins_config.png create mode 100644 docs/Zone/html/hello_world_output.png create mode 100644 docs/Zone/html/hello_world_proj_window.png create mode 100644 docs/Zone/html/import_from_file.png create mode 100644 docs/Zone/html/import_projects.png create mode 100644 docs/Zone/html/lpc55_resource_map.png create mode 100644 docs/Zone/html/lpc55_system_startup.png create mode 100644 docs/Zone/html/lpc55_zones.png create mode 100644 docs/Zone/html/partition_h_l5.png create mode 100644 docs/Zone/html/peripheral_properties.png create mode 100644 docs/Zone/html/res_prop.png create mode 100644 docs/Zone/html/resource_map.png create mode 100644 docs/Zone/html/search/all_5.html create mode 100644 docs/Zone/html/search/all_5.js create mode 100644 docs/Zone/html/search/all_6.html create mode 100644 docs/Zone/html/search/all_6.js create mode 100644 docs/Zone/html/search/all_7.html create mode 100644 docs/Zone/html/search/all_7.js create mode 100644 docs/Zone/html/search/all_8.html create mode 100644 docs/Zone/html/search/all_8.js create mode 100644 docs/Zone/html/search/all_9.html create mode 100644 docs/Zone/html/search/all_9.js create mode 100644 docs/Zone/html/search/all_a.html create mode 100644 docs/Zone/html/search/all_a.js create mode 100644 docs/Zone/html/search/all_b.html create mode 100644 docs/Zone/html/search/all_b.js create mode 100644 docs/Zone/html/search/all_c.html create mode 100644 docs/Zone/html/search/all_c.js create mode 100644 docs/Zone/html/search/all_d.html create mode 100644 docs/Zone/html/search/all_d.js create mode 100644 docs/Zone/html/search/all_e.html create mode 100644 docs/Zone/html/search/all_e.js create mode 100644 docs/Zone/html/search/pages_3.html create mode 100644 docs/Zone/html/search/pages_3.js create mode 100644 docs/Zone/html/search/pages_4.html create mode 100644 docs/Zone/html/search/pages_4.js create mode 100644 docs/Zone/html/search/pages_5.html create mode 100644 docs/Zone/html/search/pages_5.js create mode 100644 docs/Zone/html/search/pages_6.html create mode 100644 docs/Zone/html/search/pages_6.js create mode 100644 docs/Zone/html/search/pages_7.html create mode 100644 docs/Zone/html/search/pages_7.js create mode 100644 docs/Zone/html/search/pages_8.html create mode 100644 docs/Zone/html/search/pages_8.js create mode 100644 docs/Zone/html/search/pages_9.html create mode 100644 docs/Zone/html/search/pages_9.js create mode 100644 docs/Zone/html/search/pages_a.html create mode 100644 docs/Zone/html/search/pages_a.js create mode 100644 docs/Zone/html/search/pages_b.html create mode 100644 docs/Zone/html/search/pages_b.js create mode 100644 docs/Zone/html/search/pages_c.html create mode 100644 docs/Zone/html/search/pages_c.js delete mode 100644 docs/Zone/html/soc-memorymap.png delete mode 100644 docs/Zone/html/som-decomposition.png delete mode 100644 docs/Zone/html/storagemodel.png create mode 100644 docs/Zone/html/todo.html create mode 100644 docs/Zone/html/xml_arzone.html create mode 100644 docs/Zone/html/xml_azone_pg.html create mode 100644 docs/Zone/html/xml_azone_pg.js create mode 100644 docs/Zone/html/xml_configure.html create mode 100644 docs/Zone/html/xml_creator.html create mode 100644 docs/Zone/html/xml_device.html create mode 100644 docs/Zone/html/xml_memories.html create mode 100644 docs/Zone/html/xml_partition.html create mode 100644 docs/Zone/html/xml_peripherals.html create mode 100644 docs/Zone/html/xml_resources.html create mode 100644 docs/Zone/html/xml_resources.js create mode 100644 docs/Zone/html/xml_rzone_pg.html create mode 100644 docs/Zone/html/xml_rzone_pg.js create mode 100644 docs/Zone/html/xml_sau_init.html create mode 100644 docs/Zone/html/xml_zones.html create mode 100644 docs/Zone/html/zTCLI.html create mode 100644 docs/Zone/html/zTELPC55.html create mode 100644 docs/Zone/html/zTEMusca.html create mode 100644 docs/Zone/html/zTESTM32L5.html create mode 100644 docs/Zone/html/zTExamples.html create mode 100644 docs/Zone/html/zTExamples.js create mode 100644 docs/Zone/html/zTInstall.html create mode 100644 docs/Zone/html/zTInteractiveMode.html create mode 100644 docs/Zone/html/zTInteractiveMode.js create mode 100644 docs/Zone/html/zTUI.html create mode 100644 docs/Zone/html/zTUICreateProject.html create mode 100644 docs/Zone/html/zTUIGenerate.html create mode 100644 docs/Zone/html/zTUIMemPerRes.html create mode 100644 docs/Zone/html/zTUIZonePart.html delete mode 100644 docs/Zone/html/zone-assignment.png create mode 100644 docs/Zone/html/zoneFormat.html create mode 100644 docs/Zone/html/zoneFormat.js create mode 100644 docs/Zone/html/zoneToolUsage.html create mode 100644 docs/Zone/html/zoneToolUsage.js create mode 100644 docs/Zone/html/zone_map.png create mode 100644 docs/Zone/html/zone_project.png (limited to 'docs/Zone/html') diff --git a/docs/Zone/html/AddMemoryBlock.png b/docs/Zone/html/AddMemoryBlock.png new file mode 100644 index 0000000..f632f92 Binary files /dev/null and b/docs/Zone/html/AddMemoryBlock.png differ diff --git a/docs/Zone/html/AddNewZoneButton.png b/docs/Zone/html/AddNewZoneButton.png new file mode 100644 index 0000000..4e117d0 Binary files /dev/null and b/docs/Zone/html/AddNewZoneButton.png differ diff --git a/docs/Zone/html/Buttons.png b/docs/Zone/html/Buttons.png new file mode 100644 index 0000000..62449de Binary files /dev/null and b/docs/Zone/html/Buttons.png differ diff --git a/docs/Zone/html/CMSISPacksPreferences.png b/docs/Zone/html/CMSISPacksPreferences.png new file mode 100644 index 0000000..cb8cae9 Binary files /dev/null and b/docs/Zone/html/CMSISPacksPreferences.png differ diff --git a/docs/Zone/html/DelMemoryRegion.png b/docs/Zone/html/DelMemoryRegion.png new file mode 100644 index 0000000..b00d6da Binary files /dev/null and b/docs/Zone/html/DelMemoryRegion.png differ diff --git a/docs/Zone/html/DevelopmentFlow.png b/docs/Zone/html/DevelopmentFlow.png deleted file mode 100644 index ccf2462..0000000 Binary files a/docs/Zone/html/DevelopmentFlow.png and /dev/null differ diff --git a/docs/Zone/html/GUI.png b/docs/Zone/html/GUI.png new file mode 100644 index 0000000..7bfd7dd Binary files /dev/null and b/docs/Zone/html/GUI.png differ diff --git a/docs/Zone/html/GenCodeButton.png b/docs/Zone/html/GenCodeButton.png new file mode 100644 index 0000000..8554ec9 Binary files /dev/null and b/docs/Zone/html/GenCodeButton.png differ diff --git a/docs/Zone/html/GenDataModel.html b/docs/Zone/html/GenDataModel.html index 3e2c40f..5cff952 100644 --- a/docs/Zone/html/GenDataModel.html +++ b/docs/Zone/html/GenDataModel.html @@ -32,7 +32,7 @@ Logo
CMSIS-Zone (Preview) -  Version 0.0.1 +  Version 0.9.2
System Resource Management
@@ -110,61 +110,45 @@ $(document).ready(function(){initNavTree('GenDataModel.html','');});
Generator Data Model
-

The Generator Data Model defines the view on the Zone Description for code generators. By defining a common data model code generators can be developed independendly from actual CMSIS Zone Projects and vendor tools.

-

The CMSIS-Zone data (structured according to the Generator Data Model) is combined with file templates using the FreeMarker template engine to generate arbitrary project files, see picture below..

+

The Generator Data Model defines the resource and partition data structure for code generators. This data structure is connected to a FreeMarker template engine and file templates allow to generate various files that can be used to configure development tools or hardware components.

generator.png
FreeMarker Template Engine
-

-Data Model Structure

-

The class diagram below visualizes the overall structure of the Generator Data Model. The root element visible to the templates is FmZone.

-
-genmodel.png -
-Generator Data Model Class Diagram
-

According to FreeMarker Documentation one can access the named attributes like retrieving data from a hash. The reference implementation documented in detail below make use of the default FreeMarker Bean wrapper. This leads to all Java methods named like get<Attribute> or is<Attribute> to be visible just as <Attribute> to the template.

-

Please take note about the multiplicities stated in the diagram:

-
    -
  • 0..1 indicates an optional value which might be unavailable, consider using missing value handler operators.
  • -
  • 1 indicates a mandatory value which is guaranteed to be valid.
  • -
  • 0..* indicates a collection or hash of values which might be empty.
  • -
  • 1..* indicates a collection or hash of values which is guaranteed to contain at least one element.
  • -
-

For detailed descriptions of the data model elements please refere to the JavaDoc documentation for

+

+FreeMarker top-level format

+

system element provides memory layout and TrustZone configuration of the complete system. zone element setup information of a zone (or system partition) along with related peripherals.

+

+FreeMarker basics

+

The variable types relevant for CMSIS-Zone are:

+

scalar: variable that stores a single value of a scalar type scalar-types:

-

-Template Examples

-

To get an impression of how template files might look like please refere to the simplyfied examples in this section.

-

-HTML table of all assigned memory blocks

-

This examples demonstrates how to iterate over the collection of memory blocks assigned to the project zone currently evaluated. The result of the template below is a HTML table with three columns listing block name, start address and size, respectively.

-
<table>
-
<th>
-
<td>Name</td>
-
<td>Start</td>
-
<td>Size</td>
-
</th>
-
<#list blocks as block>
-
<tr>
-
<td>${block.name}</td>
-
<td>${block.start}</td>
-
<td>${block.size}</td>
-
</tr>
+

hash: variable that that stores one or more variables with a unique lookup name

+

sequence: variable that stores sub-variables without names but instead are selected via index (myVariable[index])

+

A variable is accessed using the dollar character followed by a variable or expression in brackets:

+
${...}
+

Output the name of the zone:

+
${zone.name}
+

A sequence gets iterated:

+
<#list zone.memory as mem>
+
Memory region name $mem.name
+
</#list
+
+
Printing a sorted list of all available memory entries by start address
+
\code
+
<#list zone.memory?sort_by("start") as mem>
+
${mem.start} ${mem.name}
</#list>
-
</table>
+
+ +
+
+
+ +
+ + + + +
+ +
+ +
+
+
CMSIS-Zone Use Cases
+
+
+

CMSIS-Zone simplifies to manage the complexity and the configuration of modern embedded systems that frequently include multiple processors and/or memory protection hardware. It helps to split the embedded application various projects which creates the need to partition system resources. And it simplifies the consistent configuration of access rights across the system, for example when using an MPU (memory protection unit).

+

The following section describes several uses cases that benefit from CMSIS-Zone.

+

+MPU Protection

+

Focused on a single core microcontroller one might want to utilize the memory protection unit (MPU) capabilities to segregate parts of an application. Thus the need to partition the system resources accordingly arises.

+
+mpu.png +
+MPU Protection
+

+TrustZone Partitioning

+

TrustZone extensions add another degree of segregation which must be handled consistently. In this case one has to handle MPU settings per security context and SAU configuration.

+
+trustzone.png +
+TrustZone Partitioning and MPU Protection
+

+Multi-Core Partitioning

+

Beside traditional single cores asymmetric and hybrid multi-core devices contribute to increasing development complexity for embedded systems. Having multiple cores running different parts of an application concurrently needs a well defined resource assignment to prevent undesired misbehavior.

+
+multicore.png +
+Multi-Core Partitioning
+
+
+ + + + diff --git a/docs/Zone/html/XML_Format.html b/docs/Zone/html/XML_Format.html deleted file mode 100644 index a66eded..0000000 --- a/docs/Zone/html/XML_Format.html +++ /dev/null @@ -1,252 +0,0 @@ - - - - - -Zone Description Format -CMSIS-Zone (Preview): Zone Description Format - - - - - - - - - - - - - - -
-
- - - - - - - -
-
CMSIS-Zone (Preview) -  Version 0.0.1 -
-
System Resource Management
-
-
- -
-
    - -
-
- - - -
-
- -
-
-
- -
- - - - -
- -
- -
-
-
Zone Description Format
-
-
-

The Zone Description Format uses standard XML annotations and is defined in the schema file ZONE.xsd. It is intended to provide a tool vendor agnostic storage format for

-
    -
  • describing embedded system resource capabilities -
  • -
  • specifying resource partitioning across -
  • -
-

-Storage Data Model

-

In the following diagram the overall structure of the Storage Data Model is depicted. The storage format is derived from the model.

-
-storagemodel.png -
-Storage Data Model Class Diagram
-

The storage model is developed based on the domain and can be seen as the domain model as well. Its main purpose is to capture all information about presumable embedded systems and microcontroller devices.

-

-Embedded Microcontroller System Decomposition

-

Todays available system-on-modules (SoM) and system-on-chips (SoC) already physically outlines the overall composition. It seems to be viable to stick with todays system structures. It's not likely that this structure will change drastically.

-

A detailed view on the decomposition of an arbitrary SoM is given in the diagram below.

-
-som-decomposition.png -
-System-on-Module Decomposition
-

The SoM itself (System) can be seen as a composition of one or more SoCs (Device) combined with an arbitrary amount of board-level resources, i.e. off-chip memory (Memory) and peripheral (Peripheral). In turn each SoC is a composition of one or more processor elements (Processor, PE) with chip-level resources, i.e. on-chip memory and peripheral.

-

Private memory and peripheral resources local to a dedicated PE has been simplified. These can also be seen as chip-level resources.

-

The grouping (ResourceGroup) is intended to allow structural grouping of resources elements, i.e. by type or bus structure.

-
Note
The names (i.e. name attributes) are typically used as references and hence must be unique per class. Duplicate names are allowed if object hierarchies do not overlap. I.e. resources contained on two separate SoCs may have the same name but the name of a SoM level resource must not be reused on SoC level.
-

-Microcontroller Memory Map Specification

-

Most of the Multi-Core-SoCs available today show uniform memory maps. But in principle the logical memory address used to address a certain resource may vary between multiple PEs on the same SoC. Taking this into account leads to memory map specification on both SoC and PE level, see diagram below.

-
-soc-memorymap.png -
-System-on-Chip Memory Map Specification
-

The memory maps specified on SoC and PE level are additive, i.e. the PEs actual memory map is the combination of both. This split allow the specification of uniform memory maps without duplication. Only the non-uniform parts need to be specified on PE level.

-

Each resource can be mapped as often as needed, i.e. to reflect multiple memory aliases. By default the name attribute is used to identify the resource to be mapped. In order to map the same resource multiple times into a PEs memory space the alias attribute must be given to identify the resource instead. The mapping names must be unique per PE because they are used as references later.

-

The attributes of the mapping are merged with those of the resource mapped. This allows the mapping of an individual PE to enhance the basic attributes of a resource. For example a memory resource that is basically readable/writeable/executable might be mapped to a PE as readonly memory.

-

-Zone Resource Assignments

-

A system can be split into an arbitrary amount of project zones (PZone). And each PZone can be further split into execution zones (XZone). Resources used by an individual zone are represented using assignments (Assignment). Refer to the diagram below.

-
-zone-assignment.png -
-Zone Resource Assignments
-

Each PZone is assigned to a dedicated PE which is selected to execute the resulting software part. The PE is referenced by the unique combination of Dname and Pname attributes. The XZones are contained in the PZone they belong to.

-

Both PZones and XZones can have arbitrary assignments to available resources visible to the assigned PE. Assignments to SoC level resources not part of the SoC the PE is located on are illegal. Such assignments cannot be represented because the unique reference is built from PZone::Dname and Assignment::name.

-

As a resource may be visible to the enclosing PE using multiple mappings the as attribute can be used to distinguish which alias is used for access. Selecting the correct alias is significant because of the effective access attributes resulting from merging Resource.access, MemoryMapping.access/PeripheralMapping.access and Assignment.access.

-

Whilst peripheral resources can be assigned directly memory resources need to be split into blocks (MemoryBlock). A block can be seen as an arbitrary part of the physical memory. Individual blocks can be defined using modified access attributes, e.g. for having dedicated executable or readonly regions in RAM.

-

-Zone Schema

-

The XML schema is defined hierarchically with the following top-level elements:

-

/system element

- -
<system>
-
-
<device>
-
-
<processor>
-
<memory_map>
-
<memory/>
-
<peripheral/>
-
</memory_map>
-
</processor>
-
-
<memory_map>
-
<memory/>
-
<peripheral/>
-
</memory_map>
-
-
<resources>
-
-
<memory>
-
<region>
-
<block/>
-
</region>
-
</memory>
-
-
<peripherals>
-
<peripheral/>
-
</peripherals>
-
-
</resources>
-
-
</device>
-
-
<resources>
-
-
<memory>
-
<region>
-
<block/>
-
</region>
-
</memory>
-
-
<peripherals>
-
<peripheral/>
-
</peripherals>
-
-
</resources>
-
-
<zones>
-
<pzone>
-
<assign>
-
<capture/>
-
</assign>
-
-
<xzone>
-
<assign/>
-
</xzone>
-
-
</pzone>
-
</zones>
-
-
</system>
-

-Example

-
-
- - - - diff --git a/docs/Zone/html/XML_Format.js b/docs/Zone/html/XML_Format.js deleted file mode 100644 index 8cc381b..0000000 --- a/docs/Zone/html/XML_Format.js +++ /dev/null @@ -1,11 +0,0 @@ -var XML_Format = -[ - [ "Storage Data Model", "XML_Format.html#XML_Format_Model", [ - [ "Embedded Microcontroller System Decomposition", "XML_Format.html#XML_Format_Model_Decomp", null ], - [ "Microcontroller Memory Map Specification", "XML_Format.html#XML_Format_Model_MemMap", null ], - [ "Zone Resource Assignments", "XML_Format.html#XML_Format_Model_Assign", null ] - ] ], - [ "Zone Schema", "XML_Format.html#XML_Format_Schema", null ], - [ "Example", "XML_Format.html#Example", null ], - [ "/system element", "format_system.html", "format_system" ] -]; \ No newline at end of file diff --git a/docs/Zone/html/blinky_window.png b/docs/Zone/html/blinky_window.png new file mode 100644 index 0000000..716015d Binary files /dev/null and b/docs/Zone/html/blinky_window.png differ diff --git a/docs/Zone/html/cmsis.css b/docs/Zone/html/cmsis.css index bba1010..586d4d2 100644 --- a/docs/Zone/html/cmsis.css +++ b/docs/Zone/html/cmsis.css @@ -1148,7 +1148,7 @@ dl.section dd { .image { - text-align: center; + text-align: left; } .dotgraph diff --git a/docs/Zone/html/dma_channel_config.png b/docs/Zone/html/dma_channel_config.png new file mode 100644 index 0000000..864dc13 Binary files /dev/null and b/docs/Zone/html/dma_channel_config.png differ diff --git a/docs/Zone/html/dma_gpio_config.png b/docs/Zone/html/dma_gpio_config.png new file mode 100644 index 0000000..f3ad4d8 Binary files /dev/null and b/docs/Zone/html/dma_gpio_config.png differ diff --git a/docs/Zone/html/fm_interrupt.html b/docs/Zone/html/fm_interrupt.html new file mode 100644 index 0000000..e4dc967 --- /dev/null +++ b/docs/Zone/html/fm_interrupt.html @@ -0,0 +1,149 @@ + + + + + +interrupt[n] sequence element +CMSIS-Zone (Preview): interrupt[n] sequence element + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
CMSIS-Zone (Preview) +  Version 0.9.2 +
+
System Resource Management
+
+
+ +
+
    + +
+
+ + + +
+
+ +
+
+
+ +
+ + + + +
+ +
+ +
+
+
interrupt[n] sequence element
+
+
+

The interrupt[n] sequence element lists all interrupt sources available in the system.

+ + + + + + + + + + + + + + + + + + + +
Parent Element Element Chain
system system element s
Child Elements Description Type
.interrupt[n].name The name of this interrupt. xs:string
.interrupt[n].irqn The interrupt number. NonNegativeInteger
.interrupt[n].security The security setting for this interrupt. SecurityTypeEnum/xs:string
.interrupt[n].security.s Peripheral with related interrupt is assigned to "secure" state. xs:boolean
.interrupt[n].security.n Peripheral with related interrupt is assigned to "non-secure" state. xs:boolean
.interrupt[n].info Brief description of the interrupt source. xs:string
+
+
+ + + + diff --git a/docs/Zone/html/fm_memory.html b/docs/Zone/html/fm_memory.html new file mode 100644 index 0000000..e3ef3ed --- /dev/null +++ b/docs/Zone/html/fm_memory.html @@ -0,0 +1,183 @@ + + + + + +../memory[n] sequence element +CMSIS-Zone (Preview): ../memory[n] sequence element + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
CMSIS-Zone (Preview) +  Version 0.9.2 +
+
System Resource Management
+
+
+ +
+
    + +
+
+ + + +
+
+ +
+
+
+ +
+ + + + +
+ +
+ +
+
+
../memory[n] sequence element
+
+
+

The ../memory[n] sequence element provides a sequence of memory information.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Parent Element Element Chain
system system element
zone zone element
Child Elements Description Type
.memory[n] Sequence of memory region information. sequence
.memory[n].name The name of this memory region. xs:string
.memory[n].type The type of memory in this region ("RAM" or "ROM"). MemoryTypeEnum
.memory[n].start The logical start address of the memory region in the address map. NonNegativeInteger
.memory[n].size The size (in bytes) of the memory region. NonNegativeInteger
.memory[n].security The security setting for this memory region. SecurityType
.memory[n].security.c Memory has non-secure callable attribute set. xs:boolean
.memory[n].security.s Memory is access from "secure" state. xs:boolean
.memory[n].security.n Memory is access from "non-secure" state. xs:boolean
.memory[n].access The access permissions for this memory region in the following separate fields. AccessType
.memory[n].access.r The read access permission. xs:boolean
.memory[n].access.w The write access permission. xs:boolean
.memory[n].access.x The execution access permission. xs:boolean
.memory[n].access.p The peripheral access information. xs:boolean
.memory[n].privilege The privilege type settings for this memory region in the following separate fields. PrivilegeType
.memory[n].privilege.p The privileged level setting of privilege type. xs:boolean
.memory[n].privilege.u The unprivileged level setting of privilege type. xs:boolean
.memory[n].startup "1" specifies that this region is used for the startup code of the application. Default value is "0". xs:boolean
.memory[n].uninit "1" specifies that this region is not zero initialized during startup. Default value is "0". xs:boolean
.memory[n].shared "1" specifies that this region is used by multiple zones. Default value is "0". xs:boolean
.memory[n].dma "1" specifies that this region is accessed by a DMA controller. Default value is "0". xs:boolean
.memory[n].info Brief description of the memory region. xs:string
+
+
+ + + + diff --git a/docs/Zone/html/fm_mpc_setup.html b/docs/Zone/html/fm_mpc_setup.html new file mode 100644 index 0000000..1a306e1 --- /dev/null +++ b/docs/Zone/html/fm_mpc_setup.html @@ -0,0 +1,149 @@ + + + + + +mpc_setup[n] element +CMSIS-Zone (Preview): mpc_setup[n] element + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
CMSIS-Zone (Preview) +  Version 0.9.2 +
+
System Resource Management
+
+
+ +
+
    + +
+
+ + + +
+
+ +
+
+
+ +
+ + + + +
+ +
+ +
+
+
mpc_setup[n] element
+
+
+

The mpc_setup[n] element contains a sequence of device specific configuration for the setup of the Memory Protection Controller (MPC).

+ + + + + + + + + + + + + + + + + + + +
Parent Element Element Chain
system system element
Child Elements Description Type
.mpc_setup[n].name The name of the base register that controls the MPC. xs:string
.mpc_setup[n].memory The name of the physical memory region that is connected via the MPC. xs:string
.mpc_setup[n].blk_size The block size information that CMSIS-Zone used for LUT generation. NonNegativeInteger
.mpc_setup[n].S_bit[m] A list of bit values for Secure attribute that are used to compose the LUT. NonNegativeInteger
.mpc_setup[n].P_bit[m] A list of bit values for Privileged attribute that are used to compose the LUT. NonNegativeInteger
.mpc_setup[n].bits_comment[m] The memory region information for source code comments that relate to S_bits or P_bits. xs:string
+
+
+ + + + diff --git a/docs/Zone/html/fm_mpu_setup.html b/docs/Zone/html/fm_mpu_setup.html new file mode 100644 index 0000000..42f9e10 --- /dev/null +++ b/docs/Zone/html/fm_mpu_setup.html @@ -0,0 +1,147 @@ + + + + + +mpu_setup element +CMSIS-Zone (Preview): mpu_setup element + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
CMSIS-Zone (Preview) +  Version 0.9.2 +
+
System Resource Management
+
+
+ +
+
    + +
+
+ + + +
+
+ +
+
+
+ +
+ + + + +
+ +
+ +
+
+
mpu_setup element
+
+
+

The mpu_setup element contains the configuration information for the Memory Protection Unit (MPU).

+ + + + + + + + + + + + + + + + + +
Parent Element Element Chain
zone zone element
Child Elements Description Type
mpu_setup.type Implementation of the MPU ("v7M" or "v8M"). xs:string
mpu_setup.region[n] Sequence of MPU region settings. sequence
mpu_setup.region[n].no Number of the region. xs:string
mpu_setup.region[n].BaseAddress The base address of the region. xs:string
mpu_setup.region[n].RASR The MPU region attribute and size register value. xs:string
+
+
+ + + + diff --git a/docs/Zone/html/fm_peripheral.html b/docs/Zone/html/fm_peripheral.html new file mode 100644 index 0000000..4cd513e --- /dev/null +++ b/docs/Zone/html/fm_peripheral.html @@ -0,0 +1,175 @@ + + + + + +../peripheral[n] element +CMSIS-Zone (Preview): ../peripheral[n] element + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
CMSIS-Zone (Preview) +  Version 0.9.2 +
+
System Resource Management
+
+
+ +
+
    + +
+
+ + + +
+
+ +
+
+
+ +
+ + + + +
+ +
+ +
+
+
../peripheral[n] element
+
+
+

The ../peripheral[n] element contains a sequence of all peripherals that are accessible in the zone (or system partition).

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Parent Element Element Chain
system system element
zone zone element
Child Elements Description Type
.peripheral[n].name The name of the peripheral. xs:string
.peripheral[n].group The name of the peripheral group that this peripheral belongs too. xs:string
.peripheral[n].start The logical start address of the peripheral in the address map. NonNegativeInteger
.peripheral[n].size The size (in bytes) of the peripheral. NonNegativeInteger
.peripheral[n].security The security setting for this peripheral. SecurityType
.peripheral[n].security.s Peripheral is assigned to "secure" state. xs:boolean
.peripheral[n].security.n Peripheral is assigned to "non-secure" state. xs:boolean
.peripheral[n].access The access permissions for this peripheral in the following separate fields. AccessType
.peripheral[n].access.r The read access permission. xs:boolean
.peripheral[n].access.w The write access permission. xs:boolean
.peripheral[n].access.x The execution access permission. xs:boolean
.peripheral[n].access.p The peripheral access information. xs:boolean
.peripheral[n].privilege The privilege type settings for this peripheral in the following separate fields. PrivilegeType
.peripheral[n].privilege.p The privileged level setting of privilege type. xs:boolean
.peripheral[n].privilege.u The unprivileged level setting of privilege type. xs:boolean
.peripheral[n].shared "1" specifies that this peripheral is used by multiple zones. Default value is "0". xs:boolean
.peripheral[n].dma "1" specifies that this peripheral is accessed by a DMA controller. Default value is "0". xs:boolean
.peripheral[n].info Brief description of the peripheral region. xs:string
+
+
+ + + + diff --git a/docs/Zone/html/fm_processor.html b/docs/Zone/html/fm_processor.html new file mode 100644 index 0000000..52abdf6 --- /dev/null +++ b/docs/Zone/html/fm_processor.html @@ -0,0 +1,143 @@ + + + + + +processor[n] sequence element +CMSIS-Zone (Preview): processor[n] sequence element + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
CMSIS-Zone (Preview) +  Version 0.9.2 +
+
System Resource Management
+
+
+ +
+
    + +
+
+ + + +
+
+ +
+
+
+ +
+ + + + +
+ +
+ +
+
+
processor[n] sequence element
+
+
+

The processor[n] sequence element provides a sequence of processor elements that are in the system.

+ + + + + + + + + + + + + +
Parent Element Element Chain
system system element
Child Elements Description Type
.processor[n].Pname Name of the processor core. RestrictedString
.processor[n].DnumInterrupts Number of NVIC interrupts sources available to the processor core (excludes exception vectors). NonNegativeInteger
.processor[n].DnumSauRegions Number of regions in the Security Attribution Unit (SAU) of the processor core. NonNegativeInteger
+
+
+ + + + diff --git a/docs/Zone/html/fm_reg_setup.html b/docs/Zone/html/fm_reg_setup.html new file mode 100644 index 0000000..e98ade6 --- /dev/null +++ b/docs/Zone/html/fm_reg_setup.html @@ -0,0 +1,145 @@ + + + + + +reg_setup[n] element +CMSIS-Zone (Preview): reg_setup[n] element + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
CMSIS-Zone (Preview) +  Version 0.9.2 +
+
System Resource Management
+
+
+ +
+
    + +
+
+ + + +
+
+ +
+
+
+ +
+ + + + +
+ +
+ +
+
+
reg_setup[n] element
+
+
+

The reg_setup[n] element contains a sequence of device specific configuration for the setup of the interrupts.

+ + + + + + + + + + + + + + + +
Parent Element Element Chain
system system element
Child Elements Description Type
.reg_setup[n].name The name of the register or array that holds the configuration information. xs:string
.reg_setup[n].index The index value for the register array. NonNegativeInteger
.reg_setup[n].value[m] An array with register setup values (corresponds to .peripheral[m] below. NonNegativeInteger
.reg_setup[n].peripheral[m] An array with the peripheral names that setup belongs too. xs:string
+
+
+ + + + diff --git a/docs/Zone/html/fm_sau.html b/docs/Zone/html/fm_sau.html new file mode 100644 index 0000000..56eeaa6 --- /dev/null +++ b/docs/Zone/html/fm_sau.html @@ -0,0 +1,151 @@ + + + + + +sau[n] sequence element +CMSIS-Zone (Preview): sau[n] sequence element + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
CMSIS-Zone (Preview) +  Version 0.9.2 +
+
System Resource Management
+
+
+ +
+
    + +
+
+ + + +
+
+ +
+
+
+ +
+ + + + +
+ +
+ +
+
+
sau[n] sequence element
+
+
+

The sau[n] sequence element lists all SAU regions for initialization in this system.

+

It lists all SAU regions that require either non-secure access or non-secure callable attribute. The SAU region list is generated from:

+
    +
  • setup information from /rzone/sau_init/region element
  • +
  • memory regions that are assigned to zones with non-secure domain.
  • +
  • memory regions that are configured as secure, non-secure callable.
  • +
+ + + + + + + + + + + + + + + +
Parent Element Element Chain
system system element
Child Elements Description Type
.sau[n].start The logical start address for the region. xs:string
.sau[n].end The logical end address for the region. xs:string
.sau[n].nsc If set to 1 the region is secure, non-secure callable. SecurityTypeEnum/xs:string
.sau[n].info List of memory regions or info from /rzone/sau_init/region element. xs:string
+
+
+ + + + diff --git a/docs/Zone/html/fm_system.html b/docs/Zone/html/fm_system.html new file mode 100644 index 0000000..b9c853b --- /dev/null +++ b/docs/Zone/html/fm_system.html @@ -0,0 +1,147 @@ + + + + + +system element +CMSIS-Zone (Preview): system element + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
CMSIS-Zone (Preview) +  Version 0.9.2 +
+
System Resource Management
+
+
+ +
+
    + +
+
+ + + +
+
+ +
+
+
+ +
+ + + + +
+ +
+ +
+
+
system element
+
+
+

The system element provides the memory layout and the TrustZone configuration of the complete system. This information can be used for example, to create a linker script that defines the memory setup of the SoC system.

+ + + + + + + + + + + + + + + + + +
Child Elements Description Type
.processor A sequence of all processor elements available in the system resource file. sequence
.memory A sequence of all memory regions available in the system resource file. sequence
.peripheral A sequence of all peripherals available in the system resource file. sequence
.sau A sequence of all SAU regions for initialization. sequence
.interrupt A sequence of all interrupt sources available. sequence
.mpc_setup Contains the device specific configuration registers for the setup of the Memory Protection Controller (MPC). sequence
.reg_setup Contains the device specific configuration registers for the setup of the peripherals. sequence
+
+
+ + + + diff --git a/docs/Zone/html/fm_system.js b/docs/Zone/html/fm_system.js new file mode 100644 index 0000000..16fb3ef --- /dev/null +++ b/docs/Zone/html/fm_system.js @@ -0,0 +1,10 @@ +var fm_system = +[ + [ "processor[n] sequence element", "fm_processor.html", null ], + [ "../memory[n] sequence element", "fm_memory.html", null ], + [ "../peripheral[n] element", "fm_peripheral.html", null ], + [ "sau[n] sequence element", "fm_sau.html", null ], + [ "interrupt[n] sequence element", "fm_interrupt.html", null ], + [ "mpc_setup[n] element", "fm_mpc_setup.html", null ], + [ "reg_setup[n] element", "fm_reg_setup.html", null ] +]; \ No newline at end of file diff --git a/docs/Zone/html/fm_zone.html b/docs/Zone/html/fm_zone.html new file mode 100644 index 0000000..d9d30bb --- /dev/null +++ b/docs/Zone/html/fm_zone.html @@ -0,0 +1,141 @@ + + + + + +zone element +CMSIS-Zone (Preview): zone element + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
CMSIS-Zone (Preview) +  Version 0.9.2 +
+
System Resource Management
+
+
+ +
+
    + +
+
+ + + +
+
+ +
+
+
+ +
+ + + + +
+ +
+ +
+
+
zone element
+
+
+

The zone element provides the setup information of a zone (or system partition) along with related peripherals. This information can be used for example, to create the MPU setup that is required for various execution zones along with the related linker setup.

+ + + + + + + + + + + +
Child Elements Description Type
.name The name of the zone (or system partition). string
.memory A sequence of all memory regions that are accessible in the zone (or system partition). sequence
.peripheral A sequence of all peripherals that are accessible in the zone (or system partition). sequence
.mpu_setup A sequence of configuration information for the Memory Protection Unit (MPU). sequence
+
+
+ + + + diff --git a/docs/Zone/html/fm_zone.js b/docs/Zone/html/fm_zone.js new file mode 100644 index 0000000..422aebd --- /dev/null +++ b/docs/Zone/html/fm_zone.js @@ -0,0 +1,6 @@ +var fm_zone = +[ + [ "../memory[n] sequence element", "fm_memory.html", null ], + [ "../peripheral[n] element", "fm_peripheral.html", null ], + [ "mpu_setup element", "fm_mpu_setup.html", null ] +]; \ No newline at end of file diff --git a/docs/Zone/html/format_assign.html b/docs/Zone/html/format_assign.html deleted file mode 100644 index 99e1e99..0000000 --- a/docs/Zone/html/format_assign.html +++ /dev/null @@ -1,163 +0,0 @@ - - - - - -/assign element -CMSIS-Zone (Preview): /assign element - - - - - - - - - - - - - - -
-
- - - - - - - -
-
CMSIS-Zone (Preview) -  Version 0.0.1 -
-
System Resource Management
-
-
- -
-
    - -
-
- - - -
-
- -
-
-
- -
- - - - -
- -
- -
-
-
/assign element
-
-
-

The assign element defines the resources used by a zone.

-

Example

-
<zones>
-
<pzone name="App" Dname="ARM32CM4128x" Pname="Cortex-M4">
-
<assign name="SHARED" as="SRAM" access="rwu">
-
<capture symbol=".bss.shared"/>
-
<capture symbol=".data.shared"/>
-
:
-
</assign>
-
<assign name="ADC0" access="rw" />
-
:
-
</pzone>
-
:
-
</zones>
-

Schema Description

- - - - - - - - - - - - - - - - - - - -
Parent Element Element Chain
pzone /pzone element
Attributes Description Type Use
name The name of a resource (mapped to the processor) to be used by this zone. xs:string required
as The name of the mapping (alias) to be used to address the referenced resource. xs:string optional
access Additional access attributes to be used. xs:string optional
info Brief description of the resource assignment. xs:string optional
Child Elements Description Type Occurrence
/capture element Linker usage complexType 0..*
-
-
- - - - diff --git a/docs/Zone/html/format_assign.js b/docs/Zone/html/format_assign.js deleted file mode 100644 index cbda2c2..0000000 --- a/docs/Zone/html/format_assign.js +++ /dev/null @@ -1,4 +0,0 @@ -var format_assign = -[ - [ "/capture element", "format_capture.html", null ] -]; \ No newline at end of file diff --git a/docs/Zone/html/format_block.html b/docs/Zone/html/format_block.html deleted file mode 100644 index 727098f..0000000 --- a/docs/Zone/html/format_block.html +++ /dev/null @@ -1,162 +0,0 @@ - - - - - -/block element -CMSIS-Zone (Preview): /block element - - - - - - - - - - - - - - -
-
- - - - - - - -
-
CMSIS-Zone (Preview) -  Version 0.0.1 -
-
System Resource Management
-
-
- -
-
    - -
-
- - - -
-
- -
-
-
- -
- - - - -
- -
- -
-
-
/block element
-
-
-

The block element is used to subdived a physical memory region into segregated logical blocks.

-

Example

-
<resources>
-
<memory>
-
<!-- 512KB SRAM integrated on the SoC -->
-
<region name="SRAM" size="0x80000" access="rwx" info="Internal SRAM (512KB)">
-
<block name="SHARED" offset="0x00000" size="0x08000" access="rwu" info="Shared memory area for inter process communication."/>
-
:
-
</region>
-
:
-
</memory>
-
:
-
</resources>
-

Schema Description

- - - - - - - - - - - - - - - - - - - -
Parent Element Element Chain
region /region element
Attributes Description Type Use
name The name this memory block can be referenced by. Must be unique within a single device. xs:string required
size The physical memory size this block allocates. xs:string required
access The access attributes for this memory block. xs:string optional
info Brief description of the memory block. xs:string optional
Child Elements Description Type Occurrence
/block element Memory block definitions. complexType 0..*
-
-
- - - - diff --git a/docs/Zone/html/format_capture.html b/docs/Zone/html/format_capture.html deleted file mode 100644 index 350db77..0000000 --- a/docs/Zone/html/format_capture.html +++ /dev/null @@ -1,158 +0,0 @@ - - - - - -/capture element -CMSIS-Zone (Preview): /capture element - - - - - - - - - - - - - - -
-
- - - - - - - -
-
CMSIS-Zone (Preview) -  Version 0.0.1 -
-
System Resource Management
-
-
- -
-
    - -
-
- - - -
-
- -
-
-
- -
- - - - -
- -
- -
-
-
/capture element
-
-
-

The capture element can be used to specify linker symbol patterns to be placed into the enclosing memory assignment.

-

Example

-
<zones>
-
<pzone name="App" Dname="ARM32CM4128x" Pname="Cortex-M4">
-
<assign name="SHARED" as="SRAM" access="rwu">
-
<capture symbol=".bss.shared"/>
-
<capture symbol=".data.shared"/>
-
:
-
</assign>
-
:
-
</pzone>
-
:
-
</zones>
-

Schema Description

- - - - - - - - - - - - - - - -
Parent Element Element Chain
assign /assign element
Attributes Description Type Use
cunit Pattern selecting the compilation unit(s) to be placed into this assignment. xs:string optional
symbol Pattern selecting the symbols to be placed into this assignment. xs:string optional
Child Elements Description Type Occurrence
complexType 0..*
-
-
- - - - diff --git a/docs/Zone/html/format_device.html b/docs/Zone/html/format_device.html deleted file mode 100644 index d322a34..0000000 --- a/docs/Zone/html/format_device.html +++ /dev/null @@ -1,182 +0,0 @@ - - - - - -/device element -CMSIS-Zone (Preview): /device element - - - - - - - - - - - - - - -
-
- - - - - - - -
-
CMSIS-Zone (Preview) -  Version 0.0.1 -
-
System Resource Management
-
-
- -
-
    - -
-
- - - -
-
- -
-
-
- -
- - - - -
- -
- -
-
-
/device element
-
-
-

The device element is used to define one integral System-on-Chip (SoC) device.

-

Example

-
<device Dname="ARM32CM4128x">
-
<package name="ARM32CM4xxx_DFP" url="http://www.keil.com/pack" vendor="ARM" version="1.8.15"/>
-
-
<processor Pname="Cortex-M4">
-
:
-
</processor>
-
:
-
-
<!-- Device uniform memory map -->
-
<memory_map>
-
<!-- Logical address to access integrated SRAM -->
-
<memory name="SRAM" start="0x10000000"/>
-
:
-
</memory_map>
-
-
<resources>
-
<memory>
-
<!-- 512KB SRAM integrated on the SoC -->
-
<region name="SRAM" size="0x80000" access="rwx" info="Internal SRAM (512KB)"/>
-
:
-
</memory>
-
</resources>
-
</device>
-

Schema Description

- - - - - - - - - - - - - - - - - - - - - - - - - - - -
Parent Element Element Chain
system /system element
Attributes Description Type Use
Dfamily The familiy name the device belongs to. xs:string optional
DsubFamily The sub familiy name the device belongs to. xs:string optional
Dname The device name. xs:string required
Dvendor The devices vendor identifier. xs:string required
info Brief description of the device. xs:string optional
Child Elements Description Type Occurrence
package Optional reference to the Software Pack this device is provided by. complexType 0..1
processor Processing elements and associated features embedded in the device. complexType 1..*
resources Memory and peripheral resources embedded in the device. In contrast to resources defined on system level those at device level are only accessible from processors located on the same enclosing device. complexType 0..1
memory_map All physical resources are accessible using logical memory addresses, i.e. typically called memory map. Common logical addresses valid for all processing elements can be defined at device level memory map, i.e. devices with an uniform memory map. Refer to the individual processor memory map for devices with non-uniform memory maps. complexType 0..1
-
-
- - - - diff --git a/docs/Zone/html/format_device.js b/docs/Zone/html/format_device.js deleted file mode 100644 index e030644..0000000 --- a/docs/Zone/html/format_device.js +++ /dev/null @@ -1,7 +0,0 @@ -var format_device = -[ - [ "/package element", "format_package.html", null ], - [ "/processor element", "format_processor.html", "format_processor" ], - [ "/resources element", "format_resources.html", "format_resources" ], - [ "/memory_map element", "format_memory_map.html", "format_memory_map" ] -]; \ No newline at end of file diff --git a/docs/Zone/html/format_group.html b/docs/Zone/html/format_group.html deleted file mode 100644 index 445afb5..0000000 --- a/docs/Zone/html/format_group.html +++ /dev/null @@ -1,163 +0,0 @@ - - - - - -/group element -CMSIS-Zone (Preview): /group element - - - - - - - - - - - - - - -
-
- - - - - - - -
-
CMSIS-Zone (Preview) -  Version 0.0.1 -
-
System Resource Management
-
-
- -
-
    - -
-
- - - -
-
- -
-
-
- -
- - - - -
- -
- -
-
-
/group element
-
-
-

The group element can be used to logically group peripherals together, e.g. according to functionality or bus topology.

-

Example

-
<resources>
-
:
-
<peripherals>
-
<peripheral name="ADC0" size="0x1000" access="rw" info="Analog/Digital Converter 0 (12-bit)"/>
-
:
-
<group name="USART" info="Universal synchronous/asynchronous receiver/transmitter">
-
<peripheral name="UART0" size="0x1000" access="rw" info="Universal asynchronous receiver/transmitter 0"/>
-
<peripheral name="USART1" size="0x1000" access="rw" info="Universal synchronous/asynchronous receiver/transmitter 1"/>
-
:
-
</group>
-
</peripherals>
-
</resources>
-

Schema Description

- - - - - - - - - - - - - - - - - - - -
Parent Element Element Chain
peripherals /peripherals element
group /group element
Attributes Description Type Use
name The name for the peripheral group. xs:string required
info Brief description of the peripheral group. xs:string optional
Child Elements Description Type Occurrence
/group element Logical grouping of peripherals. complexType 0..*
/peripheral element Peripheral definitions. complexType 0..*
-
-
- - - - diff --git a/docs/Zone/html/format_group.js b/docs/Zone/html/format_group.js deleted file mode 100644 index 87d9b21..0000000 --- a/docs/Zone/html/format_group.js +++ /dev/null @@ -1,4 +0,0 @@ -var format_group = -[ - [ "/peripheral element", "format_peripheral.html", null ] -]; \ No newline at end of file diff --git a/docs/Zone/html/format_map_memory.html b/docs/Zone/html/format_map_memory.html deleted file mode 100644 index 699b69f..0000000 --- a/docs/Zone/html/format_map_memory.html +++ /dev/null @@ -1,161 +0,0 @@ - - - - - -/memory element -CMSIS-Zone (Preview): /memory element - - - - - - - - - - - - - - -
-
- - - - - - - -
-
CMSIS-Zone (Preview) -  Version 0.0.1 -
-
System Resource Management
-
-
- -
-
    - -
-
- - - -
-
- -
-
-
- -
- - - - -
- -
- -
-
-
/memory element
-
-
-

The memory element is used to define an address mapping for one memory/region.

-

Example

-
<memory_map>
-
<!-- Logical address to access integrated SRAM -->
-
<memory name="SRAM" start="0x10000000"/>
-
-
<!-- Logical address alias to access integrated SRAM -->
-
<memory name="CODE_SRAM" alias="SRAM" start="0x00000000"/>
-
:
-
</memory_map>
-

Schema Description

- - - - - - - - - - - - - - - - - - - - - -
Parent Element Element Chain
memory_map /memory_map element
Attributes Description Type Use
name The name this address mapping can be referenced by. Must be unique within a single processors memory map. xs:string required
alias Reference to the (physical) memory region mapped. If the alias is ommitted the name is used. xs:string optional
start The logical start address the memory region is accessible at. xs:string required
size The amount of memory that is accessible. If ommitted the size is taken over from the memory region. xs:string optional
info Brief description of the memory mapping. xs:string optional
Child Elements Description Type Occurrence
complexType 0..1
-
-
- - - - diff --git a/docs/Zone/html/format_map_peripheral.html b/docs/Zone/html/format_map_peripheral.html deleted file mode 100644 index 9bfb4ae..0000000 --- a/docs/Zone/html/format_map_peripheral.html +++ /dev/null @@ -1,156 +0,0 @@ - - - - - -/peripheral element -CMSIS-Zone (Preview): /peripheral element - - - - - - - - - - - - - - -
-
- - - - - - - -
-
CMSIS-Zone (Preview) -  Version 0.0.1 -
-
System Resource Management
-
-
- -
-
    - -
-
- - - -
-
- -
-
-
- -
- - - - -
- -
- -
-
-
/peripheral element
-
-
-

The peripheral element is used to define an address mapping for one peripheral.

-

Example

-
<memory_map>
-
<!-- Logical address to access peripheral ADC0 registers -->
-
<peripheral name="ADC0" start="0x40010000"/>
-
:
-
</memory_map>
-

Schema Description

- - - - - - - - - - - - - - - - - - - -
Parent Element Element Chain
memory_map /memory_map element
Attributes Description Type Use
name The name this address mapping can be referenced by. Must be unique within a single processors memory map. xs:string required
alias Reference to the (physical) peripheral mapped. If the alias is ommitted the name is used. xs:string optional
start The logical start address the peripheral registers are accessible at. xs:string required
info Brief description of the peripheral mapping. xs:string optional
Child Elements Description Type Occurrence
complexType 0..1
-
-
- - - - diff --git a/docs/Zone/html/format_memory.html b/docs/Zone/html/format_memory.html deleted file mode 100644 index 3318a50..0000000 --- a/docs/Zone/html/format_memory.html +++ /dev/null @@ -1,149 +0,0 @@ - - - - - -/memory element -CMSIS-Zone (Preview): /memory element - - - - - - - - - - - - - - -
-
- - - - - - - -
-
CMSIS-Zone (Preview) -  Version 0.0.1 -
-
System Resource Management
-
-
- -
-
    - -
-
- - - -
-
- -
-
-
- -
- - - - -
- -
- -
-
-
/memory element
-
-
-

The memory element groups memory regions.

-

Example

-
<resources>
-
<memory>
-
<!-- 512KB SRAM integrated on the SoC -->
-
<region name="SRAM" size="0x80000" access="rwx" info="Internal SRAM (512KB)"/>
-
:
-
</memory>
-
:
-
</resources>
-

Schema Description

- - - - - - - - - -
Parent Element Element Chain
Resources /resources element
Child Elements Description Type Occurrence
/region element Memory region definitions. complexType 0..*
-
-
- - - - diff --git a/docs/Zone/html/format_memory.js b/docs/Zone/html/format_memory.js deleted file mode 100644 index b0057f4..0000000 --- a/docs/Zone/html/format_memory.js +++ /dev/null @@ -1,4 +0,0 @@ -var format_memory = -[ - [ "/region element", "format_region.html", "format_region" ] -]; \ No newline at end of file diff --git a/docs/Zone/html/format_memory_map.html b/docs/Zone/html/format_memory_map.html deleted file mode 100644 index 1c1514f..0000000 --- a/docs/Zone/html/format_memory_map.html +++ /dev/null @@ -1,153 +0,0 @@ - - - - - -/memory_map element -CMSIS-Zone (Preview): /memory_map element - - - - - - - - - - - - - - -
-
- - - - - - - -
-
CMSIS-Zone (Preview) -  Version 0.0.1 -
-
System Resource Management
-
-
- -
-
    - -
-
- - - -
-
- -
-
-
- -
- - - - -
- -
- -
-
-
/memory_map element
-
-
-

The memory_map element is used to to define the logical address mappings (i.e. the "memory map").

-

Example

-
<memory_map>
-
<!-- Logical address to access integrated SRAM -->
-
<memory name="SRAM" start="0x10000000"/>
-
:
-
<!-- Logical address to access peripheral ADC0 registers -->
-
<peripheral name="ADC0" start="0x40010000"/>
-
:
-
</memory_map>
-

Schema Description

- - - - - - - - - - - - - -
Parent Element Element Chain
device /device element
processor /processor element
Child Elements Description Type Occurrence
memory One memory entry per memory region mapped into the logical address space. complexType 0..*
peripheral One peripheral entry per peripheral mapped into the logical address space. complexType 0..*
-
-
- - - - diff --git a/docs/Zone/html/format_memory_map.js b/docs/Zone/html/format_memory_map.js deleted file mode 100644 index aba48cc..0000000 --- a/docs/Zone/html/format_memory_map.js +++ /dev/null @@ -1,5 +0,0 @@ -var format_memory_map = -[ - [ "/memory element", "format_map_memory.html", null ], - [ "/peripheral element", "format_map_peripheral.html", null ] -]; \ No newline at end of file diff --git a/docs/Zone/html/format_package.html b/docs/Zone/html/format_package.html deleted file mode 100644 index f4f58d5..0000000 --- a/docs/Zone/html/format_package.html +++ /dev/null @@ -1,153 +0,0 @@ - - - - - -/package element -CMSIS-Zone (Preview): /package element - - - - - - - - - - - - - - -
-
- - - - - - - -
-
CMSIS-Zone (Preview) -  Version 0.0.1 -
-
System Resource Management
-
-
- -
-
    - -
-
- - - -
-
- -
-
-
- -
- - - - -
- -
- -
-
-
/package element
-
-
-

The package element can optinally be used to refer to the Software Pack providing a certain device.

-

Example

-
<device Dname="ARM32CM4128x">
-
<package name="ARM32CM4xxx_DFP" url="http://www.keil.com/pack" vendor="ARM" version="1.8.15"/>
-
:
-
</device>
-

Schema Description

- - - - - - - - - - - - - - - - - -
Parent Element Element Chain
device /device element
Attributes Description Type Use
name The unique pack name. xs:string required
url The URL the pack can be obtained from. xs:string required
vendor The pack vendor name. xs:string required
version The pack version. xs:string optional
info Brief description of the Software Pack. xs:string optional
-
-
- - - - diff --git a/docs/Zone/html/format_peripheral.html b/docs/Zone/html/format_peripheral.html deleted file mode 100644 index a5572f5..0000000 --- a/docs/Zone/html/format_peripheral.html +++ /dev/null @@ -1,165 +0,0 @@ - - - - - -/peripheral element -CMSIS-Zone (Preview): /peripheral element - - - - - - - - - - - - - - -
-
- - - - - - - -
-
CMSIS-Zone (Preview) -  Version 0.0.1 -
-
System Resource Management
-
-
- -
-
    - -
-
- - - -
-
- -
-
-
- -
- - - - -
- -
- -
-
-
/peripheral element
-
-
-

The peripheral element is used to define physical peripheral resources.

-

Example

-
<resources>
-
:
-
<peripherals>
-
<peripheral name="ADC0" size="0x1000" access="rw" info="Analog/Digital Converter 0 (12-bit)"/>
-
:
-
<group name="USART" info="Universal synchronous/asynchronous receiver/transmitter">
-
<peripheral name="UART0" size="0x1000" access="rw" info="Universal asynchronous receiver/transmitter 0"/>
-
<peripheral name="USART1" size="0x1000" access="rw" info="Universal synchronous/asynchronous receiver/transmitter 1"/>
-
:
-
</group>
-
</peripherals>
-
</resources>
-

Schema Description

- - - - - - - - - - - - - - - - - - - - - -
Parent Element Element Chain
peripherals /peripherals element
group /group element
Attributes Description Type Use
name The name for this peripheral. Must be unique within a single device. xs:string required
size The memory size the peripheral registers occupy. xs:string required
access The access attributes for this peripheral. xs:string required
info Brief description of the peripheral resource. xs:string optional
Child Elements Description Type Occurrence
complexType 0..*
-
-
- - - - diff --git a/docs/Zone/html/format_peripherals.html b/docs/Zone/html/format_peripherals.html deleted file mode 100644 index 3e32996..0000000 --- a/docs/Zone/html/format_peripherals.html +++ /dev/null @@ -1,155 +0,0 @@ - - - - - -/peripherals element -CMSIS-Zone (Preview): /peripherals element - - - - - - - - - - - - - - -
-
- - - - - - - -
-
CMSIS-Zone (Preview) -  Version 0.0.1 -
-
System Resource Management
-
-
- -
-
    - -
-
- - - -
-
- -
-
-
- -
- - - - -
- -
- -
-
-
/peripherals element
-
-
-

The peripherals element groups all physical peripheral definitions.

-

Example

-
<resources>
-
:
-
<peripherals>
-
<peripheral name="ADC0" size="0x1000" access="rw" info="Analog/Digital Converter 0 (12-bit)"/>
-
:
-
<group name="USART" info="Universal synchronous/asynchronous receiver/transmitter">
-
<peripheral name="UART0" size="0x1000" access="rw" info="Universal asynchronous receiver/transmitter 0"/>
-
<peripheral name="USART1" size="0x1000" access="rw" info="Universal synchronous/asynchronous receiver/transmitter 1"/>
-
:
-
</group>
-
</peripherals>
-
</resources>
-

Schema Description

- - - - - - - - - - - -
Parent Element Element Chain
resources /resources element
Child Elements Description Type Occurrence
/group element Logical grouping of peripherals. complexType 0..*
/peripheral element Peripheral definitions. complexType 0..*
-
-
- - - - diff --git a/docs/Zone/html/format_peripherals.js b/docs/Zone/html/format_peripherals.js deleted file mode 100644 index ff09d87..0000000 --- a/docs/Zone/html/format_peripherals.js +++ /dev/null @@ -1,5 +0,0 @@ -var format_peripherals = -[ - [ "/group element", "format_group.html", "format_group" ], - [ "/peripheral element", "format_peripheral.html", null ] -]; \ No newline at end of file diff --git a/docs/Zone/html/format_processor.html b/docs/Zone/html/format_processor.html deleted file mode 100644 index 577ef84..0000000 --- a/docs/Zone/html/format_processor.html +++ /dev/null @@ -1,171 +0,0 @@ - - - - - -/processor element -CMSIS-Zone (Preview): /processor element - - - - - - - - - - - - - - -
-
- - - - - - - -
-
CMSIS-Zone (Preview) -  Version 0.0.1 -
-
System Resource Management
-
-
- -
-
    - -
-
- - - -
-
- -
-
-
- -
- - - - -
- -
- -
-
-
/processor element
-
-
-

The processor element is used to define the processing elements integration on a device.

-

Example

-
<processor Pname="Cortex-M4" Dclock="168000000" Dcore="Cortex-M4" DcoreVersion="r0p1" Dendian="Little-endian" Dfpu="SP_FPU" Dmpu="MPU" Dtz="NO_TZ">
-
<memory_map>
-
<!-- Logical address alias to access integrated SRAM -->
-
<memory name="CODE_SRAM" alias="SRAM" start="0x00000000"/>
-
:
-
</memory_map>
-
:
-
</processor>
-

Schema Description

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Parent Element Element Chain
device /device element
Attributes Description Type Use
Pname Processor identifier. This attribute is mandatory for devices that embed multiple processors. Each processor needs a per device unique identifier and must be used consistently in the Pname attribute. Only alphabetical characters, decimal digits, '-' and '_' are allowed. RestrictedString optional
Dcore Specifies the processor core. DcoreEnum optional
Dfpu Specifies whether a hardware Floating Point Unit is present in the processor. DfpuEnum optional
Dmpu Specifies whether a Memory Protection Unit is present in the processor. DmpuEnum optional
Dtz Specifies whether an Armv8-M based device implements TrustZone. DtzEnum optional
Ddsp Specifies whether an Armv8-M based device supports the DSP instructions set. DdspEnum optional
Dendian Specifies the endianess of the processor. DendianEnum optional
Dclock Specifies the max clock frequency of the processor subsystem xs:unsignedInt optional
DcoreVersion Hardware revision of the processor core xs:string required
info Brief description of the processor. xs:string optional
Child Elements Description Type Occurrence
memory_map Processor specific (non-uniform) memory map. The effective memory map of the processor is derived as the union of device and processor level mappings. complexType 0..1
-
-
- - - - diff --git a/docs/Zone/html/format_processor.js b/docs/Zone/html/format_processor.js deleted file mode 100644 index dac7317..0000000 --- a/docs/Zone/html/format_processor.js +++ /dev/null @@ -1,4 +0,0 @@ -var format_processor = -[ - [ "/memory_map element", "format_memory_map.html", "format_memory_map" ] -]; \ No newline at end of file diff --git a/docs/Zone/html/format_pzone.html b/docs/Zone/html/format_pzone.html deleted file mode 100644 index 049388d..0000000 --- a/docs/Zone/html/format_pzone.html +++ /dev/null @@ -1,166 +0,0 @@ - - - - - -/pzone element -CMSIS-Zone (Preview): /pzone element - - - - - - - - - - - - - - -
-
- - - - - - - -
-
CMSIS-Zone (Preview) -  Version 0.0.1 -
-
System Resource Management
-
-
- -
-
    - -
-
- - - -
-
- -
-
-
- -
- - - - -
- -
- -
-
-
/pzone element
-
-
-

The pzone element defines a single project zone.

-

Example

-
<zones>
-
<pzone name="App" Dname="ARM32CM4128x" Pname="Cortex-M4">
-
<assign name="SHARED" as="SRAM" access="rwu">
-
<capture symbol=".bss.shared"/>
-
:
-
</assign>
-
<assign name="ADC0" access="rw" />
-
:
-
<xzone name="process"/>
-
:
-
</pzone>
-
:
-
</zones>
-

Schema Description

- - - - - - - - - - - - - - - - - - - - - -
Parent Element Element Chain
zones /zones element
Attributes Description Type Use
name The unique name for this project zone. xs:string required
Dname The name of the device this project zone is assigned to. xs:string required
Pname The name of the processor (on the device) this project is assigned to. xs:string required
info Brief description of the project zone. xs:string optional
Child Elements Description Type Occurrence
/assign element Resource Assignments complexType 0..*
/xzone element Execution Zones complexType 0..*
-
-
- - - - diff --git a/docs/Zone/html/format_pzone.js b/docs/Zone/html/format_pzone.js deleted file mode 100644 index ac178ac..0000000 --- a/docs/Zone/html/format_pzone.js +++ /dev/null @@ -1,5 +0,0 @@ -var format_pzone = -[ - [ "/assign element", "format_assign.html", "format_assign" ], - [ "/xzone element", "format_xzone.html", "format_xzone" ] -]; \ No newline at end of file diff --git a/docs/Zone/html/format_region.html b/docs/Zone/html/format_region.html deleted file mode 100644 index db3b2ef..0000000 --- a/docs/Zone/html/format_region.html +++ /dev/null @@ -1,162 +0,0 @@ - - - - - -/region element -CMSIS-Zone (Preview): /region element - - - - - - - - - - - - - - -
-
- - - - - - - -
-
CMSIS-Zone (Preview) -  Version 0.0.1 -
-
System Resource Management
-
-
- -
-
    - -
-
- - - -
-
- -
-
-
- -
- - - - -
- -
- -
-
-
/region element
-
-
-

The region element is used to define individual physical memory regions.

-

Example

-
<resources>
-
<memory>
-
<!-- 512KB SRAM integrated on the SoC -->
-
<region name="SRAM" size="0x80000" access="rwx" info="Internal SRAM (512KB)">
-
<block name="SHARED" offset="0x00000" size="0x08000" access="rwu" info="Shared memory area for inter process communication."/>
-
:
-
</region>
-
:
-
</memory>
-
:
-
</resources>
-

Schema Description

- - - - - - - - - - - - - - - - - - - -
Parent Element Element Chain
memory /memory element
Attributes Description Type Use
name The name this memory region can be referenced by. Must be unique within a single device. xs:string required
size The physical memory size this region provides. xs:string required
access The access attributes for this memory region. xs:string required
info Brief description of the physical memory resource. xs:string optional
Child Elements Description Type Occurrence
/block element Memory block definitions. complexType 0..*
-
-
- - - - diff --git a/docs/Zone/html/format_region.js b/docs/Zone/html/format_region.js deleted file mode 100644 index 7e215fd..0000000 --- a/docs/Zone/html/format_region.js +++ /dev/null @@ -1,4 +0,0 @@ -var format_region = -[ - [ "/block element", "format_block.html", null ] -]; \ No newline at end of file diff --git a/docs/Zone/html/format_resources.html b/docs/Zone/html/format_resources.html deleted file mode 100644 index ed60721..0000000 --- a/docs/Zone/html/format_resources.html +++ /dev/null @@ -1,158 +0,0 @@ - - - - - -/resources element -CMSIS-Zone (Preview): /resources element - - - - - - - - - - - - - - -
-
- - - - - - - -
-
CMSIS-Zone (Preview) -  Version 0.0.1 -
-
System Resource Management
-
-
- -
-
    - -
-
- - - -
-
- -
-
-
- -
- - - - -
- -
- -
-
-
/resources element
-
-
-

The resources element groups physical memory and peripheral definitions.

-

Example

-
<resources>
-
<memory>
-
<!-- 512KB SRAM integrated on the SoC -->
-
<region name="SRAM" size="0x80000" access="rwx" info="Internal SRAM (512KB)"/>
-
:
-
</memory>
-
<peripherals>
-
<peripheral name="ADC0" size="0x1000" access="rw" info="Analog/Digital Converter 0 (12-bit)"/>
-
:
-
</peripherals>
-
</resources>
-

Schema Description

- - - - - - - - - - - - - - - -
Parent Element Element Chain
system /system element
device /device element
processor /processor element
Child Elements Description Type Occurrence
/memory element Group with all memory region definitions. complexType 0..1
/peripherals element Group with all peripheral definitions. complexType 0..1
-
-
- - - - diff --git a/docs/Zone/html/format_resources.js b/docs/Zone/html/format_resources.js deleted file mode 100644 index c99084c..0000000 --- a/docs/Zone/html/format_resources.js +++ /dev/null @@ -1,5 +0,0 @@ -var format_resources = -[ - [ "/memory element", "format_memory.html", "format_memory" ], - [ "/peripherals element", "format_peripherals.html", "format_peripherals" ] -]; \ No newline at end of file diff --git a/docs/Zone/html/format_system.html b/docs/Zone/html/format_system.html deleted file mode 100644 index b957d10..0000000 --- a/docs/Zone/html/format_system.html +++ /dev/null @@ -1,177 +0,0 @@ - - - - - -/system element -CMSIS-Zone (Preview): /system element - - - - - - - - - - - - - - -
-
- - - - - - - -
-
CMSIS-Zone (Preview) -  Version 0.0.1 -
-
System Resource Management
-
-
- -
-
    - -
-
- - - -
-
- -
-
-
- -
- - - - -
- -
- -
-
-
/system element
-
-
-

The system element is the root element of a CMSIS-Zone system definition.

-

Example

-
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-
<system xmlns:xs="http://www.w3.org/2001/XMLSchema-instance">
-
<!-- Arm SoC with Cortex-M4 processor -->
-
<device Dname="ARM32CM4128x">
-
<processor Pname="Cortex-M4">
-
:
-
</processor>
-
:
-
</device>
-
-
<resources>
-
<memory>
-
<!-- 16MB external Flash memory, e.g. attached to the SoC using a memory interface -->
-
<region name="EXT_FLASH" size="0x1000000" access="rx" info="External Flash (16MB)"/>
-
:
-
</memory>
-
</resources>
-
-
<zones>
-
<!-- Project Zone for Application running on the previously defined ARM SoC -->
-
<pzone name="Application" Dname="ARM32CM412x" Pname="Cortex-M4">
-
:
-
</pzone>
-
:
-
</zones>
-
</system>
-

Schema Description

- - - - - - - - - - - - - - - - - - - -
Parent Element Element Chain
root Document root
Attributes Description Type Use
xmlns:xs Is set to: "http://www.w3.org/2001/XMLSchema-instance" to indicate compliance to the XML format. xs:decimal required
xs:noNamespaceSchemaLocation Path and file name of the XML Schema Definition (XSD). xs:string required
Child Elements Description Type Occurrence
device Specifies available microcontroller devices (i.e. SoCs) that are part of the system. Typically a system contains only a single SoC device. complexType 1..*
resources Specifies the resources (i.e. memory and peripherals) on system level, i.e. those not integral part of an SoC device. Resources defined on system level may be specified as shared between multiple SoCs. complexType 0..1
zones Specifies the system partitioning in terms of project and execution zones. complexType 0..1
-
-
- - - - diff --git a/docs/Zone/html/format_system.js b/docs/Zone/html/format_system.js deleted file mode 100644 index 530c764..0000000 --- a/docs/Zone/html/format_system.js +++ /dev/null @@ -1,6 +0,0 @@ -var format_system = -[ - [ "/device element", "format_device.html", "format_device" ], - [ "/resources element", "format_resources.html", "format_resources" ], - [ "/zones element", "format_zones.html", "format_zones" ] -]; \ No newline at end of file diff --git a/docs/Zone/html/format_xzone.html b/docs/Zone/html/format_xzone.html deleted file mode 100644 index 667463c..0000000 --- a/docs/Zone/html/format_xzone.html +++ /dev/null @@ -1,159 +0,0 @@ - - - - - -/xzone element -CMSIS-Zone (Preview): /xzone element - - - - - - - - - - - - - - -
-
- - - - - - - -
-
CMSIS-Zone (Preview) -  Version 0.0.1 -
-
System Resource Management
-
-
- -
-
    - -
-
- - - -
-
- -
-
-
- -
- - - - -
- -
- -
-
-
/xzone element
-
-
-

The xzone element defines an execution zone, i.e. a process grouping threads sharing common resource access attributes.

-

Example

-
<zones>
-
<pzone name="App" Dname="ARM32CM4128x" Pname="Cortex-M4">
-
<assign name="SHARED" as="SRAM" access="rwu"/>
-
<assign name="ADC0" access="rw" />
-
:
-
<xzone name="process">
-
<assign name="ADC0" access="rwu"/>
-
</xzone>
-
:
-
</pzone>
-
:
-
</zones>
-

Schema Description

- - - - - - - - - - - - - - - -
Parent Element Element Chain
pzone /pzone element
Attributes Description Type Use
name The name of a resource (mapped to the processor) to be used by this zone. xs:string required
info Brief description of the resource assignment. xs:string optional
Child Elements Description Type Occurrence
/assign element Resource assignments complexType 0..*
-
-
- - - - diff --git a/docs/Zone/html/format_xzone.js b/docs/Zone/html/format_xzone.js deleted file mode 100644 index f5fcc90..0000000 --- a/docs/Zone/html/format_xzone.js +++ /dev/null @@ -1,4 +0,0 @@ -var format_xzone = -[ - [ "/assign element", "format_assign.html", "format_assign" ] -]; \ No newline at end of file diff --git a/docs/Zone/html/format_zones.html b/docs/Zone/html/format_zones.html deleted file mode 100644 index 3a5702b..0000000 --- a/docs/Zone/html/format_zones.html +++ /dev/null @@ -1,149 +0,0 @@ - - - - - -/zones element -CMSIS-Zone (Preview): /zones element - - - - - - - - - - - - - - -
-
- - - - - - - -
-
CMSIS-Zone (Preview) -  Version 0.0.1 -
-
System Resource Management
-
-
- -
-
    - -
-
- - - -
-
- -
-
-
- -
- - - - -
- -
- -
-
-
/zones element
-
-
-

The zones element groups all zone definitions.

-

Example

-
<zones>
-
<pzone name="App" Dname="ARM32CM4128x" Pname="Cortex-M4">
-
<assign name="SHARED" as="SRAM" access="rwu"/>
-
<assign name="ADC0" access="rw" />
-
:
-
</pzone>
-
:
-
</zones>
-

Schema Description

- - - - - - - - - -
Parent Element Element Chain
system /system element
Child Elements Description Type Occurrence
/pzone element Project zone definitions complexType 0..*
-
-
- - - - diff --git a/docs/Zone/html/format_zones.js b/docs/Zone/html/format_zones.js deleted file mode 100644 index bd596f9..0000000 --- a/docs/Zone/html/format_zones.js +++ /dev/null @@ -1,4 +0,0 @@ -var format_zones = -[ - [ "/pzone element", "format_pzone.html", "format_pzone" ] -]; \ No newline at end of file diff --git a/docs/Zone/html/gen_output.png b/docs/Zone/html/gen_output.png new file mode 100644 index 0000000..26c3236 Binary files /dev/null and b/docs/Zone/html/gen_output.png differ diff --git a/docs/Zone/html/genmodel.png b/docs/Zone/html/genmodel.png deleted file mode 100644 index c2596eb..0000000 Binary files a/docs/Zone/html/genmodel.png and /dev/null differ diff --git a/docs/Zone/html/gpio_pins_config.png b/docs/Zone/html/gpio_pins_config.png new file mode 100644 index 0000000..dc0f0da Binary files /dev/null and b/docs/Zone/html/gpio_pins_config.png differ diff --git a/docs/Zone/html/hello_world_output.png b/docs/Zone/html/hello_world_output.png new file mode 100644 index 0000000..5d17d96 Binary files /dev/null and b/docs/Zone/html/hello_world_output.png differ diff --git a/docs/Zone/html/hello_world_proj_window.png b/docs/Zone/html/hello_world_proj_window.png new file mode 100644 index 0000000..6463012 Binary files /dev/null and b/docs/Zone/html/hello_world_proj_window.png differ diff --git a/docs/Zone/html/import_from_file.png b/docs/Zone/html/import_from_file.png new file mode 100644 index 0000000..4f8a4f0 Binary files /dev/null and b/docs/Zone/html/import_from_file.png differ diff --git a/docs/Zone/html/import_projects.png b/docs/Zone/html/import_projects.png new file mode 100644 index 0000000..daa60aa Binary files /dev/null and b/docs/Zone/html/import_projects.png differ diff --git a/docs/Zone/html/index.html b/docs/Zone/html/index.html index 1e1f3f7..8ae2b35 100644 --- a/docs/Zone/html/index.html +++ b/docs/Zone/html/index.html @@ -32,7 +32,7 @@ Logo
CMSIS-Zone (Preview) -  Version 0.0.1 +  Version 0.9.2
System Resource Management
@@ -110,60 +110,44 @@ $(document).ready(function(){initNavTree('index.html','');});
CMSIS-Zone (Preview) Documentation
-

This is a preview of CMSIS-Zone which is scheduled for release in Q1'2018. The final release of CMSIS-Zone will provide:

+

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 Zone Description Format (XML based).

+

CMSIS-Zone includes a utility that manages these XML files. This utility:

    -
  • Zone Description Format (XML based) which stores consistent system setup information.
  • -
  • CMSIS-Zone configuration utility for system partitioning. The data captured can be exported to various project and configuration files using file templates.
  • +
  • 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.
-

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, and peripherals. The system resource and partitioning information is stored in Zone Description Format (XML based).

-

CMSIS-Zone includes an interactive tool that manages files in the Zone Description Format which allows to:

-
    -
  • create system resource information from existing CMSIS-SVD and CMSIS-Pack descriptions.
  • -
  • partition system resources into various project zones.
  • -
  • partition a project zone into multiple execution zones.
  • -
  • generate various configuration files for tool set-up and hardware initialization.
  • -
-

The following diagram explains the development flow when using the CMSIS-Zone management tool.

+

The following diagram explains the development work flow when using the CMSIS-Zone management tool.

-DevelopmentFlow.png +Partitioning_Workflow.png
-CMSIS-Zone Development Flow
-

The following sections explain:

+CMSIS-Zone development workflow
+

The CMSIS-Zone utility reads a .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 .azone file.

+

The combined information of resources and assignments can be exported to multiple .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:

-

-CMSIS-Zone Use Cases

-

CMSIS-Zone simplifies to manage the complexity and the configuration of modern embedded systems that frequently include multiple processors and/or memory protection hardware. It helps to split the embedded application various projects which creates the need to partition system resources. And it simplifies the consistent configuration of access rights across the system, for example when using an MPU (memory protection unit).

-

The following section describes several uses cases that benefit from CMSIS-Zone.

-

-MPU Protection

-

Focused on a single core microcontroller one might want to utilize the memory protection unit (MPU) capabilities to segregate parts of an application. Thus the need to partition the system resources accordingly arises.

-
-mpu.png -
-MPU Protection
-

-TrustZone Partitioning

-

TrustZone extensions add another degree of segregation which must be handled consistently. In this case one has to handle MPU settings per security context and SAU configuration.

+

The following SoC diagram exemplifies step 1 and step 2 of this workflow.

-trustzone.png +Partitioning_Hardware.png
-TrustZone Partitioning and MPU Protection
-

-Multi-Core Partitioning

-

Beside traditional single cores asymetric and hybrid multi-core devices contribute to increasing development complexity for embedded systems. Having multiple cores running different parts of an application concurrently needs a well defined resource assignment to prevent undesired misbehaviour.

-
-multicore.png -
-Multi-Core Partitioning
+Hardware partitioning in multiple steps
+

The following sections explain:

+