Updated cMSIS Core (Using TrustZone) documentation.
diff --git a/CMSIS/DoxyGen/Core/src/UsingTrustZone.txt b/CMSIS/DoxyGen/Core/src/UsingTrustZone.txt
index f6c3f21..89cd5e5 100644
--- a/CMSIS/DoxyGen/Core/src/UsingTrustZone.txt
+++ b/CMSIS/DoxyGen/Core/src/UsingTrustZone.txt
@@ -34,9 +34,9 @@
- <b>User Application:</b> control can be transferred to <b>Non-secure state</b> to execute user code. This code can only call functions in the <b>secure state</b> that are marked for execution with the <b>SG</b> (secure gate) instruction and memory attributes. Any attempt to access memory or peripherals that are assigned to the <b>Secure state</b> triggers a security exception.
- - <b>Firmware callbacks:</b> code executed in the <b>Secure state</b> can executed code in the <b>Non-secure state</b> using call-back function pointers. For example, a communication stack (protected firmware) could use a I/O driver that is configured in user space.
+ - <b>Firmware callbacks:</b> code running in the <b>Secure state</b> can execute code in the <b>Non-secure state</b> using call-back function pointers. For example, a communication stack (protected firmware) could use an I/O driver that is configured in user space.
-\image html "SimpleUseCase.png" "Simplified Use Case"
+<img id="SimpleUseCase" src="SimpleUseCase.png"><CENTER><b>Simplified Use Case</b></CENTER>
Program execution in the <b>Secure state</b> is further protected by TrustZone hardware from software failures.
For example, an ARMv8-M system may implement two independent SYSTICK timers which allows to stop code execution
@@ -46,18 +46,18 @@
\subsection Example_TrustZone Program Example
-A sample application that reflects this <b>Simplified Use Case</b> is the <b>ARMv8MBL Secure/Non-Secure example</b> that is available in
+A sample application that reflects this <a href="#SimpleUseCase"><b>Simplified Use Case</b></a> is the <b>ARMv8MBL Secure/Non-Secure example</b> that is available in
the Software Pack <b>Keil - ARM V2M-MPS2 Board Support PACK for Cortex-M System Design Kit Devices</b>
(Keil:V2M-MPS2_CMx_BSP.1.2.0.pack or higher).
\section Model_TrustZone Programmers Model with TrustZone
-The figure <b>Secure Memory Map</b> shows the memory view for the Secure state. In the Secure state all
+The figure <a href="#MemoryMap_S"><b>Secure Memory Map</b></a> shows the memory view for the <b>Secure state</b>. In the Secure state all
memory and peripherals can be accessed. The <b>System Control and Debug</b> area provides access to secure peripherals
and non-secure peripherals that are mirrored at a memory alias.
-The secure peripherals only accessible during program execution in <b>Secure state</b>. The Secure Attribute Unit (SAU)
+The secure peripherals are only accessible during program execution in <b>Secure state</b>. The Secure Attribute Unit (SAU)
configures the non-secure memory, peripheral, and interrupt access. Also available are a secure MPU (memory protection
unit), secure SCB (system control block), and secure SysTick timer.
@@ -65,29 +65,29 @@
This interrupt assignment is controlled during <b>Secure state</b> code execution via the NVIC
(nested vector interrupt controller).
-\image html "MemoryMap_S.png" "Secure Memory Map"
+<img id="MemoryMap_S" src="MemoryMap_S.png"><CENTER><b>Secure Memory Map</b></CENTER>
-The figure <b>Non-Secure Memory Map</b> shows the memory view for the Non-secure state. This memory view is identical
+The figure <a href="#MemoryMap_NS"><b>Non-Secure Memory Map</b></a> shows the memory view for the Non-secure state. This memory view is identical
to the traditional Cortex-M memory map. Access to any secure memory or peripheral space triggers the secure exception
that executes a handler in <b>Secure state</b>.
-The \ref partition_h_pg defines the initial setup of the <b>Non-Secure Memory Map</b> during system start in the Secure state
+The \ref partition_h_pg defines the initial setup of the <a href="#MemoryMap_NS"><b>Non-Secure Memory Map</b></a> during system start in the Secure state
(refer to functions \ref SystemInit and \ref TZ_SAU_Setup).
-\image html "MemoryMap_NS.png" "Non-Secure Memory Map"
+<img id="MemoryMap_NS" src="MemoryMap_NS.png"><CENTER><b>Non-Secure Memory Map</b></CENTER>
The figure <b>Registers</b> shows the register view of the ARMv8-M system with TrustZone. As the general purpose registers
are can be accessed from any state (secure or non-secure), function calls between the states use these registers for parameter
and return values.
-The register R13 is the stack pointer alias and the actual stack pointer (PSP_NS, MSP_NS, PSP_S, MSP_S)
-accessed depends on a) state (Secure or Non-secure) and b) mode (handler=exception/interrupt execution or
+The register R13 is the stack pointer alias, and the actual stack pointer (PSP_NS, MSP_NS, PSP_S, MSP_S)
+accessed depends on state (Secure or Non-secure) and mode (handler=exception/interrupt execution or
thread=normal code execution).
-In ARMv8-M Mainline, each stack pointer has an limit register (PSPLIM_NS, MSPLIM_NS, PSPLIM_S, MSPLIM_S)
+In ARMv8-M Mainline, each stack pointer has a limit register (PSPLIM_NS, MSPLIM_NS, PSPLIM_S, MSPLIM_S)
that traps stack overflows with the \b UsageFault exception (register UFSR bit STKOF=1).
-An ARMv8-M system with TrustZone has for each state (Secure or Non-secure) an independent \b CONTROL register.
+An ARMv8-M system with TrustZone has an independent \b CONTROL register for each state (Secure or Non-secure).
The interrupt/exception control registers (PRIMASK, FAULTMASK, BASEPRI) are banked between the states (Secure or Non-secure),
however the interrupt priority for the Non-Secure state can be lowered (SCB_AIRCR register bit PRIS) so that
secure interrupts have always higher priority.
diff --git a/CMSIS/DoxyGen/Core/src/images/ARMv8-M_images.pptx b/CMSIS/DoxyGen/Core/src/images/ARMv8-M_images.pptx
index e9066df..0fdb82d 100644
--- a/CMSIS/DoxyGen/Core/src/images/ARMv8-M_images.pptx
+++ b/CMSIS/DoxyGen/Core/src/images/ARMv8-M_images.pptx
Binary files differ
diff --git a/CMSIS/DoxyGen/Core/src/images/CMSIS_TZ_files.png b/CMSIS/DoxyGen/Core/src/images/CMSIS_TZ_files.png
index 9ea4a77..dac02cc 100644
--- a/CMSIS/DoxyGen/Core/src/images/CMSIS_TZ_files.png
+++ b/CMSIS/DoxyGen/Core/src/images/CMSIS_TZ_files.png
Binary files differ