diff --git a/.github/workflows/pack.yml b/.github/workflows/pack.yml
index eb48d7e68..e5277389f 100644
--- a/.github/workflows/pack.yml
+++ b/.github/workflows/pack.yml
@@ -29,9 +29,9 @@ jobs:
with:
doxygen-version: 1.9.6
packchk-version: 1.3.98
- gen-doc-script: ./CMSIS/DoxyGen/gen_doc.sh
- check-links-script: ./CMSIS/DoxyGen/check_links.sh
- doc-path: ./CMSIS/Documentation/
+ gen-doc-script: ./CMSIS/Documentation/Doxygen/gen_doc.sh
+ check-links-script: ./CMSIS/Documentation/Doxygen/check_links.sh
+ doc-path: ./CMSIS/Documentation/html
gen-pack-script: ./gen_pack.sh --no-preprocess
gen-pack-output: ./output
gh-pages-branch: gh-pages
diff --git a/.gitignore b/.gitignore
index 6c60f34ad..ea71c30d1 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,7 +1,7 @@
*.junit
**/__pycache__
-CMSIS/Documentation/
-CMSIS/DoxyGen/**/*.dxy
+CMSIS/Documentation/html
+CMSIS/Documentation/Doxygen/**/*.dxy
CMSIS/Core/Test/*.o
CMSIS/Core/Test/*.xunit
CMSIS/Core/Test/.lit_test_times.txt
diff --git a/ARM.CMSIS.pdsc b/ARM.CMSIS.pdsc
index 333efee2a..821b96bfd 100644
--- a/ARM.CMSIS.pdsc
+++ b/ARM.CMSIS.pdsc
@@ -406,9 +406,9 @@
Generic Interfaces for Evaluation and Development BoardsDrivers that support an external component available on an evaluation boardCompiler Software Extensions
- Cortex Microcontroller Software Interface Components
- Unified Device Drivers compliant to CMSIS-Driver Specifications
- Startup, System Setup
+ Cortex Microcontroller Software Interface Components
+ Unified Device Drivers compliant to CMSIS-Driver Specifications
+ Startup, System SetupData exchange or data formatterDrivers that support an extension board or shieldFile Drive Support and File System
@@ -442,7 +442,7 @@
CMSIS-RTOS API for Cortex-M, SC000, and SC300
-
+
@@ -450,63 +450,63 @@
USART Driver API for Cortex-M
-
+ SPI Driver API for Cortex-M
-
+ SAI Driver API for Cortex-M
-
+ I2C Driver API for Cortex-M
-
+ CAN Driver API for Cortex-M
-
+ Flash Driver API for Cortex-M
-
+ MCI Driver API for Cortex-M
-
+ NAND Flash Driver API for Cortex-M
-
+ Ethernet MAC and PHY Driver API for Cortex-M
-
+
@@ -514,49 +514,49 @@
Ethernet MAC Driver API for Cortex-M
-
+ Ethernet PHY Driver API for Cortex-M
-
+ USB Device Driver API for Cortex-M
-
+ USB Host Driver API for Cortex-M
-
+ GPIO Driver API for Cortex-M
-
+ WiFi driver
-
+ Virtual I/O
-
+
@@ -654,7 +654,7 @@
CMSIS-CORE for Cortex-M, SC000, SC300, Star-MC1, ARMv8-M, ARMv8.1-M
-
+
@@ -667,7 +667,7 @@
CMSIS-CORE for Cortex-A
-
+
diff --git a/CMSIS/DoxyGen/Compiler/Compiler.dxy.in b/CMSIS/Documentation/Doxygen/Compiler/Compiler.dxy.in
similarity index 99%
rename from CMSIS/DoxyGen/Compiler/Compiler.dxy.in
rename to CMSIS/Documentation/Doxygen/Compiler/Compiler.dxy.in
index 0ab779b5e..cce5d12ea 100644
--- a/CMSIS/DoxyGen/Compiler/Compiler.dxy.in
+++ b/CMSIS/Documentation/Doxygen/Compiler/Compiler.dxy.in
@@ -67,7 +67,7 @@ PROJECT_LOGO = ../Doxygen_Templates/cmsis_logo_white_small.png
# entered, it will be relative to the location where doxygen was started. If
# left blank the current directory will be used.
-OUTPUT_DIRECTORY = ../../Documentation/Compiler
+OUTPUT_DIRECTORY = ../../html/Compiler
# If the CREATE_SUBDIRS tag is set to YES then doxygen will create up to 4096
# sub-directories (in 2 levels) under the output directory of each output format
@@ -1302,7 +1302,7 @@ GENERATE_HTML = YES
# The default directory is: html.
# This tag requires that the tag GENERATE_HTML is set to YES.
-HTML_OUTPUT = html
+HTML_OUTPUT = ./
# The HTML_FILE_EXTENSION tag can be used to specify the file extension for each
# generated HTML page (for example: .htm, .php, .asp).
diff --git a/CMSIS/DoxyGen/Compiler/src/images/.gitignore b/CMSIS/Documentation/Doxygen/Compiler/src/images/.gitignore
similarity index 100%
rename from CMSIS/DoxyGen/Compiler/src/images/.gitignore
rename to CMSIS/Documentation/Doxygen/Compiler/src/images/.gitignore
diff --git a/CMSIS/DoxyGen/Compiler/src/images/cmsis_compiler_overview.png b/CMSIS/Documentation/Doxygen/Compiler/src/images/cmsis_compiler_overview.png
similarity index 100%
rename from CMSIS/DoxyGen/Compiler/src/images/cmsis_compiler_overview.png
rename to CMSIS/Documentation/Doxygen/Compiler/src/images/cmsis_compiler_overview.png
diff --git a/CMSIS/Documentation/Doxygen/Compiler/src/mainpage.md b/CMSIS/Documentation/Doxygen/Compiler/src/mainpage.md
new file mode 100644
index 000000000..5f6c28d34
--- /dev/null
+++ b/CMSIS/Documentation/Doxygen/Compiler/src/mainpage.md
@@ -0,0 +1,25 @@
+# CMSIS-Compiler {#mainpage}
+
+**CMSIS-Compiler** provides software components for retargeting I/O operations in standard C run-time libraries. Following interfaces are supported for retargeting:
+
+ - File interface for reading and writing files.
+ - I/O interface for standard I/O stream retargeting (stderr, stdin, stdout).
+ - OS interface for multithread safety using an arbitrary RTOS.
+
+![Overview of CMSIS-Compiler](./images/cmsis_compiler_overview.png)
+
+Standard C library functions are platform independent, but the implementations of the low-level I/O and multithreading support are tailored to the target compiler toolchains.
+
+## Access to CMSIS-Compiler
+
+CMSIS-Compiler is maintained in a GitHub repository and is also released as a standalone package in CMSIS Pack format.
+
+ - [**CMSIS-Compiler GitHub Repo**](https://github.com/Arm-Software/CMSIS-Compiler) provides the full source code as well as releases in CMSIS-Pack format.
+ - [**CMSIS-Compiler Documentation**](https://arm-software.github.io/CMSIS-Compiler/latest/) explains how to use the library and describes the implemented functions in details.
+
+## Key Features and Benefits
+
+ - CMSIS-Compiler allows individual retargeting configuration for common I/O interfaces: file, stderr, stdin, stdout.
+ - Implements several ready-to-use retarget variants: into File, Breakpoint, Event Recorder, ITM, as well as user-specific variant.
+ - Supports common standard C libraries, such as from Arm Compiler and GCC (Newlib) toolchains. IAR support is planned.
+ - Provides implementation templates and examples to get started.
diff --git a/CMSIS/DoxyGen/Core/Core.dxy.in b/CMSIS/Documentation/Doxygen/Core/Core.dxy.in
similarity index 99%
rename from CMSIS/DoxyGen/Core/Core.dxy.in
rename to CMSIS/Documentation/Doxygen/Core/Core.dxy.in
index 6e1bca78b..351b81b6c 100644
--- a/CMSIS/DoxyGen/Core/Core.dxy.in
+++ b/CMSIS/Documentation/Doxygen/Core/Core.dxy.in
@@ -67,7 +67,7 @@ PROJECT_LOGO = ../Doxygen_Templates/cmsis_logo_white_small.png
# entered, it will be relative to the location where doxygen was started. If
# left blank the current directory will be used.
-OUTPUT_DIRECTORY = ../../Documentation/Core
+OUTPUT_DIRECTORY = ../../html/Core
# If the CREATE_SUBDIRS tag is set to YES then doxygen will create up to 4096
# sub-directories (in 2 levels) under the output directory of each output format
@@ -1086,7 +1086,7 @@ EXCLUDE_SYMBOLS =
# that contain example code fragments that are included (see the \include
# command).
-EXAMPLE_PATH = ../../Core/Template/Device_M/
+EXAMPLE_PATH = ../../../Core/Template/Device_M/
# If the value of the EXAMPLE_PATH tag contains directories, you can use the
# EXAMPLE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp and
@@ -1339,7 +1339,7 @@ GENERATE_HTML = YES
# The default directory is: html.
# This tag requires that the tag GENERATE_HTML is set to YES.
-HTML_OUTPUT = html
+HTML_OUTPUT = ./
# The HTML_FILE_EXTENSION tag can be used to specify the file extension for each
# generated HTML page (for example: .htm, .php, .asp).
@@ -2458,7 +2458,7 @@ TAGFILES =
# tag file that is based on the input files it reads. See section "Linking to
# external documentation" for more information about the usage of tag files.
-GENERATE_TAGFILE = ../../Documentation/Core/cmsis_core_m.tag
+GENERATE_TAGFILE = ../../html/Core/cmsis_core_m.tag
# If the ALLEXTERNALS tag is set to YES, all external class will be listed in
# the class index. If set to NO, only the inherited external classes will be
diff --git a/CMSIS/DoxyGen/Core/src/Ref_CompilerControl.txt b/CMSIS/Documentation/Doxygen/Core/src/Ref_CompilerControl.txt
similarity index 100%
rename from CMSIS/DoxyGen/Core/src/Ref_CompilerControl.txt
rename to CMSIS/Documentation/Doxygen/Core/src/Ref_CompilerControl.txt
diff --git a/CMSIS/DoxyGen/Core/src/Ref_CoreRegister.txt b/CMSIS/Documentation/Doxygen/Core/src/Ref_CoreRegister.txt
similarity index 100%
rename from CMSIS/DoxyGen/Core/src/Ref_CoreRegister.txt
rename to CMSIS/Documentation/Doxygen/Core/src/Ref_CoreRegister.txt
diff --git a/CMSIS/DoxyGen/Core/src/Ref_DataStructs.txt b/CMSIS/Documentation/Doxygen/Core/src/Ref_DataStructs.txt
similarity index 100%
rename from CMSIS/DoxyGen/Core/src/Ref_DataStructs.txt
rename to CMSIS/Documentation/Doxygen/Core/src/Ref_DataStructs.txt
diff --git a/CMSIS/DoxyGen/Core/src/Ref_Debug.txt b/CMSIS/Documentation/Doxygen/Core/src/Ref_Debug.txt
similarity index 100%
rename from CMSIS/DoxyGen/Core/src/Ref_Debug.txt
rename to CMSIS/Documentation/Doxygen/Core/src/Ref_Debug.txt
diff --git a/CMSIS/DoxyGen/Core/src/Ref_DevCaps.txt b/CMSIS/Documentation/Doxygen/Core/src/Ref_DevCaps.txt
similarity index 100%
rename from CMSIS/DoxyGen/Core/src/Ref_DevCaps.txt
rename to CMSIS/Documentation/Doxygen/Core/src/Ref_DevCaps.txt
diff --git a/CMSIS/DoxyGen/Core/src/Ref_FPU.txt b/CMSIS/Documentation/Doxygen/Core/src/Ref_FPU.txt
similarity index 100%
rename from CMSIS/DoxyGen/Core/src/Ref_FPU.txt
rename to CMSIS/Documentation/Doxygen/Core/src/Ref_FPU.txt
diff --git a/CMSIS/DoxyGen/Core/src/Ref_MPU.txt b/CMSIS/Documentation/Doxygen/Core/src/Ref_MPU.txt
similarity index 100%
rename from CMSIS/DoxyGen/Core/src/Ref_MPU.txt
rename to CMSIS/Documentation/Doxygen/Core/src/Ref_MPU.txt
diff --git a/CMSIS/DoxyGen/Core/src/Ref_MPU8.txt b/CMSIS/Documentation/Doxygen/Core/src/Ref_MPU8.txt
similarity index 100%
rename from CMSIS/DoxyGen/Core/src/Ref_MPU8.txt
rename to CMSIS/Documentation/Doxygen/Core/src/Ref_MPU8.txt
diff --git a/CMSIS/DoxyGen/Core/src/Ref_MVE.txt b/CMSIS/Documentation/Doxygen/Core/src/Ref_MVE.txt
similarity index 100%
rename from CMSIS/DoxyGen/Core/src/Ref_MVE.txt
rename to CMSIS/Documentation/Doxygen/Core/src/Ref_MVE.txt
diff --git a/CMSIS/DoxyGen/Core/src/Ref_NVIC.txt b/CMSIS/Documentation/Doxygen/Core/src/Ref_NVIC.txt
similarity index 100%
rename from CMSIS/DoxyGen/Core/src/Ref_NVIC.txt
rename to CMSIS/Documentation/Doxygen/Core/src/Ref_NVIC.txt
diff --git a/CMSIS/DoxyGen/Core/src/Ref_PMU8.txt b/CMSIS/Documentation/Doxygen/Core/src/Ref_PMU8.txt
similarity index 100%
rename from CMSIS/DoxyGen/Core/src/Ref_PMU8.txt
rename to CMSIS/Documentation/Doxygen/Core/src/Ref_PMU8.txt
diff --git a/CMSIS/DoxyGen/Core/src/Ref_Peripheral.txt b/CMSIS/Documentation/Doxygen/Core/src/Ref_Peripheral.txt
similarity index 100%
rename from CMSIS/DoxyGen/Core/src/Ref_Peripheral.txt
rename to CMSIS/Documentation/Doxygen/Core/src/Ref_Peripheral.txt
diff --git a/CMSIS/DoxyGen/Core/src/Ref_SystemAndClock.txt b/CMSIS/Documentation/Doxygen/Core/src/Ref_SystemAndClock.txt
similarity index 100%
rename from CMSIS/DoxyGen/Core/src/Ref_SystemAndClock.txt
rename to CMSIS/Documentation/Doxygen/Core/src/Ref_SystemAndClock.txt
diff --git a/CMSIS/DoxyGen/Core/src/Ref_Systick.txt b/CMSIS/Documentation/Doxygen/Core/src/Ref_Systick.txt
similarity index 100%
rename from CMSIS/DoxyGen/Core/src/Ref_Systick.txt
rename to CMSIS/Documentation/Doxygen/Core/src/Ref_Systick.txt
diff --git a/CMSIS/DoxyGen/Core/src/Ref_Trustzone.txt b/CMSIS/Documentation/Doxygen/Core/src/Ref_Trustzone.txt
similarity index 100%
rename from CMSIS/DoxyGen/Core/src/Ref_Trustzone.txt
rename to CMSIS/Documentation/Doxygen/Core/src/Ref_Trustzone.txt
diff --git a/CMSIS/DoxyGen/Core/src/Ref_VersionControl.txt b/CMSIS/Documentation/Doxygen/Core/src/Ref_VersionControl.txt
similarity index 100%
rename from CMSIS/DoxyGen/Core/src/Ref_VersionControl.txt
rename to CMSIS/Documentation/Doxygen/Core/src/Ref_VersionControl.txt
diff --git a/CMSIS/DoxyGen/Core/src/Ref_cm4_simd.txt b/CMSIS/Documentation/Doxygen/Core/src/Ref_cm4_simd.txt
similarity index 100%
rename from CMSIS/DoxyGen/Core/src/Ref_cm4_simd.txt
rename to CMSIS/Documentation/Doxygen/Core/src/Ref_cm4_simd.txt
diff --git a/CMSIS/DoxyGen/Core/src/Ref_cmInstr.txt b/CMSIS/Documentation/Doxygen/Core/src/Ref_cmInstr.txt
similarity index 100%
rename from CMSIS/DoxyGen/Core/src/Ref_cmInstr.txt
rename to CMSIS/Documentation/Doxygen/Core/src/Ref_cmInstr.txt
diff --git a/CMSIS/DoxyGen/Core/src/core_cm7.txt b/CMSIS/Documentation/Doxygen/Core/src/core_cm7.txt
similarity index 100%
rename from CMSIS/DoxyGen/Core/src/core_cm7.txt
rename to CMSIS/Documentation/Doxygen/Core/src/core_cm7.txt
diff --git a/CMSIS/DoxyGen/Core/src/core_device_files.md b/CMSIS/Documentation/Doxygen/Core/src/core_device_files.md
similarity index 100%
rename from CMSIS/DoxyGen/Core/src/core_device_files.md
rename to CMSIS/Documentation/Doxygen/Core/src/core_device_files.md
diff --git a/CMSIS/DoxyGen/Core/src/core_device_h.md b/CMSIS/Documentation/Doxygen/Core/src/core_device_h.md
similarity index 100%
rename from CMSIS/DoxyGen/Core/src/core_device_h.md
rename to CMSIS/Documentation/Doxygen/Core/src/core_device_h.md
diff --git a/CMSIS/DoxyGen/Core/src/core_files_in_packs.md b/CMSIS/Documentation/Doxygen/Core/src/core_files_in_packs.md
similarity index 91%
rename from CMSIS/DoxyGen/Core/src/core_files_in_packs.md
rename to CMSIS/Documentation/Doxygen/Core/src/core_files_in_packs.md
index 7f2ca20d1..4a4c253c8 100644
--- a/CMSIS/DoxyGen/Core/src/core_files_in_packs.md
+++ b/CMSIS/Documentation/Doxygen/Core/src/core_files_in_packs.md
@@ -2,7 +2,7 @@
In simple individual cases the \ref cmsis_core_files can be delivered to developers as part of example projects and SDKs. But the most scalable approach with improved usability is to provide them packaged in [Open-CMSIS-Pack format](https://www.open-cmsis-pack.org), and this page explains how to do this.
-The \ref cmsis_standard_files are provided as part of [CMSIS Software pack](../../General/html/cmsis_pack.html) under **CMSIS** class of components and compose there the **CORE** group.
+The \ref cmsis_standard_files are provided as part of [CMSIS Software pack](../General/cmsis_pack.html) under **CMSIS** class of components and compose there the **CORE** group.
The \ref cmsis_device_files are delivered in [CMSIS Device Family Packs (DFPs)](https://open-cmsis-pack.github.io/Open-CMSIS-Pack-Spec/main/html/cp_PackTutorial.html#createPack_DFP) that provide necessary mechanisms for device support in embedded software. The DFPs are typically maintained by device vendors.
@@ -49,7 +49,7 @@ Since the \ref cmsis_device_files require access to implementations from \ref cm
## Device Examples {#device_examples}
-The [CMSIS-DFP pack](https://github.com/ARM-software/CMSIS-DFP) provides generic device definitions for standard Arm Cortex-M cores and contains corresponding \ref cmsis_device_files.
+The [Cortex_DFP pack](https://github.com/ARM-software/Cortex_DFP) provides generic device definitions for standard Arm Cortex-M cores and contains corresponding \ref cmsis_device_files.
These files can be used as a reference for device support in a DFP pack, but can also be used in projects that require standard Arm processors functionality. See \ref using_arm.
diff --git a/CMSIS/DoxyGen/Core/src/core_linker_sct.md b/CMSIS/Documentation/Doxygen/Core/src/core_linker_sct.md
similarity index 86%
rename from CMSIS/DoxyGen/Core/src/core_linker_sct.md
rename to CMSIS/Documentation/Doxygen/Core/src/core_linker_sct.md
index b979a3a00..6c5836c03 100644
--- a/CMSIS/DoxyGen/Core/src/core_linker_sct.md
+++ b/CMSIS/Documentation/Doxygen/Core/src/core_linker_sct.md
@@ -3,6 +3,7 @@
A scatter file for linking is required when using a \ref startup_c_pg.
The \ref linker_sct_pg contains regions for:
+
- Code (read-only data, execute-only data)
- RAM (read/write data, zero-initialized data)
- Stack
@@ -10,8 +11,7 @@ The \ref linker_sct_pg contains regions for:
- Stack seal (for Armv8-M/v8.1-M)
- CMSE veneer (for Armv8-M/v8.1-M)
-Within the scatter file, the user needs to specify a set of macros. The scatter file is passed through the
-C preprocessor which uses these macros to calculate the start address and the size of the different regions.
+Within the scatter file, the user needs to specify a set of macros. The scatter file is passed through the C preprocessor which uses these macros to calculate the start address and the size of the different regions.
```
/*--------------------- Flash Configuration ----------------------------------
@@ -49,13 +49,13 @@ C preprocessor which uses these macros to calculate the start address and the si
#define __CMSEVENEER_SIZE 0x200
```
-\note
-The stack is placed at the end of the available RAM and is growing downwards
-whereas the Heap is placed after the application data and growing upwards.
+> **Note**
+> - The stack is placed at the end of the available RAM and is growing downwards whereas the Heap is placed after the application data and growing upwards.
## Preprocessor command {#linker_sct_preproc_sec}
The scatter file uses following preprocessor command for Arm Compiler v6
+
```
#! armclang -E --target=arm-arm-none-eabi -mcpu=<mcpu> -xc
```
diff --git a/CMSIS/DoxyGen/Core/src/core_partition_device_h.md b/CMSIS/Documentation/Doxygen/Core/src/core_partition_device_h.md
similarity index 94%
rename from CMSIS/DoxyGen/Core/src/core_partition_device_h.md
rename to CMSIS/Documentation/Doxygen/Core/src/core_partition_device_h.md
index 0c54c3131..50d2319e0 100644
--- a/CMSIS/DoxyGen/Core/src/core_partition_device_h.md
+++ b/CMSIS/Documentation/Doxygen/Core/src/core_partition_device_h.md
@@ -3,18 +3,21 @@
The TrustZone header file contains the initial setup of the TrustZone hardware in an Armv8-M system.
This file implements the function \ref TZ_SAU_Setup that is called from \ref SystemInit. It uses settings in these files:
+
- \ref partition_h_pg "partition_.h" that defines the initial system configuration and during SystemInit in Secure state.
- - \ref partition_gen_h_pg "partition_gen.h" that contains SAU region and interrupt target assignments. This file may be generated using [CMSIS-Zone](../../Zone/html/index.html).
+ - \ref partition_gen_h_pg "partition_gen.h" that contains SAU region and interrupt target assignments. This file may be generated using [CMSIS-Zone](../Zone/index.html).
-\note
-\ref partition_gen_h_pg "partition_gen.h" is optional and can be generated using [CMSIS-Zone](../../Zone/html/index.html). In previous versions of CMSIS-Core(M) this settings were part of \ref partition_h_pg "partition_.h".
+> **Note**
+> - \ref partition_gen_h_pg "partition_gen.h" is optional and can be generated using [CMSIS-Zone](../Zone/index.html). In previous versions of CMSIS-Core(M) this settings were part of \ref partition_h_pg "partition_.h".
The \ref partition_h_pg "partition_.h" file contains the following configuration settings for:
+
- \ref sau_ctrlregister_sec provides settings for the SAU CTRL register.
- \ref sau_sleepexception_sec provides device-specific deep-sleep and exception settings.
- \ref sau_fpu_sec defines the usage of the Floating Point Unit in secure and non-secure state.
The \ref partition_h_pg "partition_.h" file includes the \ref partition_gen_h_pg "partition_gen.h" file with configuration settings for:
+
- \ref sau_regions_sect provides configuration of the SAU Address Regions.
- \ref sau_interrupttarget_sec provides device-specific interrupt target settings.
@@ -158,14 +161,15 @@ The \ref partition_h_pg "partition_.h" file includes the \ref partition_
## Region/ISR setup: partition_gen.h {#partition_gen_h_pg}
-The \ref partition_gen_h_pg "partition_gen.h" header file can be generated using [CMSIS-Zone](../../Zone/html/index.html).
+The \ref partition_gen_h_pg "partition_gen.h" header file can be generated using [CMSIS-Zone](../Zone/index.html).
The \ref partition_h_pg "partition_.h" file includes the \ref partition_h_pg "partition_gen.h" file with configuration settings for:
+
- \ref sau_regions_sect provides configuration of the SAU Address Regions.
- \ref sau_interrupttarget_sec provides device-specific interrupt target settings.
-\note
-In previous versions of CMSIS-Core(M) the above settings were part of \ref partition_h_pg "partition_.h"
+> **Note**
+> - In previous versions of CMSIS-Core(M) the above settings were part of \ref partition_h_pg "partition_.h"
### Configuration of the SAU Address Regions {#sau_regions_sect}
@@ -266,9 +270,7 @@ The following example shows a set of SAU region macros.
### Configuration of Interrupt Target settings {#sau_interrupttarget_sec}
-Each interrupt has a configuration bit that defines the execution
-in Secure or Non-secure state. The Non-Secure interrupts have a separate
-vector table. Refer to \ref Model_TrustZone for more information.
+Each interrupt has a configuration bit that defines the execution in Secure or Non-secure state. The Non-Secure interrupts have a separate vector table. Refer to \ref Model_TrustZone for more information.
diff --git a/CMSIS/DoxyGen/Core/src/core_startup_c.md b/CMSIS/Documentation/Doxygen/Core/src/core_startup_c.md
similarity index 96%
rename from CMSIS/DoxyGen/Core/src/core_startup_c.md
rename to CMSIS/Documentation/Doxygen/Core/src/core_startup_c.md
index 455794694..76e38f123 100644
--- a/CMSIS/DoxyGen/Core/src/core_startup_c.md
+++ b/CMSIS/Documentation/Doxygen/Core/src/core_startup_c.md
@@ -3,6 +3,7 @@
The startup file defines device exceptions and interrupts, and provides their initial (weak) handler functions. The file has a naming convention `startup_.c` where `` corresponds to the device name.
Specifically, following functionalities are provided in the startup file:
+
- The reset handler `Reset_Handler` which is executed upon CPU reset and typically calls the `SystemInit()` function. After the system init the control is transferred to the C/C++ run-time library which performs initialization and calls the `main` function in the user code.
- The setup values for the Main Stack Pointer (MSP).
- Exception vectors of the Cortex-M Processor with weak functions that implement default routines.
@@ -71,6 +72,7 @@ extern const pFunc __VECTOR_TABLE[240];
CMSIS-Core \ref cmsis_template_files include a `startup_Device.c` file that can be used as a starting point for chip vendors to implement own device-specific startup file.
The C startup file relys on certain compiler specific preprocessor defines specified in CMSIS compiler headers:
+
- \ref __INITIAL_SP
- \ref __STACK_LIMIT
- \ref __PROGRAM_START
@@ -101,4 +103,5 @@ __NO_RETURN void Reset_Handler(void)
}
```
-\note Stack Sealing also requires the application project to use a scatter file (or a linker script) as explained in \ref RTOS_TrustZone_stacksealing section.
+> **Note**
+> - Stack Sealing also requires the application project to use a scatter file (or a linker script) as explained in \ref RTOS_TrustZone_stacksealing section.
diff --git a/CMSIS/DoxyGen/Core/src/core_std_files.md b/CMSIS/Documentation/Doxygen/Core/src/core_std_files.md
similarity index 95%
rename from CMSIS/DoxyGen/Core/src/core_std_files.md
rename to CMSIS/Documentation/Doxygen/Core/src/core_std_files.md
index 683852b2f..d9e567436 100644
--- a/CMSIS/DoxyGen/Core/src/core_std_files.md
+++ b/CMSIS/Documentation/Doxygen/Core/src/core_std_files.md
@@ -2,8 +2,8 @@
CMSIS-Core files can be differentiated in two main groups:
- -# \subpage cmsis_standard_files are provided by Arm for supported CPU cores as part of the CMSIS-Core software component. These files typically do not require any modifications and are expected to be included via CMSIS-Core device files.
- -# \subpage cmsis_device_files are specified in CMSIS-Core methodology, and are typically provided by CPU device vendors to correctly cover their specific functionalities. Some of them may expect additional application-specific changes.
+ 1. \subpage cmsis_standard_files are provided by Arm for supported CPU cores as part of the CMSIS-Core software component. These files typically do not require any modifications and are expected to be included via CMSIS-Core device files.
+ 2. \subpage cmsis_device_files are specified in CMSIS-Core methodology, and are typically provided by CPU device vendors to correctly cover their specific functionalities. Some of them may expect additional application-specific changes.
The detailed file structure of the CMSIS-Core files is shown in the following picture.
@@ -15,7 +15,7 @@ The detailed file structure of the CMSIS-Core files is shown in the following pi
The CMSIS-Core Standard file implement all attributes specific to Arm processor cores and generally do not need any modifications.
-The files are provided by Arm as CMSIS-Core software component that is part of the [CMSIS Software pack](../../General/html/cmsis_pack.html). The CMSIS-Core standard files can be split into following categories explained below:
+The files are provided by Arm as CMSIS-Core software component that is part of the [CMSIS Software pack](../General/cmsis_pack.html). The CMSIS-Core standard files can be split into following categories explained below:
- \ref cmsis_processor_files
- \ref cmsis_compiler_files
diff --git a/CMSIS/DoxyGen/Core/src/core_system_files.md b/CMSIS/Documentation/Doxygen/Core/src/core_system_files.md
similarity index 100%
rename from CMSIS/DoxyGen/Core/src/core_system_files.md
rename to CMSIS/Documentation/Doxygen/Core/src/core_system_files.md
diff --git a/CMSIS/DoxyGen/Core/src/history.md b/CMSIS/Documentation/Doxygen/Core/src/history.md
similarity index 98%
rename from CMSIS/DoxyGen/Core/src/history.md
rename to CMSIS/Documentation/Doxygen/Core/src/history.md
index deee81fe4..1d82d7e7f 100644
--- a/CMSIS/DoxyGen/Core/src/history.md
+++ b/CMSIS/Documentation/Doxygen/Core/src/history.md
@@ -1,8 +1,8 @@
# Revision History {#core_revisionHistory}
-CMSIS-Core (M) component is maintaned with own versioning that gets incremented together with the [CMSIS Software Pack](../../General/html/cmsis_pack.html) releases.
+CMSIS-Core (M) component is maintained with its own versioning that gets offically updated upon releases of the [CMSIS Software Pack](../General/cmsis_pack.html).
-The table below provides information about the changes delivered with specific versions of CMSIS-Core (M) updates.
+The table below provides information about the changes delivered with specific versions of CMSIS-Core (M).
diff --git a/CMSIS/DoxyGen/Core/src/images/ARMv8-M_images.pptx b/CMSIS/Documentation/Doxygen/Core/src/images/ARMv8-M_images.pptx
similarity index 100%
rename from CMSIS/DoxyGen/Core/src/images/ARMv8-M_images.pptx
rename to CMSIS/Documentation/Doxygen/Core/src/images/ARMv8-M_images.pptx
diff --git a/CMSIS/DoxyGen/Core/src/images/CMSIS_CORE_Files.png b/CMSIS/Documentation/Doxygen/Core/src/images/CMSIS_CORE_Files.png
similarity index 100%
rename from CMSIS/DoxyGen/Core/src/images/CMSIS_CORE_Files.png
rename to CMSIS/Documentation/Doxygen/Core/src/images/CMSIS_CORE_Files.png
diff --git a/CMSIS/DoxyGen/Core/src/images/CMSIS_CORE_Files_USER.png b/CMSIS/Documentation/Doxygen/Core/src/images/CMSIS_CORE_Files_USER.png
similarity index 100%
rename from CMSIS/DoxyGen/Core/src/images/CMSIS_CORE_Files_USER.png
rename to CMSIS/Documentation/Doxygen/Core/src/images/CMSIS_CORE_Files_USER.png
diff --git a/CMSIS/DoxyGen/Core/src/images/CMSIS_TZ_files.png b/CMSIS/Documentation/Doxygen/Core/src/images/CMSIS_TZ_files.png
similarity index 100%
rename from CMSIS/DoxyGen/Core/src/images/CMSIS_TZ_files.png
rename to CMSIS/Documentation/Doxygen/Core/src/images/CMSIS_TZ_files.png
diff --git a/CMSIS/DoxyGen/Core/src/images/CMSIS_V3_V5.pptx b/CMSIS/Documentation/Doxygen/Core/src/images/CMSIS_V3_V5.pptx
similarity index 100%
rename from CMSIS/DoxyGen/Core/src/images/CMSIS_V3_V5.pptx
rename to CMSIS/Documentation/Doxygen/Core/src/images/CMSIS_V3_V5.pptx
diff --git a/CMSIS/DoxyGen/Core/src/images/MemoryMap_NS.png b/CMSIS/Documentation/Doxygen/Core/src/images/MemoryMap_NS.png
similarity index 100%
rename from CMSIS/DoxyGen/Core/src/images/MemoryMap_NS.png
rename to CMSIS/Documentation/Doxygen/Core/src/images/MemoryMap_NS.png
diff --git a/CMSIS/DoxyGen/Core/src/images/MemoryMap_S.png b/CMSIS/Documentation/Doxygen/Core/src/images/MemoryMap_S.png
similarity index 100%
rename from CMSIS/DoxyGen/Core/src/images/MemoryMap_S.png
rename to CMSIS/Documentation/Doxygen/Core/src/images/MemoryMap_S.png
diff --git a/CMSIS/DoxyGen/Core/src/images/Registers.png b/CMSIS/Documentation/Doxygen/Core/src/images/Registers.png
similarity index 100%
rename from CMSIS/DoxyGen/Core/src/images/Registers.png
rename to CMSIS/Documentation/Doxygen/Core/src/images/Registers.png
diff --git a/CMSIS/DoxyGen/Core/src/images/SimpleUseCase.png b/CMSIS/Documentation/Doxygen/Core/src/images/SimpleUseCase.png
similarity index 100%
rename from CMSIS/DoxyGen/Core/src/images/SimpleUseCase.png
rename to CMSIS/Documentation/Doxygen/Core/src/images/SimpleUseCase.png
diff --git a/CMSIS/DoxyGen/Core/src/images/TZ_context.png b/CMSIS/Documentation/Doxygen/Core/src/images/TZ_context.png
similarity index 100%
rename from CMSIS/DoxyGen/Core/src/images/TZ_context.png
rename to CMSIS/Documentation/Doxygen/Core/src/images/TZ_context.png
diff --git a/CMSIS/DoxyGen/Core/src/mainpage.md b/CMSIS/Documentation/Doxygen/Core/src/mainpage.md
similarity index 98%
rename from CMSIS/DoxyGen/Core/src/mainpage.md
rename to CMSIS/Documentation/Doxygen/Core/src/mainpage.md
index 286bb7967..785852818 100644
--- a/CMSIS/DoxyGen/Core/src/mainpage.md
+++ b/CMSIS/Documentation/Doxygen/Core/src/mainpage.md
@@ -3,6 +3,7 @@
CMSIS-Core (Cortex-M) implements the basic run-time system for a Cortex-M device and gives the user access to the processor core and the device peripherals.
In detail it defines:
+
- **Hardware Abstraction Layer (HAL)** for Cortex-M processor registers with standardized definitions for the SysTick, NVIC, System Control Block registers, MPU registers, FPU registers, and core access functions.
- **System exception names** to interface to system exceptions without having compatibility issues.
- **Methods to organize header files** that makes it easy to learn new Cortex-M microcontroller products and improve software portability. This includes naming conventions for device-specific interrupts.
@@ -12,6 +13,7 @@ In detail it defines:
The following sections provide details about the CMSIS-Core (Cortex-M):
+
- \ref using_pg explains the project setup and shows a simple program example.
\if ARMv8M
- \ref using_TrustZone_pg "Using TrustZone® for Armv8-M" describes how to use the security extensions available in the Armv8-M architecture.
@@ -23,14 +25,14 @@ The following sections provide details about the CMSIS-Core (Cortex-M):
## Access to CMSIS-Core (Cortex-M)
-CMSIS-Core is actively maintained in [CMSIS 6 GitHub repository](https://github.com/ARM-software/CMSIS_6) and released as part of the [CMSIS Software Pack](../../General/html/cmsis_pack.html).
+CMSIS-Core is actively maintained in [CMSIS 6 GitHub repository](https://github.com/ARM-software/CMSIS_6) and released as part of the [CMSIS Software Pack](../General/cmsis_pack.html).
The following directories and files relevant to CMSIS-Core (Cortex-M) are present in the **ARM::CMSIS** Pack:
Directory | Content
:---------------------------------|:------------------------------------------------------------------------
📂 CMSIS | CMSIS Base software components folder
- ┣ 📂 Documentation/Core | A local copy of this CMSIS-Core (M) documentation
+ ┣ 📂 Documentation/html/Core | A local copy of this CMSIS-Core (M) documentation
┗ 📂 Core | CMSIS-Core files
┣ 📂 Include | \ref cmsis_processor_files.
┗ 📂 m-profile| Header files specific for Arm M-Profile. See \ref cmsis_compiler_files and \ref cmsis_feature_files.
@@ -75,6 +77,7 @@ More information about Armv8.1-M architecture is available under [Arm Helium tec
## Tested and Verified Toolchains {#tested_tools_sec}
The \ref cmsis_core_files supplied by Arm have been tested and verified with the following toolchains:
+
- Arm: Arm Compiler 5.06 update 7 (not for Cortex-M23/33/35P/55/85, Armv8-M, Armv8.1-M)
- Arm: Arm Compiler 6.16
- Arm: Arm Compiler 6.6.4 (not for Cortex-M0/23/33/35P/55/85, Armv8-M, Armv8.1-M)
diff --git a/CMSIS/DoxyGen/Core/src/misra.md b/CMSIS/Documentation/Doxygen/Core/src/misra.md
similarity index 93%
rename from CMSIS/DoxyGen/Core/src/misra.md
rename to CMSIS/Documentation/Doxygen/Core/src/misra.md
index d8b891187..3d0e7660a 100644
--- a/CMSIS/DoxyGen/Core/src/misra.md
+++ b/CMSIS/Documentation/Doxygen/Core/src/misra.md
@@ -1,6 +1,6 @@
# MISRA-C Deviations {#coreMISRA_Exceptions_pg}
-CMSIS-Core (Cortex-M) uses the common coding rules for CMSIS components that are documented in [CMSIS Introduction](../../General/html/index.html).
+CMSIS-Core (Cortex-M) uses the common coding rules for CMSIS components that are documented in [CMSIS Introduction](../General/index.html).
CMSIS-Core (Cortex-M) violates the following MISRA-C:2012 rules:
diff --git a/CMSIS/DoxyGen/Core/src/register_mapping.md b/CMSIS/Documentation/Doxygen/Core/src/register_mapping.md
similarity index 100%
rename from CMSIS/DoxyGen/Core/src/register_mapping.md
rename to CMSIS/Documentation/Doxygen/Core/src/register_mapping.md
diff --git a/CMSIS/DoxyGen/Core/src/using.md b/CMSIS/Documentation/Doxygen/Core/src/using.md
similarity index 92%
rename from CMSIS/DoxyGen/Core/src/using.md
rename to CMSIS/Documentation/Doxygen/Core/src/using.md
index 516f7782f..a7d000126 100644
--- a/CMSIS/DoxyGen/Core/src/using.md
+++ b/CMSIS/Documentation/Doxygen/Core/src/using.md
@@ -3,6 +3,7 @@
[TOC]
To use the CMSIS-Core (Cortex-M) in an embedded software project at the following \ref cmsis_device_files need to be added to the application:
+
- \ref startup_c_pg with reset handler and exception vectors.
- \ref system_c_pg with general device configuration (i.e. for clock and BUS setup).
- \ref device_h_pg gives access to processor core and all peripherals.
@@ -13,10 +14,11 @@ The \ref startup_c_pg is executed after reset and calls `SystemInit()` in the re
The \ref system_c_pg performs the setup for the processor clock. The variable \ref SystemCoreClock indicates the CPU clock speed. In addition the file may contain functions for the memory BUS setup and clock re-configuration.
-\note
-The files \ref startup_c_pg and \ref system_c_pg may require application specific adaptations and therefore should be copied into the application project folder prior configuration.
+> **Note**
+> - The files \ref startup_c_pg and \ref system_c_pg may require application specific adaptations and therefore should be copied into the application project folder prior configuration.
The \ref device_h_pg provides access to the following device-specific functionalities:
+
- \ref peripheral_gr provides a standardized register layout for all peripherals. Optionally functions for device-specific peripherals may be available.
- \ref NVIC_gr can be accessed with standardized symbols and functions for the Nested Interrupt Vector Controller (NVIC) are provided.
- \ref intrinsic_CPU_gr allow to access special instructions, for example for activating sleep mode or the NOP instruction.
@@ -30,7 +32,7 @@ The easiest way to use CMSIS-Core in a project is with CMSIS Packs.
The \ref cmsis_device_files are typically provided in a [CMSIS Device Family Pack (DFP)](https://open-cmsis-pack.github.io/Open-CMSIS-Pack-Spec/main/html/cp_PackTutorial.html#createPack_DFP) that is maintained by the chip vendor for the target device family. The list of public CMSIS packs (including DFPs) can be found at [keil.arm.com/packs](https://www.keil.arm.com/packs/).
-A Device Family Pack (DFP) usually has a requirement for using the **CMSIS:CORE** component from the [CMSIS Software pack](../../General/html/cmsis_pack.html) that contains the \ref cmsis_standard_files. In such case the CMSIS Software pack needs to be installed as well.
+A Device Family Pack (DFP) usually has a requirement for using the **CMSIS:CORE** component from the [CMSIS Software pack](../General/cmsis_pack.html) that contains the \ref cmsis_standard_files. In such case the CMSIS Software pack needs to be installed as well.
The files \ref startup_c_pg and \ref system_c_pg are typically provided in the DFP as part of **Device** class in the **Startup** group and are defined as configuration files, meaning they are copied from the pack into a project folder and can be modifed there if necessary.
@@ -56,6 +58,7 @@ File | Description
## Usage Examples {#usage_examples}
**Examples**
+
- \ref using_basic is a simple example that shows the usage of the CMSIS layer.
- \ref using_vtor shows how to remap the interrupt vector table.
- \ref using_arm explains how to use CMSIS-Core (Cortex-M) for Arm processors.
@@ -181,14 +184,14 @@ int main (void) {
Test and example projects of many software components have a need for implementations that are independent from specific device vendors but still have adaptations for various Arm Cortex-M cores to benefit from their architectural differenceis.
-The [CMSIS-DFP pack](https://github.com/ARM-software/CMSIS-DFP) provides generic device definitions for standard Arm Cortex-M cores and contains corresponding \ref cmsis_device_files. These generic Arm devices can be used as a target for embedded programs, with execution, for example, on processor simulation models.
+The [Cortex_DFP pack](https://github.com/ARM-software/Cortex_DFP) provides generic device definitions for standard Arm Cortex-M cores and contains corresponding \ref cmsis_device_files. These generic Arm devices can be used as a target for embedded programs, with execution, for example, on processor simulation models.
-Validation suits and example projects for such components as [CMSIS-DSP](../../DSP/html/index.html), [CMSIS-RTOS](../../RTOS2/html/index.html) and [CMSIS-Core](index.html) itself use that approach already.
+Validation suits and example projects for such components as [CMSIS-DSP](../DSP/index.html), [CMSIS-RTOS](../RTOS2/index.html) and [CMSIS-Core](index.html) itself use that approach already.
### Create generic libraries {#using_ARM_Lib_sec}
The CMSIS Processor and Core Peripheral files allow also to create generic libraries.
-The [CMSIS-DSP libraries](../../DSP/html/index.html) are an example for such a generic library.
+The [CMSIS-DSP libraries](../DSP/index.html) are an example for such a generic library.
To build a generic Library set the define `__CMSIS_GENERIC` and include the relevant `core_.h` CMSIS CPU & Core Access header file for the processor.
diff --git a/CMSIS/DoxyGen/Core/src/using_tz.md b/CMSIS/Documentation/Doxygen/Core/src/using_tz.md
similarity index 96%
rename from CMSIS/DoxyGen/Core/src/using_tz.md
rename to CMSIS/Documentation/Doxygen/Core/src/using_tz.md
index 1c0c1a60a..325f27f35 100644
--- a/CMSIS/DoxyGen/Core/src/using_tz.md
+++ b/CMSIS/Documentation/Doxygen/Core/src/using_tz.md
@@ -5,6 +5,7 @@
The [TrustZone for Cortex-M](https://www.arm.com/technologies/trustzone-for-cortex-m) is a security extension for Armv8-M architecture that is optimized for ultra-low power embedded applications. It enables software security domains that restrict access to secure memory and I/O only for trusted software.
TrustZone for Armv8-M:
+
- preserves low interrupt latencies for both Secure and Non-secure domains.
- does not impose code overhead, cycle overhead or the complexity of a virtualization based solution.
- introduces the Secure Gateway (SG) processor instruction for calls to the secure domain.
@@ -71,8 +72,7 @@ The \ref partition_h_pg defines the initial setup of the .h" defines the initial system configuration and during SystemInit in Secure state.
- The file \ref partition_gen_h_pg "partition_gen.h" is optional and contains SAU region and interrupt target assignments. This file may be generated using CMSIS-Zone.
-\note
-Refer to \ref using_pg for a general description of the CMSIS-Core (Cortex-M) files.
+> **Note**
+> - Refer to \ref using_pg for a general description of the CMSIS-Core (Cortex-M) files.
![CMSIS with extensions for TrustZone](./images/CMSIS_TZ_files.png)
@@ -118,8 +118,7 @@ As the *non-secure state* and *secure state* parts of an application are separat
![RTOS Thread Context Management for Armv8-M TrustZone](./images/TZ_context.png)
-To allocate the context memory for threads, an RTOS kernel that runs in *non-secure state* calls the interface functions defined by the header file **tz_context.h**. The **TZ Context** functions themselves are part of the *secure state* application. An minimum implementation is provided as part of RTOS2 and should handle the secure stack for the thread execution. However it is also possible to implement the context memory
-management system with additional features such as access control to *secure state* memory regions using an MPU.
+To allocate the context memory for threads, an RTOS kernel that runs in *non-secure state* calls the interface functions defined by the header file **tz_context.h**. The **TZ Context** functions themselves are part of the *secure state* application. An minimum implementation is provided as part of RTOS2 and should handle the secure stack for the thread execution. However it is also possible to implement the context memory management system with additional features such as access control to *secure state* memory regions using an MPU.
The API functions of **TZ Context** are described in the chapter [API Reference](modules.html) under \ref trustzone_functions - \ref context_trustzone_functions.
diff --git a/CMSIS/DoxyGen/Core_A/Core_A.dxy.in b/CMSIS/Documentation/Doxygen/Core_A/Core_A.dxy.in
similarity index 99%
rename from CMSIS/DoxyGen/Core_A/Core_A.dxy.in
rename to CMSIS/Documentation/Doxygen/Core_A/Core_A.dxy.in
index 547835352..4e7d96a13 100644
--- a/CMSIS/DoxyGen/Core_A/Core_A.dxy.in
+++ b/CMSIS/Documentation/Doxygen/Core_A/Core_A.dxy.in
@@ -67,7 +67,7 @@ PROJECT_LOGO = ../Doxygen_Templates/cmsis_logo_white_small.png
# entered, it will be relative to the location where doxygen was started. If
# left blank the current directory will be used.
-OUTPUT_DIRECTORY = ../../Documentation/Core_A
+OUTPUT_DIRECTORY = ../../html/Core_A
# If the CREATE_SUBDIRS tag is set to YES then doxygen will create up to 4096
# sub-directories (in 2 levels) under the output directory of each output format
@@ -921,11 +921,11 @@ INPUT = ./src/mainpage.md \
./src/using.md \
./src/template.md \
./src/misra.md \
- ./../../Core/Include/core_ca.h \
- ./../../Core/Include/a-profile/cmsis_armclang_a.h \
- ./../../Core/Include/a-profile/cmsis_cp15.h \
- ./../../Core/Include/a-profile/irq_ctrl.h \
- ./../../Core/Source/irq_ctrl_gic.c \
+ ./../../../Core/Include/core_ca.h \
+ ./../../../Core/Include/a-profile/cmsis_armclang_a.h \
+ ./../../../Core/Include/a-profile/cmsis_cp15.h \
+ ./../../../Core/Include/a-profile/irq_ctrl.h \
+ ./../../../Core/Source/irq_ctrl_gic.c \
./src/Ref_SystemAndClock.txt \
./src/Ref_GIC.txt \
./src/Ref_CoreRegister.txt \
@@ -1069,7 +1069,7 @@ EXCLUDE_SYMBOLS =
# that contain example code fragments that are included (see the \include
# command).
-EXAMPLE_PATH = ../../Core/Template/Device_A/
+EXAMPLE_PATH = ../../../Core/Template/Device_A/
# If the value of the EXAMPLE_PATH tag contains directories, you can use the
# EXAMPLE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp and
@@ -1322,7 +1322,7 @@ GENERATE_HTML = YES
# The default directory is: html.
# This tag requires that the tag GENERATE_HTML is set to YES.
-HTML_OUTPUT = html
+HTML_OUTPUT = ./
# The HTML_FILE_EXTENSION tag can be used to specify the file extension for each
# generated HTML page (for example: .htm, .php, .asp).
@@ -2450,7 +2450,7 @@ TAGFILES =
# tag file that is based on the input files it reads. See section "Linking to
# external documentation" for more information about the usage of tag files.
-GENERATE_TAGFILE = ../../Documentation/Core/cmsis_core_a.tag
+GENERATE_TAGFILE = ../../html/Core/cmsis_core_a.tag
# If the ALLEXTERNALS tag is set to YES, all external class will be listed in
# the class index. If set to NO, only the inherited external classes will be
diff --git a/CMSIS/DoxyGen/Core_A/src/Ref_Cache.txt b/CMSIS/Documentation/Doxygen/Core_A/src/Ref_Cache.txt
similarity index 100%
rename from CMSIS/DoxyGen/Core_A/src/Ref_Cache.txt
rename to CMSIS/Documentation/Doxygen/Core_A/src/Ref_Cache.txt
diff --git a/CMSIS/DoxyGen/Core_A/src/Ref_CompilerControl.txt b/CMSIS/Documentation/Doxygen/Core_A/src/Ref_CompilerControl.txt
similarity index 100%
rename from CMSIS/DoxyGen/Core_A/src/Ref_CompilerControl.txt
rename to CMSIS/Documentation/Doxygen/Core_A/src/Ref_CompilerControl.txt
diff --git a/CMSIS/DoxyGen/Core_A/src/Ref_CoreRegister.txt b/CMSIS/Documentation/Doxygen/Core_A/src/Ref_CoreRegister.txt
similarity index 100%
rename from CMSIS/DoxyGen/Core_A/src/Ref_CoreRegister.txt
rename to CMSIS/Documentation/Doxygen/Core_A/src/Ref_CoreRegister.txt
diff --git a/CMSIS/DoxyGen/Core_A/src/Ref_GIC.txt b/CMSIS/Documentation/Doxygen/Core_A/src/Ref_GIC.txt
similarity index 100%
rename from CMSIS/DoxyGen/Core_A/src/Ref_GIC.txt
rename to CMSIS/Documentation/Doxygen/Core_A/src/Ref_GIC.txt
diff --git a/CMSIS/DoxyGen/Core_A/src/Ref_IRQCtrl.txt b/CMSIS/Documentation/Doxygen/Core_A/src/Ref_IRQCtrl.txt
similarity index 99%
rename from CMSIS/DoxyGen/Core_A/src/Ref_IRQCtrl.txt
rename to CMSIS/Documentation/Doxygen/Core_A/src/Ref_IRQCtrl.txt
index 9951a2cbb..128db321d 100644
--- a/CMSIS/DoxyGen/Core_A/src/Ref_IRQCtrl.txt
+++ b/CMSIS/Documentation/Doxygen/Core_A/src/Ref_IRQCtrl.txt
@@ -26,7 +26,7 @@ The Armv7-A architecture defines a common set of first level exceptions, see tab
By default those handlers are defined as weak empty functions by the \ref startup_c_sec "device specific startup code".
Software and peripheral interrupts are all handled by one of the both central interrupt handlers (IRQ and FIQ). These needs to
be implemented application specific. If an RTOS is used the interrupt handlers are typically provided by the RTOS, e.g. when using
-CMSIS-RTX.
+CMSIS-RTX.
The interrupts available depends on the actual device in use. According to CMSIS specification the interrupts are defined in \ref IRQn_Type in \ref device_h_pg. Using the generic IRQ API one can easily enable and disable interrupts, set up priorities, modes and preemption rules, and register interrupt callbacks.
diff --git a/CMSIS/DoxyGen/Core_A/src/Ref_MMU.txt b/CMSIS/Documentation/Doxygen/Core_A/src/Ref_MMU.txt
similarity index 100%
rename from CMSIS/DoxyGen/Core_A/src/Ref_MMU.txt
rename to CMSIS/Documentation/Doxygen/Core_A/src/Ref_MMU.txt
diff --git a/CMSIS/DoxyGen/Core_A/src/Ref_SystemAndClock.txt b/CMSIS/Documentation/Doxygen/Core_A/src/Ref_SystemAndClock.txt
similarity index 100%
rename from CMSIS/DoxyGen/Core_A/src/Ref_SystemAndClock.txt
rename to CMSIS/Documentation/Doxygen/Core_A/src/Ref_SystemAndClock.txt
diff --git a/CMSIS/DoxyGen/Core_A/src/Ref_Timer.txt b/CMSIS/Documentation/Doxygen/Core_A/src/Ref_Timer.txt
similarity index 100%
rename from CMSIS/DoxyGen/Core_A/src/Ref_Timer.txt
rename to CMSIS/Documentation/Doxygen/Core_A/src/Ref_Timer.txt
diff --git a/CMSIS/DoxyGen/Core_A/src/core_ca.txt b/CMSIS/Documentation/Doxygen/Core_A/src/core_ca.txt
similarity index 98%
rename from CMSIS/DoxyGen/Core_A/src/core_ca.txt
rename to CMSIS/Documentation/Doxygen/Core_A/src/core_ca.txt
index c58671b83..188c91230 100644
--- a/CMSIS/DoxyGen/Core_A/src/core_ca.txt
+++ b/CMSIS/Documentation/Doxygen/Core_A/src/core_ca.txt
@@ -12,9 +12,8 @@ The section below describes the naming conventions, requirements, and optional f
Most of the rules also apply to the core peripherals. The \ref device_h_pg "Device Header File \" contains typically these definition and also includes
the core specific header files.
-The definitions for \ref peripheral_gr can be generated using the CMSIS-SVD System View Description for Peripherals.
-Refer to SVDConv.exe for more information.
-
+The definitions for \ref peripheral_gr can be generated using the CMSIS-SVD System View Description for Peripherals.
+
Each peripheral provides a data type definition with a name that is composed of:
- an optional prefix <device abbreviation>_
- <peripheral name>
diff --git a/CMSIS/DoxyGen/Core_A/src/history.md b/CMSIS/Documentation/Doxygen/Core_A/src/history.md
similarity index 95%
rename from CMSIS/DoxyGen/Core_A/src/history.md
rename to CMSIS/Documentation/Doxygen/Core_A/src/history.md
index bdc46ec08..4e73e4eb3 100644
--- a/CMSIS/DoxyGen/Core_A/src/history.md
+++ b/CMSIS/Documentation/Doxygen/Core_A/src/history.md
@@ -1,6 +1,6 @@
# Revision History of CMSIS-Core (Cortex-A) {#rev_histCoreA}
-CMSIS-Core (A) component is maintaned with own versioning that gets incremented together with the [CMSIS Software Pack](../../General/html/cmsis_pack.html) releases.
+CMSIS-Core (A) component is maintaned with own versioning that gets incremented together with the [CMSIS Software Pack](../General/cmsis_pack.html) releases.
The table below provides information about the changes delivered with specific versions of CMSIS-Core (A) updates.
diff --git a/CMSIS/DoxyGen/Core_A/src/images/CMSIS_CORE_A_Files.png b/CMSIS/Documentation/Doxygen/Core_A/src/images/CMSIS_CORE_A_Files.png
similarity index 100%
rename from CMSIS/DoxyGen/Core_A/src/images/CMSIS_CORE_A_Files.png
rename to CMSIS/Documentation/Doxygen/Core_A/src/images/CMSIS_CORE_A_Files.png
diff --git a/CMSIS/DoxyGen/Core_A/src/images/CMSIS_CORE_A_Files_user.png b/CMSIS/Documentation/Doxygen/Core_A/src/images/CMSIS_CORE_A_Files_user.png
similarity index 100%
rename from CMSIS/DoxyGen/Core_A/src/images/CMSIS_CORE_A_Files_user.png
rename to CMSIS/Documentation/Doxygen/Core_A/src/images/CMSIS_CORE_A_Files_user.png
diff --git a/CMSIS/DoxyGen/Core_A/src/images/CMSIS_Core_A.pptx b/CMSIS/Documentation/Doxygen/Core_A/src/images/CMSIS_Core_A.pptx
similarity index 100%
rename from CMSIS/DoxyGen/Core_A/src/images/CMSIS_Core_A.pptx
rename to CMSIS/Documentation/Doxygen/Core_A/src/images/CMSIS_Core_A.pptx
diff --git a/CMSIS/DoxyGen/Core_A/src/mainpage.md b/CMSIS/Documentation/Doxygen/Core_A/src/mainpage.md
similarity index 96%
rename from CMSIS/DoxyGen/Core_A/src/mainpage.md
rename to CMSIS/Documentation/Doxygen/Core_A/src/mainpage.md
index 4de3f5e6a..f59cbd6da 100644
--- a/CMSIS/DoxyGen/Core_A/src/mainpage.md
+++ b/CMSIS/Documentation/Doxygen/Core_A/src/mainpage.md
@@ -18,14 +18,14 @@ The following sections provide details about the CMSIS-Core (Cortex-A):
## Access to CMSIS-Core (Cortex-A)
-CMSIS-Core is actively maintained in [CMSIS 6 GitHub repository](https://github.com/ARM-software/CMSIS_6) and released as part of the [CMSIS Software Pack](../../General/html/cmsis_pack.html).
+CMSIS-Core is actively maintained in [CMSIS 6 GitHub repository](https://github.com/ARM-software/CMSIS_6) and released as part of the [CMSIS Software Pack](../General/cmsis_pack.html).
The following directories and files relevant to CMSIS-Core (Cortex-A) are present in the **ARM::CMSIS** Pack:
Directory | Content
:---------------------------------|:------------------------------------------------------------------------
📂 CMSIS | CMSIS Base software components folder
- ┣ 📂 Documentation/Core_A | A local copy of this CMSIS-Core (A) documentation
+ ┣ 📂 Documentation/html/Core_A | A local copy of this CMSIS-Core (A) documentation
┗ 📂 Core | CMSIS-Core files
┣ 📂 Include | \ref CMSIS_Processor_files.
┗ 📂 a-profile| Header files specific for Arm A-Profile.
diff --git a/CMSIS/DoxyGen/Core_A/src/misra.md b/CMSIS/Documentation/Doxygen/Core_A/src/misra.md
similarity index 96%
rename from CMSIS/DoxyGen/Core_A/src/misra.md
rename to CMSIS/Documentation/Doxygen/Core_A/src/misra.md
index 62cf908c5..a372b17de 100644
--- a/CMSIS/DoxyGen/Core_A/src/misra.md
+++ b/CMSIS/Documentation/Doxygen/Core_A/src/misra.md
@@ -1,7 +1,7 @@
# MISRA-C Deviations {#coreMISRA_Exceptions_pg}
CMSIS-Core (Cortex-A) uses the common coding rules for CMSIS components that are documented in
-[CMSIS Introduction](../../General/html/index.html).
+[CMSIS Introduction](../General/index.html).
CMSIS-Core (Cortex-A) violates the following MISRA-C:2012 rules:
diff --git a/CMSIS/DoxyGen/Core_A/src/template.md b/CMSIS/Documentation/Doxygen/Core_A/src/template.md
similarity index 98%
rename from CMSIS/DoxyGen/Core_A/src/template.md
rename to CMSIS/Documentation/Doxygen/Core_A/src/template.md
index 98ba6885a..a3c6b293c 100644
--- a/CMSIS/DoxyGen/Core_A/src/template.md
+++ b/CMSIS/Documentation/Doxygen/Core_A/src/template.md
@@ -20,7 +20,7 @@ Header File | Target Processor Core
## Device Examples {#device_examples}
-The [CMSIS-DFP pack](https://github.com/ARM-software/CMSIS-DFP) provides generic device definitions for supported Arm Cortex-A cores and contains corresponding CMSIS-Core device files.
+The [Cortex_DFP pack](https://github.com/ARM-software/Cortex_DFP) provides generic device definitions for supported Arm Cortex-A cores and contains corresponding CMSIS-Core device files.
## Template Files {#template_files_sec}
@@ -32,7 +32,7 @@ Silicon vendors add to these template files the following information:
Template File | Description
:-----------------------------------|:----------------------------------------
-📂 CMSIS/Core/Template/Device_A | Folder with CMSIS-Core device file templates ([See on GitHub](https://github.com/ARM-software/CMSIS_6/blob/main/CMSIS/Core/Template/Device_A/))
+📂 CMSIS/Core/Template/Device_A | Folder with CMSIS-Core device file templates ([See on GitHub](https://github.com/ARM-software/CMSIS_6/tree/main/CMSIS/Core/Template/Device_A/))
┣ 📂 Config | Template configuration files
┣ 📄 Device_ac6.sct | Linker scatter file template for Arm C/C++ Compiler
┗ 📄 mem_Device.h |\ref mem_h_pg template
diff --git a/CMSIS/DoxyGen/Core_A/src/using.md b/CMSIS/Documentation/Doxygen/Core_A/src/using.md
similarity index 86%
rename from CMSIS/DoxyGen/Core_A/src/using.md
rename to CMSIS/Documentation/Doxygen/Core_A/src/using.md
index 98767958d..9f727f744 100644
--- a/CMSIS/DoxyGen/Core_A/src/using.md
+++ b/CMSIS/Documentation/Doxygen/Core_A/src/using.md
@@ -7,9 +7,8 @@ To use the CMSIS-Core-A the following files are added to the embedded applicatio
- \ref mem_h_pg contains basic memory configurations.
- \ref mmu_c_pg contains the memory management unit setup.
-\note The files \ref startup_c_pg, \ref system_c_pg, \ref mem_h_pg, and \ref mmu_c_pg may require application specific adaptations and therefore should be copied
- into the application project folder prior configuration. The \ref device_h_pg is included in all source files that need device access
- and can be stored on a central include folder that is generic for all projects.
+> **Note**
+> - The files \ref startup_c_pg, \ref system_c_pg, \ref mem_h_pg, and \ref mmu_c_pg may require application specific adaptations and therefore should be copied into the application project folder prior configuration. The \ref device_h_pg is included in all source files that need device access and can be stored on a central include folder that is generic for all projects.
The `Reset_Handler` defined in \ref startup_c_pg is executed after reset.
The default initialization sequence is
@@ -44,7 +43,8 @@ The use of \ref device_h_pg can be abstracted with the `#define CMSIS_header_fil
The CMSIS-Core-A user files are device specific. In addition, the \ref startup_c_pg is also compiler vendor specific.
The various compiler vendor tool chains may provide folders that contain the CMSIS files for each supported device.
-\note The silicon vendors create these device-specific CMSIS-Core-A files based on \ref templates_pg provide by Arm.
+> **Note**
+> - The silicon vendors create these device-specific CMSIS-Core-A files based on \ref templates_pg provide by Arm.
Thereafter, the functions described under [API Reference](modules.html) can be used in the application.
@@ -116,4 +116,4 @@ int main(void)
## Using CMSIS with generic Arm Processors {#using_ARM_pg}
-The [CMSIS-DFP pack](https://github.com/ARM-software/CMSIS-DFP) provides generic device definitions for standard Arm Cortex-A cores and contains corresponding. These generic Arm devices can be used as a target for embedded programs, with execution, for example, on processor simulation models.
+The [Cortex_DFP pack](https://github.com/ARM-software/Cortex_DFP) provides generic device definitions for standard Arm Cortex-A cores and contains corresponding. These generic Arm devices can be used as a target for embedded programs, with execution, for example, on processor simulation models.
diff --git a/CMSIS/DoxyGen/DAP/DAP.dxy.in b/CMSIS/Documentation/Doxygen/DAP/DAP.dxy.in
similarity index 99%
rename from CMSIS/DoxyGen/DAP/DAP.dxy.in
rename to CMSIS/Documentation/Doxygen/DAP/DAP.dxy.in
index 1bd4e47b9..b5015412b 100644
--- a/CMSIS/DoxyGen/DAP/DAP.dxy.in
+++ b/CMSIS/Documentation/Doxygen/DAP/DAP.dxy.in
@@ -67,7 +67,7 @@ PROJECT_LOGO = ../Doxygen_Templates/cmsis_logo_white_small.png
# entered, it will be relative to the location where doxygen was started. If
# left blank the current directory will be used.
-OUTPUT_DIRECTORY = ../../Documentation/DAP
+OUTPUT_DIRECTORY = ../../html/DAP
# If the CREATE_SUBDIRS tag is set to YES then doxygen will create up to 4096
# sub-directories (in 2 levels) under the output directory of each output format
@@ -1302,7 +1302,7 @@ GENERATE_HTML = YES
# The default directory is: html.
# This tag requires that the tag GENERATE_HTML is set to YES.
-HTML_OUTPUT = html
+HTML_OUTPUT = ./
# The HTML_FILE_EXTENSION tag can be used to specify the file extension for each
# generated HTML page (for example: .htm, .php, .asp).
diff --git a/CMSIS/DoxyGen/DAP/src/images/.gitignore b/CMSIS/Documentation/Doxygen/DAP/src/images/.gitignore
similarity index 100%
rename from CMSIS/DoxyGen/DAP/src/images/.gitignore
rename to CMSIS/Documentation/Doxygen/DAP/src/images/.gitignore
diff --git a/CMSIS/DoxyGen/DAP/src/images/cmsis_dap_interface.png b/CMSIS/Documentation/Doxygen/DAP/src/images/cmsis_dap_interface.png
similarity index 100%
rename from CMSIS/DoxyGen/DAP/src/images/cmsis_dap_interface.png
rename to CMSIS/Documentation/Doxygen/DAP/src/images/cmsis_dap_interface.png
diff --git a/CMSIS/DoxyGen/DAP/src/mainpage.md b/CMSIS/Documentation/Doxygen/DAP/src/mainpage.md
similarity index 89%
rename from CMSIS/DoxyGen/DAP/src/mainpage.md
rename to CMSIS/Documentation/Doxygen/DAP/src/mainpage.md
index 0d7ef132a..ff776a06b 100644
--- a/CMSIS/DoxyGen/DAP/src/mainpage.md
+++ b/CMSIS/Documentation/Doxygen/DAP/src/mainpage.md
@@ -13,8 +13,8 @@ CMSIS-DAP provides the interface firmware for a debug unit that implements the c
## Access to CMSIS-DAP
-- [**CMSIS-DAP GitHub Repo**](https://github.com/ARM-software/CMSIS-DAP) provides the full source code.
-- [**CMSIS-DAP Documentation**](https://arm-software.github.io/CMSIS-DAP/latest/) describes the implemented functions in details.
+ - [**CMSIS-DAP GitHub Repo**](https://github.com/ARM-software/CMSIS-DAP) provides the full source code.
+ - [**CMSIS-DAP Documentation**](https://arm-software.github.io/CMSIS-DAP/latest/) describes the implemented functions in details.
## Key Features and Benefits
diff --git a/CMSIS/DoxyGen/DSP/DSP.dxy.in b/CMSIS/Documentation/Doxygen/DSP/DSP.dxy.in
similarity index 99%
rename from CMSIS/DoxyGen/DSP/DSP.dxy.in
rename to CMSIS/Documentation/Doxygen/DSP/DSP.dxy.in
index 167660176..f67b987a9 100644
--- a/CMSIS/DoxyGen/DSP/DSP.dxy.in
+++ b/CMSIS/Documentation/Doxygen/DSP/DSP.dxy.in
@@ -67,7 +67,7 @@ PROJECT_LOGO = ../Doxygen_Templates/cmsis_logo_white_small.png
# entered, it will be relative to the location where doxygen was started. If
# left blank the current directory will be used.
-OUTPUT_DIRECTORY = ../../Documentation/DSP
+OUTPUT_DIRECTORY = ../../html/DSP
# If the CREATE_SUBDIRS tag is set to YES then doxygen will create up to 4096
# sub-directories (in 2 levels) under the output directory of each output format
@@ -1302,7 +1302,7 @@ GENERATE_HTML = YES
# The default directory is: html.
# This tag requires that the tag GENERATE_HTML is set to YES.
-HTML_OUTPUT = html
+HTML_OUTPUT = ./
# The HTML_FILE_EXTENSION tag can be used to specify the file extension for each
# generated HTML page (for example: .htm, .php, .asp).
diff --git a/CMSIS/DoxyGen/DSP/src/images/.gitignore b/CMSIS/Documentation/Doxygen/DSP/src/images/.gitignore
similarity index 100%
rename from CMSIS/DoxyGen/DSP/src/images/.gitignore
rename to CMSIS/Documentation/Doxygen/DSP/src/images/.gitignore
diff --git a/CMSIS/Documentation/Doxygen/DSP/src/mainpage.md b/CMSIS/Documentation/Doxygen/DSP/src/mainpage.md
new file mode 100644
index 000000000..adc981fd2
--- /dev/null
+++ b/CMSIS/Documentation/Doxygen/DSP/src/mainpage.md
@@ -0,0 +1,24 @@
+# CMSIS-DSP {#mainpage}
+
+**CMSIS-DSP** is an open-source software library that implements common compute processing functions optimized for use on Arm Cortex-M and Cortex-A processors. The library covers such compute categories as (list not exhaustive):
+
+ - Basic mathematics (real, complex, quaternion, linear algebra, fast math functions)
+ - DSP (filtering)
+ - Transforms (FFT, MFCC, DCT)
+ - Statistics
+ - Classical ML (Support Vector Machine, Distance functions for clustering, ...)
+
+## Access to CMSIS-DSP
+
+CMSIS-DSP is actively maintained in a dedicated GitHub repository and is also published as a standalone release in [CMSIS Pack format]().
+
+ - [**CMSIS-DSP GitHub Repo**](https://github.com/ARM-software/CMSIS-DSP) provides the full source code as well as releases in CMSIS-Pack format.
+ - [**CMSIS-DSP Documentation**](https://arm-software.github.io/CMSIS-DSP/latest/) explains how to use the library and describes the implemented functions in details.
+
+## Key Features and Benefits
+
+ - CMSIS-DSP covers a broad set of compute functions common for use in embedded systems.
+ - Supports operations on 8-bit integers, 16-bit integers, 32-bit integer and 32-bit floating-point values.
+ - Provides vectorized versions of most algorthms for [Arm Helium Technology](https://developer.arm.com/Architectures/Helium) and of most f32 algorithms for [Arm Neon Technology](https://developer.arm.com/Architectures/Neon).
+ - Includes test framework.
+ - Provides examples demonstating how to use the library functions.
diff --git a/CMSIS/DoxyGen/Doxygen_Templates/Layout_forUser.xml b/CMSIS/Documentation/Doxygen/Doxygen_Templates/Layout_forUser.xml
similarity index 100%
rename from CMSIS/DoxyGen/Doxygen_Templates/Layout_forUser.xml
rename to CMSIS/Documentation/Doxygen/Doxygen_Templates/Layout_forUser.xml
diff --git a/CMSIS/DoxyGen/Doxygen_Templates/Layout_forUser_Core.xml b/CMSIS/Documentation/Doxygen/Doxygen_Templates/Layout_forUser_Core.xml
similarity index 100%
rename from CMSIS/DoxyGen/Doxygen_Templates/Layout_forUser_Core.xml
rename to CMSIS/Documentation/Doxygen/Doxygen_Templates/Layout_forUser_Core.xml
diff --git a/CMSIS/DoxyGen/Doxygen_Templates/cmsis_logo_white_small.png b/CMSIS/Documentation/Doxygen/Doxygen_Templates/cmsis_logo_white_small.png
similarity index 100%
rename from CMSIS/DoxyGen/Doxygen_Templates/cmsis_logo_white_small.png
rename to CMSIS/Documentation/Doxygen/Doxygen_Templates/cmsis_logo_white_small.png
diff --git a/CMSIS/DoxyGen/Doxygen_Templates/darkmode_toggle.js b/CMSIS/Documentation/Doxygen/Doxygen_Templates/darkmode_toggle.js
similarity index 100%
rename from CMSIS/DoxyGen/Doxygen_Templates/darkmode_toggle.js
rename to CMSIS/Documentation/Doxygen/Doxygen_Templates/darkmode_toggle.js
diff --git a/CMSIS/DoxyGen/Doxygen_Templates/dropdown.png b/CMSIS/Documentation/Doxygen/Doxygen_Templates/dropdown.png
similarity index 100%
rename from CMSIS/DoxyGen/Doxygen_Templates/dropdown.png
rename to CMSIS/Documentation/Doxygen/Doxygen_Templates/dropdown.png
diff --git a/CMSIS/DoxyGen/Doxygen_Templates/extra_navtree.css b/CMSIS/Documentation/Doxygen/Doxygen_Templates/extra_navtree.css
similarity index 99%
rename from CMSIS/DoxyGen/Doxygen_Templates/extra_navtree.css
rename to CMSIS/Documentation/Doxygen/Doxygen_Templates/extra_navtree.css
index aef388595..f4d03b5b9 100644
--- a/CMSIS/DoxyGen/Doxygen_Templates/extra_navtree.css
+++ b/CMSIS/Documentation/Doxygen/Doxygen_Templates/extra_navtree.css
@@ -102,7 +102,7 @@
display:block;
position: absolute;
left: 0px;
- width: 350px;
+ width: 320px;
}
.ui-resizable .ui-resizable-handle {
diff --git a/CMSIS/DoxyGen/Doxygen_Templates/extra_search.css b/CMSIS/Documentation/Doxygen/Doxygen_Templates/extra_search.css
similarity index 100%
rename from CMSIS/DoxyGen/Doxygen_Templates/extra_search.css
rename to CMSIS/Documentation/Doxygen/Doxygen_Templates/extra_search.css
diff --git a/CMSIS/DoxyGen/Doxygen_Templates/extra_stylesheet.css b/CMSIS/Documentation/Doxygen/Doxygen_Templates/extra_stylesheet.css
similarity index 99%
rename from CMSIS/DoxyGen/Doxygen_Templates/extra_stylesheet.css
rename to CMSIS/Documentation/Doxygen/Doxygen_Templates/extra_stylesheet.css
index 7546988b3..4d0e132b7 100644
--- a/CMSIS/DoxyGen/Doxygen_Templates/extra_stylesheet.css
+++ b/CMSIS/Documentation/Doxygen/Doxygen_Templates/extra_stylesheet.css
@@ -1232,6 +1232,15 @@ address {
color: #293C63;
}
+blockquote.doxtable {
+ margin-left:-7px;
+ margin-bottom: 6px;
+ padding-left: 3px;
+ border-left:4px solid;
+ border-color: #D0C000;
+ background-color: var(--page-background-color);
+}
+
table.doxtable {
border-collapse:collapse;
margin-top: 4px;
diff --git a/CMSIS/DoxyGen/Doxygen_Templates/footer.html b/CMSIS/Documentation/Doxygen/Doxygen_Templates/footer.html
similarity index 100%
rename from CMSIS/DoxyGen/Doxygen_Templates/footer.html
rename to CMSIS/Documentation/Doxygen/Doxygen_Templates/footer.html
diff --git a/CMSIS/DoxyGen/Doxygen_Templates/footer.js.in b/CMSIS/Documentation/Doxygen/Doxygen_Templates/footer.js.in
similarity index 100%
rename from CMSIS/DoxyGen/Doxygen_Templates/footer.js.in
rename to CMSIS/Documentation/Doxygen/Doxygen_Templates/footer.js.in
diff --git a/CMSIS/DoxyGen/Doxygen_Templates/header.html b/CMSIS/Documentation/Doxygen/Doxygen_Templates/header.html
similarity index 100%
rename from CMSIS/DoxyGen/Doxygen_Templates/header.html
rename to CMSIS/Documentation/Doxygen/Doxygen_Templates/header.html
diff --git a/CMSIS/DoxyGen/Doxygen_Templates/navtree.css b/CMSIS/Documentation/Doxygen/Doxygen_Templates/navtree.css
similarity index 100%
rename from CMSIS/DoxyGen/Doxygen_Templates/navtree.css
rename to CMSIS/Documentation/Doxygen/Doxygen_Templates/navtree.css
diff --git a/CMSIS/DoxyGen/Doxygen_Templates/navtree.js b/CMSIS/Documentation/Doxygen/Doxygen_Templates/navtree.js
similarity index 100%
rename from CMSIS/DoxyGen/Doxygen_Templates/navtree.js
rename to CMSIS/Documentation/Doxygen/Doxygen_Templates/navtree.js
diff --git a/CMSIS/DoxyGen/Doxygen_Templates/printComponentTabs.js b/CMSIS/Documentation/Doxygen/Doxygen_Templates/printComponentTabs.js
similarity index 85%
rename from CMSIS/DoxyGen/Doxygen_Templates/printComponentTabs.js
rename to CMSIS/Documentation/Doxygen/Doxygen_Templates/printComponentTabs.js
index b8f5bb855..644e79193 100644
--- a/CMSIS/DoxyGen/Doxygen_Templates/printComponentTabs.js
+++ b/CMSIS/Documentation/Doxygen/Doxygen_Templates/printComponentTabs.js
@@ -5,8 +5,8 @@ function tabElement(id, folderName, tabTxt ) {
this.id = id; // elementID as needed in html;
this.folderName = folderName; // folder name of the component
this.tabTxt = tabTxt; // Text displayed as menu on the web
- this.currentListItem = '
';
};
// constructor for the array of objects
@@ -14,8 +14,8 @@ function tabSubElement(id, folderName, tabTxt ) {
this.id = id; // elementID as needed in html;
this.folderName = folderName; // folder name of the component
this.tabTxt = tabTxt; // Text displayed as menu on the web
- this.currentListItem = '
';
};
// array of main tabs
@@ -61,7 +61,7 @@ function writeComponentTabs() {
// write sub-tabs (can't use layout XML as will show all other sub-tabs as well (API, usage, et.))
// called from the header file
function writeSubComponentTabs() {
- if((strgURL.search("/Core/html/")>0)||(strgURL.search("/Core_A/html/")>0)){
+ if((strgURL.search("/Core/")>0)||(strgURL.search("/Core_A/")>0)){
document.write('
');
document.write('
');
for ( var i=0; i < arr_sub.length; i++ ) {
diff --git a/CMSIS/Documentation/Doxygen/Doxygen_Templates/resize.js b/CMSIS/Documentation/Doxygen/Doxygen_Templates/resize.js
new file mode 100644
index 000000000..34a0c1e1b
--- /dev/null
+++ b/CMSIS/Documentation/Doxygen/Doxygen_Templates/resize.js
@@ -0,0 +1,155 @@
+/*
+ @licstart The following is the entire license notice for the JavaScript code in this file.
+
+ The MIT License (MIT)
+
+ Copyright (C) 1997-2020 by Dimitri van Heesch
+
+ Permission is hereby granted, free of charge, to any person obtaining a copy of this software
+ and associated documentation files (the "Software"), to deal in the Software without restriction,
+ including without limitation the rights to use, copy, modify, merge, publish, distribute,
+ sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is
+ furnished to do so, subject to the following conditions:
+
+ The above copyright notice and this permission notice shall be included in all copies or
+ substantial portions of the Software.
+
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING
+ BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
+ DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+ @licend The above is the entire license notice for the JavaScript code in this file
+ */
+var once=1;
+function initResizable()
+{
+ var cookie_namespace = 'doxygen';
+ var sidenav,navtree,content,header,barWidth=6,desktop_vp=768,titleHeight;
+
+ function readSetting(cookie)
+ {
+ if (window.chrome) {
+ var val = localStorage.getItem(cookie_namespace+'_width');
+ if (val) return val;
+ } else {
+ var myCookie = cookie_namespace+"_"+cookie+"=";
+ if (document.cookie) {
+ var index = document.cookie.indexOf(myCookie);
+ if (index != -1) {
+ var valStart = index + myCookie.length;
+ var valEnd = document.cookie.indexOf(";", valStart);
+ if (valEnd == -1) {
+ valEnd = document.cookie.length;
+ }
+ var val = document.cookie.substring(valStart, valEnd);
+ return val;
+ }
+ }
+ }
+ return 0;
+ }
+
+ function writeSetting(cookie, val)
+ {
+ if (window.chrome) {
+ localStorage.setItem(cookie_namespace+"_width",val);
+ } else {
+ var date = new Date();
+ date.setTime(date.getTime()+(10*365*24*60*60*1000)); // default expiration is one week
+ expiration = date.toGMTString();
+ document.cookie = cookie_namespace + "_" + cookie + "=" + val + "; SameSite=Lax; expires=" + expiration+"; path=/";
+ }
+ }
+
+ function resizeWidth()
+ {
+ var windowWidth = $(window).width() + "px";
+ var sidenavWidth = $(sidenav).outerWidth();
+ content.css({marginLeft:parseInt(sidenavWidth)+"px"});
+ if (typeof page_layout!=='undefined' && page_layout==1) {
+ footer.css({marginLeft:parseInt(sidenavWidth)+"px"});
+ }
+ writeSetting('width',sidenavWidth-barWidth);
+ }
+
+ function restoreWidth(navWidth)
+ {
+ var windowWidth = $(window).width() + "px";
+ content.css({marginLeft:parseInt(navWidth)+barWidth+"px"});
+ if (typeof page_layout!=='undefined' && page_layout==1) {
+ footer.css({marginLeft:parseInt(navWidth)+barWidth+"px"});
+ }
+ sidenav.css({width:navWidth + "px"});
+ }
+
+ function resizeHeight()
+ {
+ var headerHeight = header.outerHeight();
+ var footerHeight = footer.outerHeight();
+ var windowHeight = $(window).height();
+ var contentHeight,navtreeHeight,sideNavHeight;
+ if (typeof page_layout==='undefined' || page_layout==0) { /* DISABLE_INDEX=NO */
+ contentHeight = windowHeight - headerHeight - footerHeight;
+ navtreeHeight = contentHeight;
+ sideNavHeight = contentHeight;
+ } else if (page_layout==1) { /* DISABLE_INDEX=YES */
+ contentHeight = windowHeight - footerHeight;
+ navtreeHeight = windowHeight - headerHeight;
+ sideNavHeight = windowHeight;
+ }
+ content.css({height:contentHeight + "px"});
+ navtree.css({height:navtreeHeight + "px"});
+ sidenav.css({height:sideNavHeight + "px"});
+ if (location.hash.slice(1)) {
+ (document.getElementById(location.hash.slice(1))||document.body).scrollIntoView();
+ }
+ }
+
+ function collapseExpand()
+ {
+ var newWidth;
+ if (sidenav.width()>0) {
+ newWidth=0;
+ }
+ else {
+ var width = readSetting('width');
+ newWidth = (width>250 && width<$(window).width()) ? width : 250;
+ }
+ restoreWidth(newWidth);
+ var sidenavWidth = $(sidenav).outerWidth();
+ writeSetting('width',sidenavWidth-barWidth);
+ }
+
+ header = $("#top");
+ sidenav = $("#side-nav");
+ content = $("#doc-content");
+ navtree = $("#nav-tree");
+ footer = $("#nav-path");
+ $(".side-nav-resizable").resizable({resize: function(e, ui) { resizeWidth(); } });
+ $(sidenav).resizable({ minWidth: 0 });
+ $(window).resize(function() { resizeHeight(); });
+ var device = navigator.userAgent.toLowerCase();
+ var touch_device = device.match(/(iphone|ipod|ipad|android)/);
+ if (touch_device) { /* wider split bar for touch only devices */
+ $(sidenav).css({ paddingRight:'20px' });
+ $('.ui-resizable-e').css({ width:'20px' });
+ $('#nav-sync').css({ right:'34px' });
+ barWidth=20;
+ }
+ var width = readSetting('width');
+ if (width) { restoreWidth(width); } else { resizeWidth(); }
+ resizeHeight();
+ var url = location.href;
+ var i=url.indexOf("#");
+ if (i>=0) window.location.hash=url.substr(i);
+ var _preventDefault = function(evt) { evt.preventDefault(); };
+ $("#splitbar").bind("dragstart", _preventDefault).bind("selectstart", _preventDefault);
+ if (once) {
+ $(".ui-resizable-handle").dblclick(collapseExpand);
+ once=0
+ }
+ $(window).on('load',resizeHeight);
+}
+/* @license-end */
diff --git a/CMSIS/DoxyGen/Doxygen_Templates/search.css b/CMSIS/Documentation/Doxygen/Doxygen_Templates/search.css
similarity index 100%
rename from CMSIS/DoxyGen/Doxygen_Templates/search.css
rename to CMSIS/Documentation/Doxygen/Doxygen_Templates/search.css
diff --git a/CMSIS/DoxyGen/Doxygen_Templates/tab_b.png b/CMSIS/Documentation/Doxygen/Doxygen_Templates/tab_b.png
similarity index 100%
rename from CMSIS/DoxyGen/Doxygen_Templates/tab_b.png
rename to CMSIS/Documentation/Doxygen/Doxygen_Templates/tab_b.png
diff --git a/CMSIS/DoxyGen/Doxygen_Templates/tab_topnav.png b/CMSIS/Documentation/Doxygen/Doxygen_Templates/tab_topnav.png
similarity index 100%
rename from CMSIS/DoxyGen/Doxygen_Templates/tab_topnav.png
rename to CMSIS/Documentation/Doxygen/Doxygen_Templates/tab_topnav.png
diff --git a/CMSIS/DoxyGen/Doxygen_Templates/tabs.css b/CMSIS/Documentation/Doxygen/Doxygen_Templates/tabs.css
similarity index 100%
rename from CMSIS/DoxyGen/Doxygen_Templates/tabs.css
rename to CMSIS/Documentation/Doxygen/Doxygen_Templates/tabs.css
diff --git a/CMSIS/DoxyGen/Doxygen_Templates/version.css b/CMSIS/Documentation/Doxygen/Doxygen_Templates/version.css
similarity index 100%
rename from CMSIS/DoxyGen/Doxygen_Templates/version.css
rename to CMSIS/Documentation/Doxygen/Doxygen_Templates/version.css
diff --git a/CMSIS/DoxyGen/Driver/Driver.dxy.in b/CMSIS/Documentation/Doxygen/Driver/Driver.dxy.in
similarity index 98%
rename from CMSIS/DoxyGen/Driver/Driver.dxy.in
rename to CMSIS/Documentation/Doxygen/Driver/Driver.dxy.in
index 51da7d5b4..b280a1623 100644
--- a/CMSIS/DoxyGen/Driver/Driver.dxy.in
+++ b/CMSIS/Documentation/Doxygen/Driver/Driver.dxy.in
@@ -67,7 +67,7 @@ PROJECT_LOGO = ../Doxygen_Templates/cmsis_logo_white_small.png
# entered, it will be relative to the location where doxygen was started. If
# left blank the current directory will be used.
-OUTPUT_DIRECTORY = ../../Documentation/Driver
+OUTPUT_DIRECTORY = ../../html/Driver
# If the CREATE_SUBDIRS tag is set to YES then doxygen will create up to 4096
# sub-directories (in 2 levels) under the output directory of each output format
@@ -923,43 +923,43 @@ INPUT = ./src/mainpage.md \
./src/implementations.md \
./src/operation.md \
./src/validation.md \
- ../../Driver/Include/Driver_Common.h \
+ ../../../Driver/Include/Driver_Common.h \
src/Driver_Common.c \
- ../../Driver/Include/Driver_CAN.h \
+ ../../../Driver/Include/Driver_CAN.h \
src/Driver_CAN.c \
- ../../Driver/Include/Driver_ETH.h \
+ ../../../Driver/Include/Driver_ETH.h \
src/Driver_ETH.c \
- ../../Driver/Include/Driver_ETH_MAC.h \
+ ../../../Driver/Include/Driver_ETH_MAC.h \
src/Driver_ETH_MAC.c \
- ../../Driver/Include/Driver_ETH_PHY.h \
+ ../../../Driver/Include/Driver_ETH_PHY.h \
src/Driver_ETH_PHY.c \
- ../../Driver/Include/Driver_I2C.h \
+ ../../../Driver/Include/Driver_I2C.h \
src/Driver_I2C.c \
- ../../Driver/Include/Driver_MCI.h \
+ ../../../Driver/Include/Driver_MCI.h \
src/Driver_MCI.c \
- ../../Driver/Include/Driver_NAND.h \
+ ../../../Driver/Include/Driver_NAND.h \
src/Driver_NAND.c \
- ../../Driver/Include/Driver_Flash.h \
+ ../../../Driver/Include/Driver_Flash.h \
src/Driver_Flash.c \
- ../../Driver/Include/Driver_SAI.h \
+ ../../../Driver/Include/Driver_SAI.h \
src/Driver_SAI.c \
- ../../Driver/Include/Driver_SPI.h \
+ ../../../Driver/Include/Driver_SPI.h \
src/Driver_SPI.c \
- ../../Driver/Include/Driver_Storage.h \
+ ../../../Driver/Include/Driver_Storage.h \
src/Driver_Storage.c \
- ../../Driver/Include/Driver_USART.h \
+ ../../../Driver/Include/Driver_USART.h \
src/Driver_USART.c \
- ../../Driver/Include/Driver_USBD.h \
+ ../../../Driver/Include/Driver_USBD.h \
src/Driver_USBD.c \
- ../../Driver/Include/Driver_USBH.h \
+ ../../../Driver/Include/Driver_USBH.h \
src/Driver_USBH.c \
- ../../Driver/Include/Driver_USB.h \
+ ../../../Driver/Include/Driver_USB.h \
src/Driver_USB.c \
- ../../Driver/Include/Driver_GPIO.h \
+ ../../../Driver/Include/Driver_GPIO.h \
src/Driver_GPIO.c \
- ../../Driver/VIO/Include/cmsis_vio.h \
+ ../../../Driver/VIO/Include/cmsis_vio.h \
src/VIO.txt \
- ../../Driver/Include/Driver_WiFi.h \
+ ../../../Driver/Include/Driver_WiFi.h \
src/Driver_WiFi.c
# This tag can be used to specify the character encoding of the source files
@@ -1093,7 +1093,7 @@ EXCLUDE_SYMBOLS =
# that contain example code fragments that are included (see the \include
# command).
-EXAMPLE_PATH = ../../Driver/Include \
+EXAMPLE_PATH = ../../../Driver/Include \
./src
# If the value of the EXAMPLE_PATH tag contains directories, you can use the
@@ -1347,7 +1347,7 @@ GENERATE_HTML = YES
# The default directory is: html.
# This tag requires that the tag GENERATE_HTML is set to YES.
-HTML_OUTPUT = html
+HTML_OUTPUT = ./
# The HTML_FILE_EXTENSION tag can be used to specify the file extension for each
# generated HTML page (for example: .htm, .php, .asp).
diff --git a/CMSIS/DoxyGen/Driver/src/Driver_CAN.c b/CMSIS/Documentation/Doxygen/Driver/src/Driver_CAN.c
similarity index 100%
rename from CMSIS/DoxyGen/Driver/src/Driver_CAN.c
rename to CMSIS/Documentation/Doxygen/Driver/src/Driver_CAN.c
diff --git a/CMSIS/DoxyGen/Driver/src/Driver_Common.c b/CMSIS/Documentation/Doxygen/Driver/src/Driver_Common.c
similarity index 100%
rename from CMSIS/DoxyGen/Driver/src/Driver_Common.c
rename to CMSIS/Documentation/Doxygen/Driver/src/Driver_Common.c
diff --git a/CMSIS/DoxyGen/Driver/src/Driver_ETH.c b/CMSIS/Documentation/Doxygen/Driver/src/Driver_ETH.c
similarity index 100%
rename from CMSIS/DoxyGen/Driver/src/Driver_ETH.c
rename to CMSIS/Documentation/Doxygen/Driver/src/Driver_ETH.c
diff --git a/CMSIS/DoxyGen/Driver/src/Driver_ETH_MAC.c b/CMSIS/Documentation/Doxygen/Driver/src/Driver_ETH_MAC.c
similarity index 100%
rename from CMSIS/DoxyGen/Driver/src/Driver_ETH_MAC.c
rename to CMSIS/Documentation/Doxygen/Driver/src/Driver_ETH_MAC.c
diff --git a/CMSIS/DoxyGen/Driver/src/Driver_ETH_PHY.c b/CMSIS/Documentation/Doxygen/Driver/src/Driver_ETH_PHY.c
similarity index 100%
rename from CMSIS/DoxyGen/Driver/src/Driver_ETH_PHY.c
rename to CMSIS/Documentation/Doxygen/Driver/src/Driver_ETH_PHY.c
diff --git a/CMSIS/DoxyGen/Driver/src/Driver_Flash.c b/CMSIS/Documentation/Doxygen/Driver/src/Driver_Flash.c
similarity index 100%
rename from CMSIS/DoxyGen/Driver/src/Driver_Flash.c
rename to CMSIS/Documentation/Doxygen/Driver/src/Driver_Flash.c
diff --git a/CMSIS/DoxyGen/Driver/src/Driver_GPIO.c b/CMSIS/Documentation/Doxygen/Driver/src/Driver_GPIO.c
similarity index 100%
rename from CMSIS/DoxyGen/Driver/src/Driver_GPIO.c
rename to CMSIS/Documentation/Doxygen/Driver/src/Driver_GPIO.c
diff --git a/CMSIS/DoxyGen/Driver/src/Driver_I2C.c b/CMSIS/Documentation/Doxygen/Driver/src/Driver_I2C.c
similarity index 100%
rename from CMSIS/DoxyGen/Driver/src/Driver_I2C.c
rename to CMSIS/Documentation/Doxygen/Driver/src/Driver_I2C.c
diff --git a/CMSIS/DoxyGen/Driver/src/Driver_MCI.c b/CMSIS/Documentation/Doxygen/Driver/src/Driver_MCI.c
similarity index 100%
rename from CMSIS/DoxyGen/Driver/src/Driver_MCI.c
rename to CMSIS/Documentation/Doxygen/Driver/src/Driver_MCI.c
diff --git a/CMSIS/DoxyGen/Driver/src/Driver_NAND.c b/CMSIS/Documentation/Doxygen/Driver/src/Driver_NAND.c
similarity index 100%
rename from CMSIS/DoxyGen/Driver/src/Driver_NAND.c
rename to CMSIS/Documentation/Doxygen/Driver/src/Driver_NAND.c
diff --git a/CMSIS/DoxyGen/Driver/src/Driver_NAND_AddOn.txt b/CMSIS/Documentation/Doxygen/Driver/src/Driver_NAND_AddOn.txt
similarity index 100%
rename from CMSIS/DoxyGen/Driver/src/Driver_NAND_AddOn.txt
rename to CMSIS/Documentation/Doxygen/Driver/src/Driver_NAND_AddOn.txt
diff --git a/CMSIS/DoxyGen/Driver/src/Driver_SAI.c b/CMSIS/Documentation/Doxygen/Driver/src/Driver_SAI.c
similarity index 100%
rename from CMSIS/DoxyGen/Driver/src/Driver_SAI.c
rename to CMSIS/Documentation/Doxygen/Driver/src/Driver_SAI.c
diff --git a/CMSIS/DoxyGen/Driver/src/Driver_SPI.c b/CMSIS/Documentation/Doxygen/Driver/src/Driver_SPI.c
similarity index 100%
rename from CMSIS/DoxyGen/Driver/src/Driver_SPI.c
rename to CMSIS/Documentation/Doxygen/Driver/src/Driver_SPI.c
diff --git a/CMSIS/DoxyGen/Driver/src/Driver_Storage.c b/CMSIS/Documentation/Doxygen/Driver/src/Driver_Storage.c
similarity index 100%
rename from CMSIS/DoxyGen/Driver/src/Driver_Storage.c
rename to CMSIS/Documentation/Doxygen/Driver/src/Driver_Storage.c
diff --git a/CMSIS/DoxyGen/Driver/src/Driver_USART.c b/CMSIS/Documentation/Doxygen/Driver/src/Driver_USART.c
similarity index 100%
rename from CMSIS/DoxyGen/Driver/src/Driver_USART.c
rename to CMSIS/Documentation/Doxygen/Driver/src/Driver_USART.c
diff --git a/CMSIS/DoxyGen/Driver/src/Driver_USB.c b/CMSIS/Documentation/Doxygen/Driver/src/Driver_USB.c
similarity index 100%
rename from CMSIS/DoxyGen/Driver/src/Driver_USB.c
rename to CMSIS/Documentation/Doxygen/Driver/src/Driver_USB.c
diff --git a/CMSIS/DoxyGen/Driver/src/Driver_USBD.c b/CMSIS/Documentation/Doxygen/Driver/src/Driver_USBD.c
similarity index 100%
rename from CMSIS/DoxyGen/Driver/src/Driver_USBD.c
rename to CMSIS/Documentation/Doxygen/Driver/src/Driver_USBD.c
diff --git a/CMSIS/DoxyGen/Driver/src/Driver_USBH.c b/CMSIS/Documentation/Doxygen/Driver/src/Driver_USBH.c
similarity index 100%
rename from CMSIS/DoxyGen/Driver/src/Driver_USBH.c
rename to CMSIS/Documentation/Doxygen/Driver/src/Driver_USBH.c
diff --git a/CMSIS/DoxyGen/Driver/src/Driver_WiFi.c b/CMSIS/Documentation/Doxygen/Driver/src/Driver_WiFi.c
similarity index 100%
rename from CMSIS/DoxyGen/Driver/src/Driver_WiFi.c
rename to CMSIS/Documentation/Doxygen/Driver/src/Driver_WiFi.c
diff --git a/CMSIS/DoxyGen/Driver/src/Flash_Demo.c b/CMSIS/Documentation/Doxygen/Driver/src/Flash_Demo.c
similarity index 100%
rename from CMSIS/DoxyGen/Driver/src/Flash_Demo.c
rename to CMSIS/Documentation/Doxygen/Driver/src/Flash_Demo.c
diff --git a/CMSIS/DoxyGen/Driver/src/GPIO_Demo.c b/CMSIS/Documentation/Doxygen/Driver/src/GPIO_Demo.c
similarity index 100%
rename from CMSIS/DoxyGen/Driver/src/GPIO_Demo.c
rename to CMSIS/Documentation/Doxygen/Driver/src/GPIO_Demo.c
diff --git a/CMSIS/DoxyGen/Driver/src/I2C_Demo.c b/CMSIS/Documentation/Doxygen/Driver/src/I2C_Demo.c
similarity index 100%
rename from CMSIS/DoxyGen/Driver/src/I2C_Demo.c
rename to CMSIS/Documentation/Doxygen/Driver/src/I2C_Demo.c
diff --git a/CMSIS/DoxyGen/Driver/src/I2C_SlaveDemo.c b/CMSIS/Documentation/Doxygen/Driver/src/I2C_SlaveDemo.c
similarity index 100%
rename from CMSIS/DoxyGen/Driver/src/I2C_SlaveDemo.c
rename to CMSIS/Documentation/Doxygen/Driver/src/I2C_SlaveDemo.c
diff --git a/CMSIS/DoxyGen/Driver/src/MCI_Demo.c b/CMSIS/Documentation/Doxygen/Driver/src/MCI_Demo.c
similarity index 100%
rename from CMSIS/DoxyGen/Driver/src/MCI_Demo.c
rename to CMSIS/Documentation/Doxygen/Driver/src/MCI_Demo.c
diff --git a/CMSIS/DoxyGen/Driver/src/NAND_Demo.c b/CMSIS/Documentation/Doxygen/Driver/src/NAND_Demo.c
similarity index 100%
rename from CMSIS/DoxyGen/Driver/src/NAND_Demo.c
rename to CMSIS/Documentation/Doxygen/Driver/src/NAND_Demo.c
diff --git a/CMSIS/DoxyGen/Driver/src/SPI_Demo.c b/CMSIS/Documentation/Doxygen/Driver/src/SPI_Demo.c
similarity index 100%
rename from CMSIS/DoxyGen/Driver/src/SPI_Demo.c
rename to CMSIS/Documentation/Doxygen/Driver/src/SPI_Demo.c
diff --git a/CMSIS/DoxyGen/Driver/src/USART_Demo.c b/CMSIS/Documentation/Doxygen/Driver/src/USART_Demo.c
similarity index 100%
rename from CMSIS/DoxyGen/Driver/src/USART_Demo.c
rename to CMSIS/Documentation/Doxygen/Driver/src/USART_Demo.c
diff --git a/CMSIS/DoxyGen/Driver/src/VIO.txt b/CMSIS/Documentation/Doxygen/Driver/src/VIO.txt
similarity index 100%
rename from CMSIS/DoxyGen/Driver/src/VIO.txt
rename to CMSIS/Documentation/Doxygen/Driver/src/VIO.txt
diff --git a/CMSIS/DoxyGen/Driver/src/history.md b/CMSIS/Documentation/Doxygen/Driver/src/history.md
similarity index 88%
rename from CMSIS/DoxyGen/Driver/src/history.md
rename to CMSIS/Documentation/Doxygen/Driver/src/history.md
index b3401960a..caff0476f 100644
--- a/CMSIS/DoxyGen/Driver/src/history.md
+++ b/CMSIS/Documentation/Doxygen/Driver/src/history.md
@@ -1,6 +1,8 @@
# Revision History {#driver_revisionHistory}
-CMSIS-Driver component is maintaned with own versioning and gets updated together with the [CMSIS Software Pack](../../General/html/cmsis_pack.html). The table below provides information about the changes delivered with specific versions of CMSIS-Driver releases.
+CMSIS-Driver component is maintained with its own versioning that gets offically updated upon releases of the [CMSIS Software Pack](../General/cmsis_pack.html).
+
+The table below provides information about the changes delivered with specific versions of CMSIS-Driver.
diff --git a/CMSIS/DoxyGen/Driver/src/images/CAN_Bit_Timing.png b/CMSIS/Documentation/Doxygen/Driver/src/images/CAN_Bit_Timing.png
similarity index 100%
rename from CMSIS/DoxyGen/Driver/src/images/CAN_Bit_Timing.png
rename to CMSIS/Documentation/Doxygen/Driver/src/images/CAN_Bit_Timing.png
diff --git a/CMSIS/DoxyGen/Driver/src/images/CAN_Bit_Timing.vsd b/CMSIS/Documentation/Doxygen/Driver/src/images/CAN_Bit_Timing.vsd
similarity index 100%
rename from CMSIS/DoxyGen/Driver/src/images/CAN_Bit_Timing.vsd
rename to CMSIS/Documentation/Doxygen/Driver/src/images/CAN_Bit_Timing.vsd
diff --git a/CMSIS/DoxyGen/Driver/src/images/CAN_Node.png b/CMSIS/Documentation/Doxygen/Driver/src/images/CAN_Node.png
similarity index 100%
rename from CMSIS/DoxyGen/Driver/src/images/CAN_Node.png
rename to CMSIS/Documentation/Doxygen/Driver/src/images/CAN_Node.png
diff --git a/CMSIS/DoxyGen/Driver/src/images/CAN_Node.vsd b/CMSIS/Documentation/Doxygen/Driver/src/images/CAN_Node.vsd
similarity index 100%
rename from CMSIS/DoxyGen/Driver/src/images/CAN_Node.vsd
rename to CMSIS/Documentation/Doxygen/Driver/src/images/CAN_Node.vsd
diff --git a/CMSIS/DoxyGen/Driver/src/images/ComponentSelection.png b/CMSIS/Documentation/Doxygen/Driver/src/images/ComponentSelection.png
similarity index 100%
rename from CMSIS/DoxyGen/Driver/src/images/ComponentSelection.png
rename to CMSIS/Documentation/Doxygen/Driver/src/images/ComponentSelection.png
diff --git a/CMSIS/DoxyGen/Driver/src/images/EthernetSchematic.png b/CMSIS/Documentation/Doxygen/Driver/src/images/EthernetSchematic.png
similarity index 100%
rename from CMSIS/DoxyGen/Driver/src/images/EthernetSchematic.png
rename to CMSIS/Documentation/Doxygen/Driver/src/images/EthernetSchematic.png
diff --git a/CMSIS/DoxyGen/Driver/src/images/EthernetSchematic.vsd b/CMSIS/Documentation/Doxygen/Driver/src/images/EthernetSchematic.vsd
similarity index 100%
rename from CMSIS/DoxyGen/Driver/src/images/EthernetSchematic.vsd
rename to CMSIS/Documentation/Doxygen/Driver/src/images/EthernetSchematic.vsd
diff --git a/CMSIS/DoxyGen/Driver/src/images/I2C_BlockDiagram.png b/CMSIS/Documentation/Doxygen/Driver/src/images/I2C_BlockDiagram.png
similarity index 100%
rename from CMSIS/DoxyGen/Driver/src/images/I2C_BlockDiagram.png
rename to CMSIS/Documentation/Doxygen/Driver/src/images/I2C_BlockDiagram.png
diff --git a/CMSIS/DoxyGen/Driver/src/images/I2C_BlockDiagram.vsd b/CMSIS/Documentation/Doxygen/Driver/src/images/I2C_BlockDiagram.vsd
similarity index 100%
rename from CMSIS/DoxyGen/Driver/src/images/I2C_BlockDiagram.vsd
rename to CMSIS/Documentation/Doxygen/Driver/src/images/I2C_BlockDiagram.vsd
diff --git a/CMSIS/DoxyGen/Driver/src/images/NAND_PageLayout.png b/CMSIS/Documentation/Doxygen/Driver/src/images/NAND_PageLayout.png
similarity index 100%
rename from CMSIS/DoxyGen/Driver/src/images/NAND_PageLayout.png
rename to CMSIS/Documentation/Doxygen/Driver/src/images/NAND_PageLayout.png
diff --git a/CMSIS/DoxyGen/Driver/src/images/NAND_PageLayout.vsd b/CMSIS/Documentation/Doxygen/Driver/src/images/NAND_PageLayout.vsd
similarity index 100%
rename from CMSIS/DoxyGen/Driver/src/images/NAND_PageLayout.vsd
rename to CMSIS/Documentation/Doxygen/Driver/src/images/NAND_PageLayout.vsd
diff --git a/CMSIS/DoxyGen/Driver/src/images/NAND_Schematics.png b/CMSIS/Documentation/Doxygen/Driver/src/images/NAND_Schematics.png
similarity index 100%
rename from CMSIS/DoxyGen/Driver/src/images/NAND_Schematics.png
rename to CMSIS/Documentation/Doxygen/Driver/src/images/NAND_Schematics.png
diff --git a/CMSIS/DoxyGen/Driver/src/images/NAND_Schematics.vsd b/CMSIS/Documentation/Doxygen/Driver/src/images/NAND_Schematics.vsd
similarity index 100%
rename from CMSIS/DoxyGen/Driver/src/images/NAND_Schematics.vsd
rename to CMSIS/Documentation/Doxygen/Driver/src/images/NAND_Schematics.vsd
diff --git a/CMSIS/DoxyGen/Driver/src/images/NAND_SpareArea.png b/CMSIS/Documentation/Doxygen/Driver/src/images/NAND_SpareArea.png
similarity index 100%
rename from CMSIS/DoxyGen/Driver/src/images/NAND_SpareArea.png
rename to CMSIS/Documentation/Doxygen/Driver/src/images/NAND_SpareArea.png
diff --git a/CMSIS/DoxyGen/Driver/src/images/NAND_SpareArea.vsd b/CMSIS/Documentation/Doxygen/Driver/src/images/NAND_SpareArea.vsd
similarity index 100%
rename from CMSIS/DoxyGen/Driver/src/images/NAND_SpareArea.vsd
rename to CMSIS/Documentation/Doxygen/Driver/src/images/NAND_SpareArea.vsd
diff --git a/CMSIS/DoxyGen/Driver/src/images/NOR_Schematics.png b/CMSIS/Documentation/Doxygen/Driver/src/images/NOR_Schematics.png
similarity index 100%
rename from CMSIS/DoxyGen/Driver/src/images/NOR_Schematics.png
rename to CMSIS/Documentation/Doxygen/Driver/src/images/NOR_Schematics.png
diff --git a/CMSIS/DoxyGen/Driver/src/images/NOR_Schematics.vsd b/CMSIS/Documentation/Doxygen/Driver/src/images/NOR_Schematics.vsd
similarity index 100%
rename from CMSIS/DoxyGen/Driver/src/images/NOR_Schematics.vsd
rename to CMSIS/Documentation/Doxygen/Driver/src/images/NOR_Schematics.vsd
diff --git a/CMSIS/DoxyGen/Driver/src/images/Non_blocking_transmit_small.png b/CMSIS/Documentation/Doxygen/Driver/src/images/Non_blocking_transmit_small.png
similarity index 100%
rename from CMSIS/DoxyGen/Driver/src/images/Non_blocking_transmit_small.png
rename to CMSIS/Documentation/Doxygen/Driver/src/images/Non_blocking_transmit_small.png
diff --git a/CMSIS/DoxyGen/Driver/src/images/PDSC_Example.png b/CMSIS/Documentation/Doxygen/Driver/src/images/PDSC_Example.png
similarity index 100%
rename from CMSIS/DoxyGen/Driver/src/images/PDSC_Example.png
rename to CMSIS/Documentation/Doxygen/Driver/src/images/PDSC_Example.png
diff --git a/CMSIS/DoxyGen/Driver/src/images/SAI_Schematics.png b/CMSIS/Documentation/Doxygen/Driver/src/images/SAI_Schematics.png
similarity index 100%
rename from CMSIS/DoxyGen/Driver/src/images/SAI_Schematics.png
rename to CMSIS/Documentation/Doxygen/Driver/src/images/SAI_Schematics.png
diff --git a/CMSIS/DoxyGen/Driver/src/images/SAI_Schematics.vsd b/CMSIS/Documentation/Doxygen/Driver/src/images/SAI_Schematics.vsd
similarity index 100%
rename from CMSIS/DoxyGen/Driver/src/images/SAI_Schematics.vsd
rename to CMSIS/Documentation/Doxygen/Driver/src/images/SAI_Schematics.vsd
diff --git a/CMSIS/DoxyGen/Driver/src/images/SAI_TimingDiagrams.vsd b/CMSIS/Documentation/Doxygen/Driver/src/images/SAI_TimingDiagrams.vsd
similarity index 100%
rename from CMSIS/DoxyGen/Driver/src/images/SAI_TimingDiagrams.vsd
rename to CMSIS/Documentation/Doxygen/Driver/src/images/SAI_TimingDiagrams.vsd
diff --git a/CMSIS/DoxyGen/Driver/src/images/SD_1BitBusMode.png b/CMSIS/Documentation/Doxygen/Driver/src/images/SD_1BitBusMode.png
similarity index 100%
rename from CMSIS/DoxyGen/Driver/src/images/SD_1BitBusMode.png
rename to CMSIS/Documentation/Doxygen/Driver/src/images/SD_1BitBusMode.png
diff --git a/CMSIS/DoxyGen/Driver/src/images/SD_1BitBusMode.vsd b/CMSIS/Documentation/Doxygen/Driver/src/images/SD_1BitBusMode.vsd
similarity index 100%
rename from CMSIS/DoxyGen/Driver/src/images/SD_1BitBusMode.vsd
rename to CMSIS/Documentation/Doxygen/Driver/src/images/SD_1BitBusMode.vsd
diff --git a/CMSIS/DoxyGen/Driver/src/images/SD_4BitBusMode.png b/CMSIS/Documentation/Doxygen/Driver/src/images/SD_4BitBusMode.png
similarity index 100%
rename from CMSIS/DoxyGen/Driver/src/images/SD_4BitBusMode.png
rename to CMSIS/Documentation/Doxygen/Driver/src/images/SD_4BitBusMode.png
diff --git a/CMSIS/DoxyGen/Driver/src/images/SD_4BitBusMode.vsd b/CMSIS/Documentation/Doxygen/Driver/src/images/SD_4BitBusMode.vsd
similarity index 100%
rename from CMSIS/DoxyGen/Driver/src/images/SD_4BitBusMode.vsd
rename to CMSIS/Documentation/Doxygen/Driver/src/images/SD_4BitBusMode.vsd
diff --git a/CMSIS/DoxyGen/Driver/src/images/SPI_BusMode.png b/CMSIS/Documentation/Doxygen/Driver/src/images/SPI_BusMode.png
similarity index 100%
rename from CMSIS/DoxyGen/Driver/src/images/SPI_BusMode.png
rename to CMSIS/Documentation/Doxygen/Driver/src/images/SPI_BusMode.png
diff --git a/CMSIS/DoxyGen/Driver/src/images/SPI_BusMode.vsd b/CMSIS/Documentation/Doxygen/Driver/src/images/SPI_BusMode.vsd
similarity index 100%
rename from CMSIS/DoxyGen/Driver/src/images/SPI_BusMode.vsd
rename to CMSIS/Documentation/Doxygen/Driver/src/images/SPI_BusMode.vsd
diff --git a/CMSIS/DoxyGen/Driver/src/images/SPI_Master1Slaves.png b/CMSIS/Documentation/Doxygen/Driver/src/images/SPI_Master1Slaves.png
similarity index 100%
rename from CMSIS/DoxyGen/Driver/src/images/SPI_Master1Slaves.png
rename to CMSIS/Documentation/Doxygen/Driver/src/images/SPI_Master1Slaves.png
diff --git a/CMSIS/DoxyGen/Driver/src/images/SPI_Master1Slaves.vsd b/CMSIS/Documentation/Doxygen/Driver/src/images/SPI_Master1Slaves.vsd
similarity index 100%
rename from CMSIS/DoxyGen/Driver/src/images/SPI_Master1Slaves.vsd
rename to CMSIS/Documentation/Doxygen/Driver/src/images/SPI_Master1Slaves.vsd
diff --git a/CMSIS/DoxyGen/Driver/src/images/SPI_Master2Slaves.png b/CMSIS/Documentation/Doxygen/Driver/src/images/SPI_Master2Slaves.png
similarity index 100%
rename from CMSIS/DoxyGen/Driver/src/images/SPI_Master2Slaves.png
rename to CMSIS/Documentation/Doxygen/Driver/src/images/SPI_Master2Slaves.png
diff --git a/CMSIS/DoxyGen/Driver/src/images/SPI_Master2Slaves.vsd b/CMSIS/Documentation/Doxygen/Driver/src/images/SPI_Master2Slaves.vsd
similarity index 100%
rename from CMSIS/DoxyGen/Driver/src/images/SPI_Master2Slaves.vsd
rename to CMSIS/Documentation/Doxygen/Driver/src/images/SPI_Master2Slaves.vsd
diff --git a/CMSIS/DoxyGen/Driver/src/images/SPI_Master3Slaves.png b/CMSIS/Documentation/Doxygen/Driver/src/images/SPI_Master3Slaves.png
similarity index 100%
rename from CMSIS/DoxyGen/Driver/src/images/SPI_Master3Slaves.png
rename to CMSIS/Documentation/Doxygen/Driver/src/images/SPI_Master3Slaves.png
diff --git a/CMSIS/DoxyGen/Driver/src/images/SPI_Master3Slaves.vsd b/CMSIS/Documentation/Doxygen/Driver/src/images/SPI_Master3Slaves.vsd
similarity index 100%
rename from CMSIS/DoxyGen/Driver/src/images/SPI_Master3Slaves.vsd
rename to CMSIS/Documentation/Doxygen/Driver/src/images/SPI_Master3Slaves.vsd
diff --git a/CMSIS/DoxyGen/Driver/src/images/SoftwarePacks.png b/CMSIS/Documentation/Doxygen/Driver/src/images/SoftwarePacks.png
similarity index 100%
rename from CMSIS/DoxyGen/Driver/src/images/SoftwarePacks.png
rename to CMSIS/Documentation/Doxygen/Driver/src/images/SoftwarePacks.png
diff --git a/CMSIS/DoxyGen/Driver/src/images/Storage.vsd b/CMSIS/Documentation/Doxygen/Driver/src/images/Storage.vsd
similarity index 100%
rename from CMSIS/DoxyGen/Driver/src/images/Storage.vsd
rename to CMSIS/Documentation/Doxygen/Driver/src/images/Storage.vsd
diff --git a/CMSIS/DoxyGen/Driver/src/images/USB_Schematics.png b/CMSIS/Documentation/Doxygen/Driver/src/images/USB_Schematics.png
similarity index 100%
rename from CMSIS/DoxyGen/Driver/src/images/USB_Schematics.png
rename to CMSIS/Documentation/Doxygen/Driver/src/images/USB_Schematics.png
diff --git a/CMSIS/DoxyGen/Driver/src/images/USB_Schematics.vsd b/CMSIS/Documentation/Doxygen/Driver/src/images/USB_Schematics.vsd
similarity index 100%
rename from CMSIS/DoxyGen/Driver/src/images/USB_Schematics.vsd
rename to CMSIS/Documentation/Doxygen/Driver/src/images/USB_Schematics.vsd
diff --git a/CMSIS/DoxyGen/Driver/src/images/WiFi.png b/CMSIS/Documentation/Doxygen/Driver/src/images/WiFi.png
similarity index 100%
rename from CMSIS/DoxyGen/Driver/src/images/WiFi.png
rename to CMSIS/Documentation/Doxygen/Driver/src/images/WiFi.png
diff --git a/CMSIS/DoxyGen/Driver/src/images/driver.png b/CMSIS/Documentation/Doxygen/Driver/src/images/driver.png
similarity index 100%
rename from CMSIS/DoxyGen/Driver/src/images/driver.png
rename to CMSIS/Documentation/Doxygen/Driver/src/images/driver.png
diff --git a/CMSIS/DoxyGen/Driver/src/images/driver.pptx b/CMSIS/Documentation/Doxygen/Driver/src/images/driver.pptx
similarity index 100%
rename from CMSIS/DoxyGen/Driver/src/images/driver.pptx
rename to CMSIS/Documentation/Doxygen/Driver/src/images/driver.pptx
diff --git a/CMSIS/DoxyGen/Driver/src/images/driver_sai_i2s.png b/CMSIS/Documentation/Doxygen/Driver/src/images/driver_sai_i2s.png
similarity index 100%
rename from CMSIS/DoxyGen/Driver/src/images/driver_sai_i2s.png
rename to CMSIS/Documentation/Doxygen/Driver/src/images/driver_sai_i2s.png
diff --git a/CMSIS/DoxyGen/Driver/src/images/driver_sai_lsb.png b/CMSIS/Documentation/Doxygen/Driver/src/images/driver_sai_lsb.png
similarity index 100%
rename from CMSIS/DoxyGen/Driver/src/images/driver_sai_lsb.png
rename to CMSIS/Documentation/Doxygen/Driver/src/images/driver_sai_lsb.png
diff --git a/CMSIS/DoxyGen/Driver/src/images/driver_sai_msb.png b/CMSIS/Documentation/Doxygen/Driver/src/images/driver_sai_msb.png
similarity index 100%
rename from CMSIS/DoxyGen/Driver/src/images/driver_sai_msb.png
rename to CMSIS/Documentation/Doxygen/Driver/src/images/driver_sai_msb.png
diff --git a/CMSIS/DoxyGen/Driver/src/images/driver_sai_pcm.png b/CMSIS/Documentation/Doxygen/Driver/src/images/driver_sai_pcm.png
similarity index 100%
rename from CMSIS/DoxyGen/Driver/src/images/driver_sai_pcm.png
rename to CMSIS/Documentation/Doxygen/Driver/src/images/driver_sai_pcm.png
diff --git a/CMSIS/DoxyGen/Driver/src/images/driver_sai_user.png b/CMSIS/Documentation/Doxygen/Driver/src/images/driver_sai_user.png
similarity index 100%
rename from CMSIS/DoxyGen/Driver/src/images/driver_sai_user.png
rename to CMSIS/Documentation/Doxygen/Driver/src/images/driver_sai_user.png
diff --git a/CMSIS/DoxyGen/Driver/src/images/image001.png b/CMSIS/Documentation/Doxygen/Driver/src/images/image001.png
similarity index 100%
rename from CMSIS/DoxyGen/Driver/src/images/image001.png
rename to CMSIS/Documentation/Doxygen/Driver/src/images/image001.png
diff --git a/CMSIS/DoxyGen/Driver/src/images/image002.png b/CMSIS/Documentation/Doxygen/Driver/src/images/image002.png
similarity index 100%
rename from CMSIS/DoxyGen/Driver/src/images/image002.png
rename to CMSIS/Documentation/Doxygen/Driver/src/images/image002.png
diff --git a/CMSIS/DoxyGen/Driver/src/images/image003.png b/CMSIS/Documentation/Doxygen/Driver/src/images/image003.png
similarity index 100%
rename from CMSIS/DoxyGen/Driver/src/images/image003.png
rename to CMSIS/Documentation/Doxygen/Driver/src/images/image003.png
diff --git a/CMSIS/DoxyGen/Driver/src/images/image004.png b/CMSIS/Documentation/Doxygen/Driver/src/images/image004.png
similarity index 100%
rename from CMSIS/DoxyGen/Driver/src/images/image004.png
rename to CMSIS/Documentation/Doxygen/Driver/src/images/image004.png
diff --git a/CMSIS/DoxyGen/Driver/src/images/image005.png b/CMSIS/Documentation/Doxygen/Driver/src/images/image005.png
similarity index 100%
rename from CMSIS/DoxyGen/Driver/src/images/image005.png
rename to CMSIS/Documentation/Doxygen/Driver/src/images/image005.png
diff --git a/CMSIS/DoxyGen/Driver/src/images/image006.png b/CMSIS/Documentation/Doxygen/Driver/src/images/image006.png
similarity index 100%
rename from CMSIS/DoxyGen/Driver/src/images/image006.png
rename to CMSIS/Documentation/Doxygen/Driver/src/images/image006.png
diff --git a/CMSIS/DoxyGen/Driver/src/images/storage_sw_stack.png b/CMSIS/Documentation/Doxygen/Driver/src/images/storage_sw_stack.png
similarity index 100%
rename from CMSIS/DoxyGen/Driver/src/images/storage_sw_stack.png
rename to CMSIS/Documentation/Doxygen/Driver/src/images/storage_sw_stack.png
diff --git a/CMSIS/DoxyGen/Driver/src/images/vioComponentViewer.png b/CMSIS/Documentation/Doxygen/Driver/src/images/vioComponentViewer.png
similarity index 100%
rename from CMSIS/DoxyGen/Driver/src/images/vioComponentViewer.png
rename to CMSIS/Documentation/Doxygen/Driver/src/images/vioComponentViewer.png
diff --git a/CMSIS/DoxyGen/Driver/src/images/vioRationale.png b/CMSIS/Documentation/Doxygen/Driver/src/images/vioRationale.png
similarity index 100%
rename from CMSIS/DoxyGen/Driver/src/images/vioRationale.png
rename to CMSIS/Documentation/Doxygen/Driver/src/images/vioRationale.png
diff --git a/CMSIS/DoxyGen/Driver/src/implementations.md b/CMSIS/Documentation/Doxygen/Driver/src/implementations.md
similarity index 99%
rename from CMSIS/DoxyGen/Driver/src/implementations.md
rename to CMSIS/Documentation/Doxygen/Driver/src/implementations.md
index ceed51884..09fa900ef 100644
--- a/CMSIS/DoxyGen/Driver/src/implementations.md
+++ b/CMSIS/Documentation/Doxygen/Driver/src/implementations.md
@@ -4166,4 +4166,4 @@ Some CMSIS-Driver implementations for external MCU-independent peripheral device
-Last update: 2023-06-13.
\ No newline at end of file
+Last update: 2023-06-13.
diff --git a/CMSIS/DoxyGen/Driver/src/mainpage.md b/CMSIS/Documentation/Doxygen/Driver/src/mainpage.md
similarity index 97%
rename from CMSIS/DoxyGen/Driver/src/mainpage.md
rename to CMSIS/Documentation/Doxygen/Driver/src/mainpage.md
index fadce9f38..e99edafa2 100644
--- a/CMSIS/DoxyGen/Driver/src/mainpage.md
+++ b/CMSIS/Documentation/Doxygen/Driver/src/mainpage.md
@@ -43,7 +43,7 @@ A list of current CMSIS-Driver implementations is available \ref listOfImplement
## Access to CMSIS-Driver {#cmsis_driver_pack}
-CMSIS-Driver intefaces are actively maintained in [CMSIS 6 GitHub repository](https://github.com/ARM-software/CMSIS_6) and released as part of the [CMSIS Software Pack](../../General/html/cmsis_pack.html).
+CMSIS-Driver intefaces are actively maintained in [CMSIS 6 GitHub repository](https://github.com/ARM-software/CMSIS_6) and released as part of the [CMSIS Software Pack](../General/cmsis_pack.html).
The CMSIS Software Pack publishes the API Interface under the Component Class **CMSIS Driver** with header files and a documentation. These header files are the reference for the implementation of the standardized peripheral driver interfaces.
@@ -54,7 +54,7 @@ The following directories and files relevant to CMSIS-Driver are present in the
Directory | Content
:---------------------------------|:------------------------------------------------------------------------
📂 CMSIS | CMSIS Base software components folder
- ┣ 📂 Documentation/Driver | A local copy of this CMSIS-Driver documentation
+ ┣ 📂 Documentation/html/Driver | A local copy of this CMSIS-Driver documentation
┣ 📂 Driver | Directory with CMSIS-Driver component, see \ref cmsis_driver_files
┣ 📂 DriverTemplates | Driver Template files (Driver_interface.c)
┣ 📂 Include | API header files (Driver_interface.h, %Driver_Common.h)
diff --git a/CMSIS/DoxyGen/Driver/src/operation.md b/CMSIS/Documentation/Doxygen/Driver/src/operation.md
similarity index 79%
rename from CMSIS/DoxyGen/Driver/src/operation.md
rename to CMSIS/Documentation/Doxygen/Driver/src/operation.md
index cad8f53dc..afecc60cb 100644
--- a/CMSIS/DoxyGen/Driver/src/operation.md
+++ b/CMSIS/Documentation/Doxygen/Driver/src/operation.md
@@ -2,12 +2,9 @@
[TOC]
-This section gives an overview of the general operation of CMSIS-Drivers. It explains the \ref DriverFunctions that are
-common in all CMSIS-Drivers along with the \ref CallSequence. The topic \ref Data_Xfer_Functions describes how data
-read/write operations to the peripheral are implemented.
+This section gives an overview of the general operation of CMSIS-Drivers. It explains the \ref DriverFunctions that are common in all CMSIS-Drivers along with the \ref CallSequence. The topic \ref Data_Xfer_Functions describes how data read/write operations to the peripheral are implemented.
-Each CMSIS-Driver defines an \ref AccessStruct for calling the various driver functions and each peripheral (that is accessed
-via a CMSIS-Driver) has one \ref DriverInstances "Driver Instance".
+Each CMSIS-Driver defines an \ref AccessStruct for calling the various driver functions and each peripheral (that is accessed via a CMSIS-Driver) has one \ref DriverInstances "Driver Instance".
## Common Driver Functions {#DriverFunctions}
@@ -22,30 +19,22 @@ Each CMSIS-Driver contains these functions:
- allocate I/O resources.
- register an optional `SignalEvent` callback function.
- - `SignalEvent`: is an optional callback function that is registered with the `Initialize` function. This callback
- function is initiated from interrupt service routines and indicates hardware events or the completion of a data block
- transfer operation.
+ - `SignalEvent`: is an optional callback function that is registered with the `Initialize` function. This callback function is initiated from interrupt service routines and indicates hardware events or the completion of a data block transfer operation.
- - `PowerControl`: Controls the power profile of the peripheral and needs to be called after `Initialize`. Typically, three
- power options are available (see \ref ARM_POWER_STATE):
+ - `PowerControl`: Controls the power profile of the peripheral and needs to be called after `Initialize`. Typically, three power options are available (see \ref ARM_POWER_STATE):
- `ARM_POWER_FULL`: Peripheral is turned on and fully operational. The driver initializes the peripheral registers, interrupts, and (optionally) DMA.
- - `ARM_POWER_LOW` : (optional) Peripheral is in low power mode and partially operational; usually, it can detect
- external events and wake-up.
- - `ARM_POWER_OFF`: Peripheral is turned off and not operational (pending operations are terminated). This is the state
- after device reset.
+ - `ARM_POWER_LOW` : (optional) Peripheral is in low power mode and partially operational; usually, it can detect external events and wake-up.
+ - `ARM_POWER_OFF`: Peripheral is turned off and not operational (pending operations are terminated). This is the state after device reset.
- `Uninitialize`: Complementary function to Initialize. Releases the I/O pin resources used by the interface.
- - `Control`: Several drivers provide a control function to configure communication parameters or execute miscellaneous
- control functions.
+ - `Control`: Several drivers provide a control function to configure communication parameters or execute miscellaneous control functions.
-The section \ref CallSequence contains more information on the operation of each function. Additional functions are specific
-to each driver interface and are described in the individual sections of each driver.
+The section \ref CallSequence contains more information on the operation of each function. Additional functions are specific to each driver interface and are described in the individual sections of each driver.
## Cortex-M Processor Mode {#ProcessorMode}
-The CMSIS-Driver functions access peripherals and interrupts and are designed to execute in **Privileged** mode.
-When calling CMSIS-Driver functions from RTOS threads, it should be ensure that these threads execute in **Privileged** mode.
+The CMSIS-Driver functions access peripherals and interrupts and are designed to execute in **Privileged** mode. When calling CMSIS-Driver functions from RTOS threads, it should be ensure that these threads execute in **Privileged** mode.
## Function Call Sequence {#CallSequence}
@@ -77,42 +66,39 @@ For normal operation of the driver, the API functions `GetVersion`, `GetCapabili
a=>b [label="Uninitialize (...)", textcolor="red", linecolor="red"];
\endmsc
-The functions `GetVersion` and `GetCapabilities` can be called any time to obtain the required information from the driver.
-These functions return always the same information.
+The functions `GetVersion` and `GetCapabilities` can be called any time to obtain the required information from the driver. These functions return always the same information.
### Start Sequence {#CS_start}
To start working with a peripheral the functions `Initialize` and `PowerControl` need to be called in this order:
+
```c
drv->Initialize (...); // Allocate I/O pins
drv->PowerControl (ARM_POWER_FULL); // Power up peripheral, setup IRQ/DMA
```
-- `Initialize` typically allocates the I/O resources (pins) for the peripheral. The function can be called multiple times;
- if the I/O resources are already initialized it performs no operation and just returns with \ref ARM_DRIVER_OK.
-- `PowerControl` (`ARM_POWER_FULL`) sets the peripheral registers including interrupt (NVIC) and optionally DMA.
- The function can be called multiple times; if the registers are already set it performs no operation and just returns with \ref ARM_DRIVER_OK.
+ - `Initialize` typically allocates the I/O resources (pins) for the peripheral. The function can be called multiple times; if the I/O resources are already initialized it performs no operation and just returns with \ref ARM_DRIVER_OK.
+ - `PowerControl` (`ARM_POWER_FULL`) sets the peripheral registers including interrupt (NVIC) and optionally DMA. The function can be called multiple times; if the registers are already set it performs no operation and just returns with \ref ARM_DRIVER_OK.
### Stop Sequence {#CS_stop}
To stop working with a peripheral the functions `PowerControl` and `Uninitialize` need to be called in this order:
+
```c
drv->PowerControl (ARM_POWER_OFF); // Terminate any pending transfers, reset IRQ/DMA, power off peripheral
drv->Uninitialize (...); // Release I/O pins
```
-The functions `PowerControl` and `Uninitialize` always execute and can be used to put the peripheral into a **Safe State**,
-for example after any data transmission errors. To restart the peripheral in a error condition, you should first execute
-the \ref CS_stop and then the \ref CS_start.
+The functions `PowerControl` and `Uninitialize` always execute and can be used to put the peripheral into a **Safe State**, for example after any data transmission errors. To restart the peripheral in a error condition, you should first execute the \ref CS_stop and then the \ref CS_start.
-- `PowerControl` (`ARM_POWER_OFF`) terminates any pending data transfers with the peripheral, disables the peripheral and leaves it in a defined mode (typically the reset state).
+ - `PowerControl` (`ARM_POWER_OFF`) terminates any pending data transfers with the peripheral, disables the peripheral and leaves it in a defined mode (typically the reset state).
- when DMA is used it is disabled (including the interrupts)
- peripheral interrupts are disabled on NVIC level
- the peripheral is reset using a dedicated reset mechanism (if available) or by clearing the peripheral registers
- pending peripheral interrupts are cleared on NVIC level
- driver variables are cleared
-- `Uninitialize` always releases I/O pin resources.
+ - `Uninitialize` always releases I/O pin resources.
## Shared I/O Pins {#Share_IO}
@@ -134,21 +120,18 @@ All CMSIS-Driver provide a \ref CS_start and \ref CS_stop. Therefore two differe
## Data Transfer Functions {#Data_Xfer_Functions}
-A CMSIS-Driver implements non-blocking functions to transfer data to a peripheral. This means that the driver configures the
-read or write access to the peripheral and instantly returns to the calling application. The function names for data
-transfer end with:
+A CMSIS-Driver implements non-blocking functions to transfer data to a peripheral. This means that the driver configures the read or write access to the peripheral and instantly returns to the calling application. The function names for data transfer end with:
+
- `Send` to write data to a peripheral.
- `Receive` to read data from a peripheral.
- `Transfer` to indicate combined read/write operations to a peripheral.
-During a data transfer, the application can query the number of transferred data items using functions named
-GetxxxCount. On completion of a data transfer, the driver calls a callback function with a specific event code.
+During a data transfer, the application can query the number of transferred data items using functions named GetxxxCount. On completion of a data transfer, the driver calls a callback function with a specific event code.
During the data exchange with the peripheral, the application can decide to:
- - Wait (using an RTOS scheduler) for the callback completion event. The RTOS is controlled by the application code which
- makes the driver itself RTOS independent.
- - Use polling functions that return the number of transferred data items to show progress information or partly read or fill
- data transfer buffers.
+
+ - Wait (using an RTOS scheduler) for the callback completion event. The RTOS is controlled by the application code which makes the driver itself RTOS independent.
+ - Use polling functions that return the number of transferred data items to show progress information or partly read or fill data transfer buffers.
- Prepare another data transfer buffer for the next data transfer.
The following diagram shows the basic communication flow when using the `_Send` function in an application.
@@ -157,10 +140,10 @@ The following diagram shows the basic communication flow when using the `_Send`
## Access Struct {#AccessStruct}
-A CMSIS-Driver publishes an \ref AccessStruct with the data type name `ARM_DRIVER_xxxx` that gives to access the driver
-functions.
+A CMSIS-Driver publishes an \ref AccessStruct with the data type name `ARM_DRIVER_xxxx` that gives to access the driver functions.
**Code Example:** Function Access of the SPI driver
+
```c
typedef struct _ARM_DRIVER_SPI {
ARM_DRIVER_VERSION (*GetVersion) (void);
@@ -179,10 +162,10 @@ typedef struct _ARM_DRIVER_SPI {
### Driver Instances {#DriverInstances}
-A device may offer several peripherals of the same type. For such devices, the CMSIS-Driver publishes multiple instances
-of the \ref AccessStruct. The name of each driver instance reflects the names of the peripheral available in the device.
+A device may offer several peripherals of the same type. For such devices, the CMSIS-Driver publishes multiple instances of the \ref AccessStruct. The name of each driver instance reflects the names of the peripheral available in the device.
**Code Example:** \ref AccessStruct for three SPIs in a microcontroller device.
+
```c
ARM_DRIVER_SPI Driver_SPI1; // access functions for SPI1 interface
ARM_DRIVER_SPI Driver_SPI2; // access functions for SPI2 interface
@@ -193,9 +176,8 @@ The access functions can be passed to middleware to specify the driver instance
**Naming Convention**
-The access structs need to follow this naming convention: the keyword `Driver` followed by an underscore `_`, the interface
-name `IFNAME` (usually in upper case letters), and the instance number `n`. Here's the full list of access struct names for
-all drivers (n to be replaced with the actual instance number):
+The access structs need to follow this naming convention: the keyword `Driver` followed by an underscore `_`, the interface name `IFNAME` (usually in upper case letters), and the instance number `n`. Here's the full list of access struct names for all drivers (n to be replaced with the actual instance number):
+
```c
Driver_CANn
Driver_ETH_MACn
@@ -216,6 +198,7 @@ Driver_WiFin
**Example:**
+
```c
void init_middleware (ARM_DRIVER_SPI *Drv_spi) ...
\\ inside the middleware the SPI driver functions are called with:
@@ -261,8 +244,7 @@ The table below summarizes the API header and template files for CMSIS-Driver in
## Driver Configuration {#DriverConfiguration}
-For a device family, the drivers may be configurable, but the configuration of the drivers itself is not part of the CMSIS-Driver
-specification.
+For a device family, the drivers may be configurable, but the configuration of the drivers itself is not part of the CMSIS-Driver specification.
## Code Example {#CodeExample}
diff --git a/CMSIS/DoxyGen/Driver/src/validation.md b/CMSIS/Documentation/Doxygen/Driver/src/validation.md
similarity index 99%
rename from CMSIS/DoxyGen/Driver/src/validation.md
rename to CMSIS/Documentation/Doxygen/Driver/src/validation.md
index f2ce2b821..22786f197 100644
--- a/CMSIS/DoxyGen/Driver/src/validation.md
+++ b/CMSIS/Documentation/Doxygen/Driver/src/validation.md
@@ -7,6 +7,7 @@ The CMSIS-Driver Validation is maintained in a separate public [GitHub repositor
This page gives an overview about driver validation. Refer to [CMSIS-Driver Validation Guide](https://arm-software.github.io/CMSIS-Driver_Validation/latest/index.html)) for full documentation.
The CMSIS-Driver Validation Suite performs the following tests:
+
- Generic Validation of API function calls
- Validation of Configuration Parameters
- Validation of Communication with loopback tests
@@ -14,6 +15,7 @@ The CMSIS-Driver Validation Suite performs the following tests:
- Validation of Event functions
The following CMSIS-Drivers can be tested with the current release:
+
- \ref can_interface_gr : with loop back test of communication.
- \ref eth_interface_gr : MAC and PHY with loop back test of communication.
- \ref i2c_interface_gr : only API and setup; does not test data transfer.
@@ -68,6 +70,7 @@ SPI | Connect MISO to MOSI
USART | Connect TX with RX
The following picture shows the necessary external loop back connections for the Keil MCBSTM32F400 evaluation board:
+
- SPI: PB14 (SPI2_MISO) and PB15 (SPI2_MOSI)
- USART: PB6 (USART1_TX) and PB7 (USART1_RX)
- Ethernet: Pin 1 (TX+) and Pin 3 (RX+), Pin 2 (TX-) and Pin 6 (RX-)
diff --git a/CMSIS/DoxyGen/General/General.dxy.in b/CMSIS/Documentation/Doxygen/General/General.dxy.in
similarity index 99%
rename from CMSIS/DoxyGen/General/General.dxy.in
rename to CMSIS/Documentation/Doxygen/General/General.dxy.in
index cb1724838..62ba04572 100644
--- a/CMSIS/DoxyGen/General/General.dxy.in
+++ b/CMSIS/Documentation/Doxygen/General/General.dxy.in
@@ -67,7 +67,7 @@ PROJECT_LOGO = ../Doxygen_Templates/cmsis_logo_white_small.png
# entered, it will be relative to the location where doxygen was started. If
# left blank the current directory will be used.
-OUTPUT_DIRECTORY = ../../Documentation/General
+OUTPUT_DIRECTORY = ../../html/General
# If the CREATE_SUBDIRS tag is set to YES then doxygen will create up to 4096
# sub-directories (in 2 levels) under the output directory of each output format
@@ -1168,7 +1168,7 @@ INLINE_SOURCES = NO
# Fortran comments will always remain visible.
# The default value is: YES.
-STRIP_CODE_COMMENTS = YES
+STRIP_CODE_COMMENTS = NO
# If the REFERENCED_BY_RELATION tag is set to YES then for each documented
# entity all documented functions referencing it will be listed.
@@ -1305,7 +1305,7 @@ GENERATE_HTML = YES
# The default directory is: html.
# This tag requires that the tag GENERATE_HTML is set to YES.
-HTML_OUTPUT = html
+HTML_OUTPUT = ./
# The HTML_FILE_EXTENSION tag can be used to specify the file extension for each
# generated HTML page (for example: .htm, .php, .asp).
diff --git a/CMSIS/DoxyGen/General/src/cmsis_sw_pack.md b/CMSIS/Documentation/Doxygen/General/src/cmsis_sw_pack.md
similarity index 83%
rename from CMSIS/DoxyGen/General/src/cmsis_sw_pack.md
rename to CMSIS/Documentation/Doxygen/General/src/cmsis_sw_pack.md
index 52cb549c6..c5c00e38a 100644
--- a/CMSIS/DoxyGen/General/src/cmsis_sw_pack.md
+++ b/CMSIS/Documentation/Doxygen/General/src/cmsis_sw_pack.md
@@ -6,11 +6,11 @@ The table below shows the high-level structure of the **ARM::CMSIS** pack. Detai
File/Directory | Content
:---------------------|:-------------------
-📄 ARM.CMSIS.pdsc | Package description file in CMSIS-Pack format
-📄 LICENSE | CMSIS License Agreement (Apache 2.0)
📂 CMSIS | CMSIS Base software components folder
- ┣ 📂 Core | Processor files for the [CMSIS-Core (Cortex-M)](../../Core/html/index.html)
- ┣ 📂 Core_A | Processor files for the [CMSIS-Core (Cortex-A)](../../Core_A/html/index.html)
+ ┣ 📂 Core | Processor files for the [CMSIS-Core (Cortex-M)](../Core/index.html)
+ ┣ 📂 Core_A | Processor files for the [CMSIS-Core (Cortex-A)](../Core_A/index.html)
┣ 📂 Documentation | A local copy of this documentation
- ┣ 📂 Driver | API header files and template implementations for the [CMSIS-Driver](../../Driver/html/index.html)
- ┗ 📂 RTOS2 | API header files and OS tick implementations for the [CMSIS-RTOS2](../../RTOS2/html/index.html)
+ ┣ 📂 Driver | API header files and template implementations for the [CMSIS-Driver](../Driver/index.html)
+ ┗ 📂 RTOS2 | API header files and OS tick implementations for the [CMSIS-RTOS2](../RTOS2/index.html)
+📄 ARM.CMSIS.pdsc | Package description file in CMSIS-Pack format
+📄 LICENSE | CMSIS License Agreement (Apache 2.0)
diff --git a/CMSIS/Documentation/Doxygen/General/src/images/cmsis_components.png b/CMSIS/Documentation/Doxygen/General/src/images/cmsis_components.png
new file mode 100644
index 000000000..daff6ccd0
Binary files /dev/null and b/CMSIS/Documentation/Doxygen/General/src/images/cmsis_components.png differ
diff --git a/CMSIS/DoxyGen/General/src/images/overview.pptx b/CMSIS/Documentation/Doxygen/General/src/images/overview.pptx
similarity index 74%
rename from CMSIS/DoxyGen/General/src/images/overview.pptx
rename to CMSIS/Documentation/Doxygen/General/src/images/overview.pptx
index e20c143b0..71a574d9f 100644
Binary files a/CMSIS/DoxyGen/General/src/images/overview.pptx and b/CMSIS/Documentation/Doxygen/General/src/images/overview.pptx differ
diff --git a/CMSIS/DoxyGen/General/src/mainpage.md b/CMSIS/Documentation/Doxygen/General/src/mainpage.md
similarity index 60%
rename from CMSIS/DoxyGen/General/src/mainpage.md
rename to CMSIS/Documentation/Doxygen/General/src/mainpage.md
index 3e605dd6c..86808f089 100644
--- a/CMSIS/DoxyGen/General/src/mainpage.md
+++ b/CMSIS/Documentation/Doxygen/General/src/mainpage.md
@@ -8,61 +8,65 @@ CMSIS has been created to help the industry in standardization. It enables consi
## CMSIS Components {#cmsis_components}
-![CMSIS Structure](./images/Overview.png)
+![CMSIS Structure](./images/cmsis_components.png)
CMSIS Base Software Components
+
- Provide software abstractions for basic level functionalities of a device.
- - Maintained in the same GitHub repository and delivered as a bundle in \ref cmsis_pack.
+ - Maintained in the same GitHub repository and delivered as one \ref cmsis_pack with the name `Arm::CMSIS`.
-
- CMSIS-CoreStandardized access to Arm Cortex processor coresGuide | GitHub
+
+ CMSIS-CoreStandardized access to Arm Cortex processor coresGuide | GitHub | Pack
-
- CMSIS-DriverGeneric peripheral driver interfaces for middlewareGuide | GitHub
+
- CMSIS-RTOS2Common API for real-time operating systemsGuide | GitHub
+
+ CMSIS-RTOS2Common API for real-time operating systemsGuide | GitHub | Pack
CMSIS Extended Software Components
-- Implement specific functionalities optimized for execution on Arm processors.
-- Maintained in separate GitHub repositories and delivered in standalone CMSIS-Packs.
+
+ - Implement specific functionalities optimized for execution on Arm processors.
+ - Maintained in separate GitHub repositories and delivered in standalone CMSIS-Packs.
-
- CMSIS-DSPCollection of optimized compute library for embedded systemsGuide | GitHub
+
- CMSIS-CompilerRetarget I/O functions of the standard C run-time libraryGuide | GitHub
+
+ CMSIS-CompilerRetarget I/O functions of the standard C run-time libraryGuide | GitHub | Pack
CMSIS Tools
+
- Provide useful utilities for software development workflows with CMSIS-based components.
- Maintained in separate GitHub repositories.
-
+
CMSIS-ToolboxA set of command-line tools to work with software packsGuide | GitHub
-
+
CMSIS-StreamPeripheral description of a device for debug viewGuide | GitHub
-
+
CMSIS-DAPFirmware for debug units interfacing to CoreSight Debug Access PortGuide | GitHub
-
- CMSIS-ZoneDefines methods to describe system resources and to partition themGuide | GitHub
+
+ CMSIS-ZoneDefines methods to describe system resources and to partition themGuide | GitHub
CMSIS Specifications
+
- Define methodologies and workflows for embedded software development.
@@ -77,37 +81,29 @@ CMSIS has been created to help the industry in standardization. It enables consi
The benefits of the CMSIS are:
- - CMSIS reduces the learning curve, development costs, and time-to-market. Developers can write software quicker through a
- variety of easy-to-use, standardized software interfaces.
- - Consistent software interfaces improve the software portability and re-usability. Generic software libraries and
- interfaces provide consistent software framework.
- - It provides interfaces for debug connectivity, debug peripheral views, software delivery, and device support to reduce
- time-to-market for new microcontroller deployment.
+ - CMSIS reduces the learning curve, development costs, and time-to-market. Developers can write software quicker through a variety of easy-to-use, standardized software interfaces.
+ - Consistent software interfaces improve the software portability and re-usability. Generic software libraries and interfaces provide consistent software framework.
+ - It provides interfaces for debug connectivity, debug peripheral views, software delivery, and device support to reduce time-to-market for new microcontroller deployment.
- It allows to use the compiler of your choice, as it is compiler independent and thus supported by mainstream compilers.
- It enhances program debugging with peripheral information for debuggers and ITM channels for printf-style output.
- - CMSIS is delivered in CMSIS-Pack format which enables fast software delivery, simplifies updates, and enables consistent
- integration into development tools.
- - CMSIS-Zone will simplify system resource and partitioning as it manages the configuration of multiple processors, memory
- areas, and peripherals.
- - Continuous integration is common practice for most software developers nowadays. CMSIS-Build supports these workflows
- and makes continuous testing and validation easier.
+ - CMSIS is delivered in CMSIS-Pack format which enables fast software delivery, simplifies updates, and enables consistent integration into development tools.
+ - CMSIS-Zone will simplify system resource and partitioning as it manages the configuration of multiple processors, memory areas, and peripherals.
+ - IDE and Continuous Integration (CI) are important workflows for embedded software developers. The CMSIS-Toolbox provides command-line build tools with CMake backend and integration into IDEs such as VS Code.
## Development {#development}
-CMSIS is defined in close cooperation with various silicon and software vendors and provides a common approach to interface
-to peripherals, real-time operating systems, and middleware components. It is intended to enable the combination of software
-components from multiple vendors.
+CMSIS is defined in close cooperation with various silicon and software vendors and provides a common approach to interface to peripherals, real-time operating systems, and middleware components. It is intended to enable the combination of software components from multiple vendors.
CMSIS is open-source and collaboratively developed. The repository for the base components is [github.com/Arm-software/CMSIS_6](https://github.com/ARM-software/CMSIS_6).
-## CodingRules {#coding_rules}
+## Coding Rules {#coding_rules}
The CMSIS uses the following essential coding rules and conventions:
- Compliant with ANSI C (C99) and C++ (C++03).
- - Uses ANSI C standard data types defined in \b .
+ - Uses ANSI C standard data types defined in ****.
- Variables and parameters have a complete data type.
- - Expressions for \c \#define constants are enclosed in parenthesis.
+ - Expressions for `#define` constants are enclosed in parenthesis.
- Conforms to MISRA 2012 (but does not claim MISRA compliance). MISRA rule violations are documented.
In addition, the CMSIS recommends the following conventions for identifiers:
@@ -117,16 +113,17 @@ In addition, the CMSIS recommends the following conventions for identifiers:
- **Namespace_** prefixes avoid clashes with user identifiers and provide functional groups (i.e. for peripherals, RTOS, or DSP Library).
The CMSIS is documented within the source files with:
- \li Comments that use the C or C++ style.
- \li Doxygen compliant function comments that provide:
+
+ - Comments that use the C or C++ style.
+ - [Doxygen](https://www.doxygen.nl/) compliant **function comments** that provide:
- brief function overview.
- detailed description of the function.
- detailed parameter explanation.
- detailed information about return values.
-Doxygen comment example:
+Doxygen comment example:
-``` c
+```c
/**
* @brief Enable Interrupt in NVIC Interrupt Controller
* @param IRQn interrupt number that specifies the interrupt
@@ -138,24 +135,14 @@ Doxygen comment example:
## Validation {#validation}
-The various components of CMSIS are validated using mainstream compilers. To get a diverse coverage,
-Arm Compiler v6 (based on LLVM front-end) and GCC are used in the various tests. For each component, the
-section **Validation** describes the scope of the various verification steps.
+The various components of CMSIS are validated using mainstream compilers. To get a diverse coverage, Arm Compiler v6 (based on LLVM front-end) and GCC are used in the various tests. For each component, the section **Validation** describes the scope of the various verification steps.
-CMSIS components are compatible with a range of C and C++ language standards. The CMSIS components comply with the
-[Application Binary Interface (ABI) for the Arm Architecture](https://github.com/ARM-software/abi-aa). This ensures
-C API interfaces that support inter-operation between various toolchains.
+CMSIS components are compatible with a range of C and C++ language standards. The CMSIS components comply with the [Application Binary Interface (ABI) for the Arm Architecture](https://github.com/ARM-software/abi-aa). This ensures C API interfaces that support inter-operation between various toolchains.
-As CMSIS defines API interfaces and functions that scale to a wide range of processors and devices, the scope of
-the run-time test coverage is limited. However, several components are validated using dedicated test suites
-(CMSIS-Driver,
- and CMSIS-RTOS v2).
+As CMSIS defines API interfaces and functions that scale to a wide range of processors and devices, the scope of the run-time test coverage is limited. However, several components are validated using dedicated test suites ([CMSIS-Driver](../Driver/driverValidation.html), and [CMSIS-RTOS v2](../RTOS2/rtosValidation.html)).
-The CMSIS source code is checked for MISRA C:2012 conformance. MISRA deviations are documented with
-reasonable effort, however Arm does not claim MISRA compliance as there is today for example no guideline enforcement
-plan. The CMSIS source code is not checked for MISRA C++:2008 conformance as there is a risk that it is incompatible
-with C language standards, specifically warnings that may be generated by the various C compilers.
+The CMSIS source code is checked for MISRA C:2012 conformance. MISRA deviations are documented with reasonable effort, however Arm does not claim MISRA compliance as there is today for example no guideline enforcement plan. The CMSIS source code is not checked for MISRA C++:2008 conformance as there is a risk that it is incompatible with C language standards, specifically warnings that may be generated by the various C compilers.
## License {#License}
-CMSIS is provided free of charge by Arm under the Apache 2.0 License.
+CMSIS is provided free of charge by Arm under the [Apache 2.0 License](https://raw.githubusercontent.com/ARM-software/CMSIS_6/main/LICENSE).
diff --git a/CMSIS/DoxyGen/General/src/revision_history.md b/CMSIS/Documentation/Doxygen/General/src/revision_history.md
similarity index 96%
rename from CMSIS/DoxyGen/General/src/revision_history.md
rename to CMSIS/Documentation/Doxygen/General/src/revision_history.md
index 253a218d1..9679f6f22 100644
--- a/CMSIS/DoxyGen/General/src/revision_history.md
+++ b/CMSIS/Documentation/Doxygen/General/src/revision_history.md
@@ -1,10 +1,13 @@
## Revision History {#revision_history}
-The table on this page provides high-level overview of the CMSIS Base Software release history. In addition, each component of the CMSIS Base software has its own release history:
-- CMSIS-Core (Cortex-M) Revision History
-- CMSIS-Core (Cortex-A) Revision History
-- CMSIS-Driver Revision History
-- CMSIS-RTOS2 Revision History
+The table on this page provides high-level overview of the CMSIS Base Software release history.
+
+In addition, each component of the CMSIS Base software has its own release history listed on following pages:
+
+ - [**CMSIS-Core (Cortex-M) Revision History**](../Core/core_revisionHistory.html)
+ - [**CMSIS-Core (Cortex-A) Revision History**](../Core_A/rev_histCoreA.html)
+ - [**CMSIS-Driver Revision History**](../Driver/driver_revisionHistory.html)
+ - [**CMSIS-RTOS2 Revision History**](../RTOS2/rtos_revisionHistory.html)
Release history of other CMSIS components and tools can be found in their documentation referenced in \ref cmsis_components.
@@ -17,6 +20,7 @@ Release history of other CMSIS components and tools can be found in their docume
6.0.0-dev
In development.
+
- CMSIS-Core(A):
- CMSIS-Core(M):
- CMSIS-Driver:
diff --git a/CMSIS/DoxyGen/NN/NN.dxy.in b/CMSIS/Documentation/Doxygen/NN/NN.dxy.in
similarity index 99%
rename from CMSIS/DoxyGen/NN/NN.dxy.in
rename to CMSIS/Documentation/Doxygen/NN/NN.dxy.in
index 9c57da66a..c36a18e5f 100644
--- a/CMSIS/DoxyGen/NN/NN.dxy.in
+++ b/CMSIS/Documentation/Doxygen/NN/NN.dxy.in
@@ -67,7 +67,7 @@ PROJECT_LOGO = ../Doxygen_Templates/cmsis_logo_white_small.png
# entered, it will be relative to the location where doxygen was started. If
# left blank the current directory will be used.
-OUTPUT_DIRECTORY = ../../Documentation/NN
+OUTPUT_DIRECTORY = ../../html/NN
# If the CREATE_SUBDIRS tag is set to YES then doxygen will create up to 4096
# sub-directories (in 2 levels) under the output directory of each output format
@@ -1302,7 +1302,7 @@ GENERATE_HTML = YES
# The default directory is: html.
# This tag requires that the tag GENERATE_HTML is set to YES.
-HTML_OUTPUT = html
+HTML_OUTPUT = ./
# The HTML_FILE_EXTENSION tag can be used to specify the file extension for each
# generated HTML page (for example: .htm, .php, .asp).
diff --git a/CMSIS/DoxyGen/NN/src/images/.gitignore b/CMSIS/Documentation/Doxygen/NN/src/images/.gitignore
similarity index 100%
rename from CMSIS/DoxyGen/NN/src/images/.gitignore
rename to CMSIS/Documentation/Doxygen/NN/src/images/.gitignore
diff --git a/CMSIS/DoxyGen/NN/src/images/cmsis-nn-overview.png b/CMSIS/Documentation/Doxygen/NN/src/images/cmsis-nn-overview.png
similarity index 100%
rename from CMSIS/DoxyGen/NN/src/images/cmsis-nn-overview.png
rename to CMSIS/Documentation/Doxygen/NN/src/images/cmsis-nn-overview.png
diff --git a/CMSIS/Documentation/Doxygen/NN/src/mainpage.md b/CMSIS/Documentation/Doxygen/NN/src/mainpage.md
new file mode 100644
index 000000000..546672da2
--- /dev/null
+++ b/CMSIS/Documentation/Doxygen/NN/src/mainpage.md
@@ -0,0 +1,26 @@
+# CMSIS-NN {#mainpage}
+
+**CMSIS-NN** is an open-source software library that provides a collection of efficient neural network (NN) kernels developed to maximize the performance and minimize the memory footprint of neural networks running on Arm Cortex-M processors.
+
+![Overview of CMSIS-NN](./images/cmsis-nn-overview.png)
+
+CMSIS-NN functions are implemented in several variants and the optimal solution is automatically taken at compile time depending on the features available on the target processor architecture. Implementations for the following features are available:
+
+ - Single Instruction Multiple Data (SIMD) capability (e.g, Cortex-M0)
+ - DSP extension (e.g Cortex-M4)
+ - Arm M-Profile Vector Extension(MVE) (e.g Cortex-M55).
+
+## Access to CMSIS-NN
+
+CMSIS-NN is actively maintained in a GitHub repository and is also released as a standalone package in CMSIS Pack format.
+
+ - [**CMSIS-NN GitHub Repo**](https://github.com/ARM-software/CMSIS-NN) provides the full source code as well as releases in CMSIS-Pack format.
+ - [**CMSIS-NN Documentation**](https://arm-software.github.io/CMSIS-NN/latest/) explains how to use the library and describes the implemented functions in details.
+
+## Key Features and Benefits
+
+ - CMSIS-NN provides a broad set of neural network kernels for Cortex-M devices.
+ - Optimized implementations for different Cortex-M capabilities (SIMD, FPU, MVE).
+ - Arm Compiler 6 and on Arm GNU Toolchain support.
+ - Follows int8 and int16 quantization specification of TensorFlow Lite for Microcontrollers.
+ - Widely adopted in the industry.
diff --git a/CMSIS/DoxyGen/RTOS2/RTOS2.dxy.in b/CMSIS/Documentation/Doxygen/RTOS2/RTOS2.dxy.in
similarity index 99%
rename from CMSIS/DoxyGen/RTOS2/RTOS2.dxy.in
rename to CMSIS/Documentation/Doxygen/RTOS2/RTOS2.dxy.in
index 9a58a264f..1047ec2ee 100644
--- a/CMSIS/DoxyGen/RTOS2/RTOS2.dxy.in
+++ b/CMSIS/Documentation/Doxygen/RTOS2/RTOS2.dxy.in
@@ -67,7 +67,7 @@ PROJECT_LOGO = ../Doxygen_Templates/cmsis_logo_white_small.png
# entered, it will be relative to the location where doxygen was started. If
# left blank the current directory will be used.
-OUTPUT_DIRECTORY = ../../Documentation/RTOS2
+OUTPUT_DIRECTORY = ../../html/RTOS2
# If the CREATE_SUBDIRS tag is set to YES then doxygen will create up to 4096
# sub-directories (in 2 levels) under the output directory of each output format
@@ -941,8 +941,8 @@ INPUT = ./src/mainpage.md \
./src/cmsis_os2_Message.txt \
./src/cmsis_os2_Status.txt \
./src/cmsis_os2_Tick.txt \
- ../../RTOS2/Include/cmsis_os2.h \
- ../../RTOS2/Include/os_tick.h
+ ../../../RTOS2/Include/cmsis_os2.h \
+ ../../../RTOS2/Include/os_tick.h
# This tag can be used to specify the character encoding of the source files
# that doxygen parses. Internally doxygen uses the UTF-8 encoding. Doxygen uses
@@ -1076,8 +1076,8 @@ EXCLUDE_SYMBOLS =
# that contain example code fragments that are included (see the \include
# command).
-EXAMPLE_PATH = ../../RTOS2/Include \
- ../../RTOS2
+EXAMPLE_PATH = ../../../RTOS2/Include \
+ ../../../RTOS2
# If the value of the EXAMPLE_PATH tag contains directories, you can use the
# EXAMPLE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp and
@@ -1330,7 +1330,7 @@ GENERATE_HTML = YES
# The default directory is: html.
# This tag requires that the tag GENERATE_HTML is set to YES.
-HTML_OUTPUT = html
+HTML_OUTPUT = ./
# The HTML_FILE_EXTENSION tag can be used to specify the file extension for each
# generated HTML page (for example: .htm, .php, .asp).
@@ -2457,7 +2457,7 @@ TAGFILES =
# tag file that is based on the input files it reads. See section "Linking to
# external documentation" for more information about the usage of tag files.
-GENERATE_TAGFILE = ../../Documentation/RTOS2/cmsis_rtos2.tag
+GENERATE_TAGFILE = ../../html/RTOS2/cmsis_rtos2.tag
# If the ALLEXTERNALS tag is set to YES, all external class will be listed in
# the class index. If set to NO, only the inherited external classes will be
diff --git a/CMSIS/DoxyGen/RTOS2/src/cmsis_os2_Event.txt b/CMSIS/Documentation/Doxygen/RTOS2/src/cmsis_os2_Event.txt
similarity index 100%
rename from CMSIS/DoxyGen/RTOS2/src/cmsis_os2_Event.txt
rename to CMSIS/Documentation/Doxygen/RTOS2/src/cmsis_os2_Event.txt
diff --git a/CMSIS/DoxyGen/RTOS2/src/cmsis_os2_Groups.txt b/CMSIS/Documentation/Doxygen/RTOS2/src/cmsis_os2_Groups.txt
similarity index 100%
rename from CMSIS/DoxyGen/RTOS2/src/cmsis_os2_Groups.txt
rename to CMSIS/Documentation/Doxygen/RTOS2/src/cmsis_os2_Groups.txt
diff --git a/CMSIS/DoxyGen/RTOS2/src/cmsis_os2_Kernel.txt b/CMSIS/Documentation/Doxygen/RTOS2/src/cmsis_os2_Kernel.txt
similarity index 100%
rename from CMSIS/DoxyGen/RTOS2/src/cmsis_os2_Kernel.txt
rename to CMSIS/Documentation/Doxygen/RTOS2/src/cmsis_os2_Kernel.txt
diff --git a/CMSIS/DoxyGen/RTOS2/src/cmsis_os2_MemPool.txt b/CMSIS/Documentation/Doxygen/RTOS2/src/cmsis_os2_MemPool.txt
similarity index 100%
rename from CMSIS/DoxyGen/RTOS2/src/cmsis_os2_MemPool.txt
rename to CMSIS/Documentation/Doxygen/RTOS2/src/cmsis_os2_MemPool.txt
diff --git a/CMSIS/DoxyGen/RTOS2/src/cmsis_os2_Message.txt b/CMSIS/Documentation/Doxygen/RTOS2/src/cmsis_os2_Message.txt
similarity index 100%
rename from CMSIS/DoxyGen/RTOS2/src/cmsis_os2_Message.txt
rename to CMSIS/Documentation/Doxygen/RTOS2/src/cmsis_os2_Message.txt
diff --git a/CMSIS/DoxyGen/RTOS2/src/cmsis_os2_Mutex.txt b/CMSIS/Documentation/Doxygen/RTOS2/src/cmsis_os2_Mutex.txt
similarity index 100%
rename from CMSIS/DoxyGen/RTOS2/src/cmsis_os2_Mutex.txt
rename to CMSIS/Documentation/Doxygen/RTOS2/src/cmsis_os2_Mutex.txt
diff --git a/CMSIS/DoxyGen/RTOS2/src/cmsis_os2_Sema.txt b/CMSIS/Documentation/Doxygen/RTOS2/src/cmsis_os2_Sema.txt
similarity index 100%
rename from CMSIS/DoxyGen/RTOS2/src/cmsis_os2_Sema.txt
rename to CMSIS/Documentation/Doxygen/RTOS2/src/cmsis_os2_Sema.txt
diff --git a/CMSIS/DoxyGen/RTOS2/src/cmsis_os2_Status.txt b/CMSIS/Documentation/Doxygen/RTOS2/src/cmsis_os2_Status.txt
similarity index 100%
rename from CMSIS/DoxyGen/RTOS2/src/cmsis_os2_Status.txt
rename to CMSIS/Documentation/Doxygen/RTOS2/src/cmsis_os2_Status.txt
diff --git a/CMSIS/DoxyGen/RTOS2/src/cmsis_os2_Thread.txt b/CMSIS/Documentation/Doxygen/RTOS2/src/cmsis_os2_Thread.txt
similarity index 99%
rename from CMSIS/DoxyGen/RTOS2/src/cmsis_os2_Thread.txt
rename to CMSIS/Documentation/Doxygen/RTOS2/src/cmsis_os2_Thread.txt
index 16bec5b31..4f62efeb0 100644
--- a/CMSIS/DoxyGen/RTOS2/src/cmsis_os2_Thread.txt
+++ b/CMSIS/Documentation/Doxygen/RTOS2/src/cmsis_os2_Thread.txt
@@ -1024,7 +1024,7 @@ void osZoneSetup_Callback (uint32_t zone) {
\endcode
\c ZONES_NUM is the total amount of zones allocated by the application.
-For \c ARM_MPU_... functions refer to MPU Functions in CMSIS-Core documentation.
+For \c ARM_MPU_... functions refer to MPU Functions in CMSIS-Core documentation.
*/
/// @}
@@ -1087,7 +1087,7 @@ Default: \token{0} as the default is no memory provided with \ref stack_mem.
TrustZone Thread Context Management Identifier to allocate context memory for threads. The RTOS kernel that runs in
non-secure state calls the interface functions defined by the header file TZ_context.h. Can safely be set to zero
for threads not using secure calls at all.
-See TrustZone RTOS Context Management.
+See TrustZone RTOS Context Management.
Default: \token{0} not thread context specified.
\else
diff --git a/CMSIS/DoxyGen/RTOS2/src/cmsis_os2_ThreadFlags.txt b/CMSIS/Documentation/Doxygen/RTOS2/src/cmsis_os2_ThreadFlags.txt
similarity index 100%
rename from CMSIS/DoxyGen/RTOS2/src/cmsis_os2_ThreadFlags.txt
rename to CMSIS/Documentation/Doxygen/RTOS2/src/cmsis_os2_ThreadFlags.txt
diff --git a/CMSIS/DoxyGen/RTOS2/src/cmsis_os2_Tick.txt b/CMSIS/Documentation/Doxygen/RTOS2/src/cmsis_os2_Tick.txt
similarity index 100%
rename from CMSIS/DoxyGen/RTOS2/src/cmsis_os2_Tick.txt
rename to CMSIS/Documentation/Doxygen/RTOS2/src/cmsis_os2_Tick.txt
diff --git a/CMSIS/DoxyGen/RTOS2/src/cmsis_os2_Timer.txt b/CMSIS/Documentation/Doxygen/RTOS2/src/cmsis_os2_Timer.txt
similarity index 100%
rename from CMSIS/DoxyGen/RTOS2/src/cmsis_os2_Timer.txt
rename to CMSIS/Documentation/Doxygen/RTOS2/src/cmsis_os2_Timer.txt
diff --git a/CMSIS/DoxyGen/RTOS2/src/cmsis_os2_Wait.txt b/CMSIS/Documentation/Doxygen/RTOS2/src/cmsis_os2_Wait.txt
similarity index 100%
rename from CMSIS/DoxyGen/RTOS2/src/cmsis_os2_Wait.txt
rename to CMSIS/Documentation/Doxygen/RTOS2/src/cmsis_os2_Wait.txt
diff --git a/CMSIS/Documentation/Doxygen/RTOS2/src/history.md b/CMSIS/Documentation/Doxygen/RTOS2/src/history.md
new file mode 100644
index 000000000..c969b1700
--- /dev/null
+++ b/CMSIS/Documentation/Doxygen/RTOS2/src/history.md
@@ -0,0 +1,129 @@
+# Revision History {#rtos_revisionHistory}
+
+CMSIS-RTOS2 API component is maintained with its own versioning that gets offically updated upon releases of the [CMSIS Software Pack](../General/cmsis_pack.html) releases.
+
+The table below provides information about the changes delivered with specific versions of CMSIS-RTOS2 API.
+
+
+
+
Version
+
Description
+
+
+
V2.3.0
+
+ Added:
+ - Provisional support for processor affinity in SMP systems:
+ - \ref osThreadAttr_t :: affinity_mask
+ - \ref osThreadSetAffinityMask, \ref osThreadGetAffinityMask
+
+ Added:
+ - Additional functions allowed to be called from Interrupt Service Routines:
+ - \ref osThreadGetId
+
+
+
+
V2.1.2
+
+ Added:
+ - Additional functions allowed to be called from Interrupt Service Routines:
+ - \ref osKernelGetInfo, \ref osKernelGetState
+
+
+
+
V2.1.1
+
+ Additional functions allowed to be called from Interrupt Service Routines:
+ - \ref osKernelGetTickCount, \ref osKernelGetTickFreq
+
+ Changed Kernel Tick type to uint32_t:
+ - updated: \ref osKernelGetTickCount, \ref osDelayUntil
+
+
+
+
V2.1.0
+
+ Support for critical and uncritical sections (nesting safe):
+ - updated: \ref osKernelLock, \ref osKernelUnlock
+ - added: \ref osKernelRestoreLock
+
+ Updated \ref CMSIS_RTOS_ThreadFlagsMgmt "Thread Flags" and \ref CMSIS_RTOS_EventFlags "Event Flags":
+ - changed flags parameter and return type from int32_t to uint32_t
+
+
+
+
V2.0.0
+
+ New API Version 2.0 available.
+ - See \ref CMSIS_RTOS for a detailed function reference.
+
+
+
+
V1.02 - only documentation changes
+
+ Added:
+ - Overview of the \ref rtosValidation "CMSIS-RTOS Validation" Software Pack.
+
+ Clarified:
+ - Behavior of \ref CMSIS_RTOS_TimeOutValue.
+
+
+
+
V1.02
+
+ Added:
+ - New control functions for short timeouts in microsecond resolution **osKernelSysTick**, **osKernelSysTickFrequency**, **osKernelSysTickMicroSec**.
+
+ Removed:
+ - osSignalGet.
+
+
+
+
V1.01
+
+ Added:
+ - capabilities for C++, kernel initialization and object deletion.
+ - Prepared for C++ class interface. In this context to \em const attribute has been moved from osXxxxDef_t typedefs to the osXxxxDef macros.
+ - \ref osTimerDelete, \ref osMutexDelete, \ref osSemaphoreDelete .
+ - \ref osKernelInitialize that prepares the kernel for object creation.
+
+
+
+
+ V1.00
+
First official Release.
+ Added:
+ - \ref osKernelStart; starting 'main' as a thread is now an optional feature.
+ - Semaphores have now the standard behavior.
+ - osTimerCreate does no longer start the timer.
+ - \ref osTimerStart (replaces osTimerRestart).
+
+ Changed:
+ - osThreadPass is renamed to \ref osThreadYield.
+
+
+
+
V0.02
+
Preview Release.
+
+
diff --git a/CMSIS/DoxyGen/RTOS2/src/images/API_Structure.png b/CMSIS/Documentation/Doxygen/RTOS2/src/images/API_Structure.png
similarity index 100%
rename from CMSIS/DoxyGen/RTOS2/src/images/API_Structure.png
rename to CMSIS/Documentation/Doxygen/RTOS2/src/images/API_Structure.png
diff --git a/CMSIS/DoxyGen/RTOS2/src/images/API_Structure.vsd b/CMSIS/Documentation/Doxygen/RTOS2/src/images/API_Structure.vsd
similarity index 100%
rename from CMSIS/DoxyGen/RTOS2/src/images/API_Structure.vsd
rename to CMSIS/Documentation/Doxygen/RTOS2/src/images/API_Structure.vsd
diff --git a/CMSIS/DoxyGen/RTOS2/src/images/CMSIS_RTOS_Files.png b/CMSIS/Documentation/Doxygen/RTOS2/src/images/CMSIS_RTOS_Files.png
similarity index 100%
rename from CMSIS/DoxyGen/RTOS2/src/images/CMSIS_RTOS_Files.png
rename to CMSIS/Documentation/Doxygen/RTOS2/src/images/CMSIS_RTOS_Files.png
diff --git a/CMSIS/DoxyGen/RTOS2/src/images/KernelStackUsage.png b/CMSIS/Documentation/Doxygen/RTOS2/src/images/KernelStackUsage.png
similarity index 100%
rename from CMSIS/DoxyGen/RTOS2/src/images/KernelStackUsage.png
rename to CMSIS/Documentation/Doxygen/RTOS2/src/images/KernelStackUsage.png
diff --git a/CMSIS/DoxyGen/RTOS2/src/images/MailQueue.png b/CMSIS/Documentation/Doxygen/RTOS2/src/images/MailQueue.png
similarity index 100%
rename from CMSIS/DoxyGen/RTOS2/src/images/MailQueue.png
rename to CMSIS/Documentation/Doxygen/RTOS2/src/images/MailQueue.png
diff --git a/CMSIS/DoxyGen/RTOS2/src/images/MemAllocGlob.png b/CMSIS/Documentation/Doxygen/RTOS2/src/images/MemAllocGlob.png
similarity index 100%
rename from CMSIS/DoxyGen/RTOS2/src/images/MemAllocGlob.png
rename to CMSIS/Documentation/Doxygen/RTOS2/src/images/MemAllocGlob.png
diff --git a/CMSIS/DoxyGen/RTOS2/src/images/MemAllocSpec.png b/CMSIS/Documentation/Doxygen/RTOS2/src/images/MemAllocSpec.png
similarity index 100%
rename from CMSIS/DoxyGen/RTOS2/src/images/MemAllocSpec.png
rename to CMSIS/Documentation/Doxygen/RTOS2/src/images/MemAllocSpec.png
diff --git a/CMSIS/DoxyGen/RTOS2/src/images/MemAllocStat.png b/CMSIS/Documentation/Doxygen/RTOS2/src/images/MemAllocStat.png
similarity index 100%
rename from CMSIS/DoxyGen/RTOS2/src/images/MemAllocStat.png
rename to CMSIS/Documentation/Doxygen/RTOS2/src/images/MemAllocStat.png
diff --git a/CMSIS/DoxyGen/RTOS2/src/images/MessageQueue.png b/CMSIS/Documentation/Doxygen/RTOS2/src/images/MessageQueue.png
similarity index 100%
rename from CMSIS/DoxyGen/RTOS2/src/images/MessageQueue.png
rename to CMSIS/Documentation/Doxygen/RTOS2/src/images/MessageQueue.png
diff --git a/CMSIS/DoxyGen/RTOS2/src/images/MessageQueue.vsd b/CMSIS/Documentation/Doxygen/RTOS2/src/images/MessageQueue.vsd
similarity index 100%
rename from CMSIS/DoxyGen/RTOS2/src/images/MessageQueue.vsd
rename to CMSIS/Documentation/Doxygen/RTOS2/src/images/MessageQueue.vsd
diff --git a/CMSIS/DoxyGen/RTOS2/src/images/Mutex.png b/CMSIS/Documentation/Doxygen/RTOS2/src/images/Mutex.png
similarity index 100%
rename from CMSIS/DoxyGen/RTOS2/src/images/Mutex.png
rename to CMSIS/Documentation/Doxygen/RTOS2/src/images/Mutex.png
diff --git a/CMSIS/DoxyGen/RTOS2/src/images/Mutex.vsd b/CMSIS/Documentation/Doxygen/RTOS2/src/images/Mutex.vsd
similarity index 100%
rename from CMSIS/DoxyGen/RTOS2/src/images/Mutex.vsd
rename to CMSIS/Documentation/Doxygen/RTOS2/src/images/Mutex.vsd
diff --git a/CMSIS/DoxyGen/RTOS2/src/images/PC-Lint.png b/CMSIS/Documentation/Doxygen/RTOS2/src/images/PC-Lint.png
similarity index 100%
rename from CMSIS/DoxyGen/RTOS2/src/images/PC-Lint.png
rename to CMSIS/Documentation/Doxygen/RTOS2/src/images/PC-Lint.png
diff --git a/CMSIS/DoxyGen/RTOS2/src/images/RTX5_Migrate1.PNG b/CMSIS/Documentation/Doxygen/RTOS2/src/images/RTX5_Migrate1.PNG
similarity index 100%
rename from CMSIS/DoxyGen/RTOS2/src/images/RTX5_Migrate1.PNG
rename to CMSIS/Documentation/Doxygen/RTOS2/src/images/RTX5_Migrate1.PNG
diff --git a/CMSIS/DoxyGen/RTOS2/src/images/Semaphore.png b/CMSIS/Documentation/Doxygen/RTOS2/src/images/Semaphore.png
similarity index 100%
rename from CMSIS/DoxyGen/RTOS2/src/images/Semaphore.png
rename to CMSIS/Documentation/Doxygen/RTOS2/src/images/Semaphore.png
diff --git a/CMSIS/DoxyGen/RTOS2/src/images/Semaphores.vsd b/CMSIS/Documentation/Doxygen/RTOS2/src/images/Semaphores.vsd
similarity index 100%
rename from CMSIS/DoxyGen/RTOS2/src/images/Semaphores.vsd
rename to CMSIS/Documentation/Doxygen/RTOS2/src/images/Semaphores.vsd
diff --git a/CMSIS/DoxyGen/RTOS2/src/images/TheoryOfOperation.pptx b/CMSIS/Documentation/Doxygen/RTOS2/src/images/TheoryOfOperation.pptx
similarity index 100%
rename from CMSIS/DoxyGen/RTOS2/src/images/TheoryOfOperation.pptx
rename to CMSIS/Documentation/Doxygen/RTOS2/src/images/TheoryOfOperation.pptx
diff --git a/CMSIS/DoxyGen/RTOS2/src/images/ThreadStatus.png b/CMSIS/Documentation/Doxygen/RTOS2/src/images/ThreadStatus.png
similarity index 100%
rename from CMSIS/DoxyGen/RTOS2/src/images/ThreadStatus.png
rename to CMSIS/Documentation/Doxygen/RTOS2/src/images/ThreadStatus.png
diff --git a/CMSIS/DoxyGen/RTOS2/src/images/ThreadStatus.vsd b/CMSIS/Documentation/Doxygen/RTOS2/src/images/ThreadStatus.vsd
similarity index 100%
rename from CMSIS/DoxyGen/RTOS2/src/images/ThreadStatus.vsd
rename to CMSIS/Documentation/Doxygen/RTOS2/src/images/ThreadStatus.vsd
diff --git a/CMSIS/DoxyGen/RTOS2/src/images/Timer.png b/CMSIS/Documentation/Doxygen/RTOS2/src/images/Timer.png
similarity index 100%
rename from CMSIS/DoxyGen/RTOS2/src/images/Timer.png
rename to CMSIS/Documentation/Doxygen/RTOS2/src/images/Timer.png
diff --git a/CMSIS/DoxyGen/RTOS2/src/images/TimerValues.png b/CMSIS/Documentation/Doxygen/RTOS2/src/images/TimerValues.png
similarity index 100%
rename from CMSIS/DoxyGen/RTOS2/src/images/TimerValues.png
rename to CMSIS/Documentation/Doxygen/RTOS2/src/images/TimerValues.png
diff --git a/CMSIS/DoxyGen/RTOS2/src/images/TimerValues.vsd b/CMSIS/Documentation/Doxygen/RTOS2/src/images/TimerValues.vsd
similarity index 100%
rename from CMSIS/DoxyGen/RTOS2/src/images/TimerValues.vsd
rename to CMSIS/Documentation/Doxygen/RTOS2/src/images/TimerValues.vsd
diff --git a/CMSIS/DoxyGen/RTOS2/src/images/add_item.png b/CMSIS/Documentation/Doxygen/RTOS2/src/images/add_item.png
similarity index 100%
rename from CMSIS/DoxyGen/RTOS2/src/images/add_item.png
rename to CMSIS/Documentation/Doxygen/RTOS2/src/images/add_item.png
diff --git a/CMSIS/DoxyGen/RTOS2/src/images/cmsis_rtos2_overview.png b/CMSIS/Documentation/Doxygen/RTOS2/src/images/cmsis_rtos2_overview.png
similarity index 100%
rename from CMSIS/DoxyGen/RTOS2/src/images/cmsis_rtos2_overview.png
rename to CMSIS/Documentation/Doxygen/RTOS2/src/images/cmsis_rtos2_overview.png
diff --git a/CMSIS/DoxyGen/RTOS2/src/images/cmsis_rtos_file_structure.vsd b/CMSIS/Documentation/Doxygen/RTOS2/src/images/cmsis_rtos_file_structure.vsd
similarity index 100%
rename from CMSIS/DoxyGen/RTOS2/src/images/cmsis_rtos_file_structure.vsd
rename to CMSIS/Documentation/Doxygen/RTOS2/src/images/cmsis_rtos_file_structure.vsd
diff --git a/CMSIS/DoxyGen/RTOS2/src/images/config_wizard.png b/CMSIS/Documentation/Doxygen/RTOS2/src/images/config_wizard.png
similarity index 100%
rename from CMSIS/DoxyGen/RTOS2/src/images/config_wizard.png
rename to CMSIS/Documentation/Doxygen/RTOS2/src/images/config_wizard.png
diff --git a/CMSIS/DoxyGen/RTOS2/src/images/config_wizard_eventFlags.png b/CMSIS/Documentation/Doxygen/RTOS2/src/images/config_wizard_eventFlags.png
similarity index 100%
rename from CMSIS/DoxyGen/RTOS2/src/images/config_wizard_eventFlags.png
rename to CMSIS/Documentation/Doxygen/RTOS2/src/images/config_wizard_eventFlags.png
diff --git a/CMSIS/DoxyGen/RTOS2/src/images/config_wizard_evtrec.png b/CMSIS/Documentation/Doxygen/RTOS2/src/images/config_wizard_evtrec.png
similarity index 100%
rename from CMSIS/DoxyGen/RTOS2/src/images/config_wizard_evtrec.png
rename to CMSIS/Documentation/Doxygen/RTOS2/src/images/config_wizard_evtrec.png
diff --git a/CMSIS/DoxyGen/RTOS2/src/images/config_wizard_evtrecGeneration.png b/CMSIS/Documentation/Doxygen/RTOS2/src/images/config_wizard_evtrecGeneration.png
similarity index 100%
rename from CMSIS/DoxyGen/RTOS2/src/images/config_wizard_evtrecGeneration.png
rename to CMSIS/Documentation/Doxygen/RTOS2/src/images/config_wizard_evtrecGeneration.png
diff --git a/CMSIS/DoxyGen/RTOS2/src/images/config_wizard_evtrecGlobEvtFiltSetup.png b/CMSIS/Documentation/Doxygen/RTOS2/src/images/config_wizard_evtrecGlobEvtFiltSetup.png
similarity index 100%
rename from CMSIS/DoxyGen/RTOS2/src/images/config_wizard_evtrecGlobEvtFiltSetup.png
rename to CMSIS/Documentation/Doxygen/RTOS2/src/images/config_wizard_evtrecGlobEvtFiltSetup.png
diff --git a/CMSIS/DoxyGen/RTOS2/src/images/config_wizard_evtrecGlobIni.png b/CMSIS/Documentation/Doxygen/RTOS2/src/images/config_wizard_evtrecGlobIni.png
similarity index 100%
rename from CMSIS/DoxyGen/RTOS2/src/images/config_wizard_evtrecGlobIni.png
rename to CMSIS/Documentation/Doxygen/RTOS2/src/images/config_wizard_evtrecGlobIni.png
diff --git a/CMSIS/DoxyGen/RTOS2/src/images/config_wizard_evtrecRTOSEvtFilterSetup.png b/CMSIS/Documentation/Doxygen/RTOS2/src/images/config_wizard_evtrecRTOSEvtFilterSetup.png
similarity index 100%
rename from CMSIS/DoxyGen/RTOS2/src/images/config_wizard_evtrecRTOSEvtFilterSetup.png
rename to CMSIS/Documentation/Doxygen/RTOS2/src/images/config_wizard_evtrecRTOSEvtFilterSetup.png
diff --git a/CMSIS/DoxyGen/RTOS2/src/images/config_wizard_memPool.png b/CMSIS/Documentation/Doxygen/RTOS2/src/images/config_wizard_memPool.png
similarity index 100%
rename from CMSIS/DoxyGen/RTOS2/src/images/config_wizard_memPool.png
rename to CMSIS/Documentation/Doxygen/RTOS2/src/images/config_wizard_memPool.png
diff --git a/CMSIS/DoxyGen/RTOS2/src/images/config_wizard_msgQueue.png b/CMSIS/Documentation/Doxygen/RTOS2/src/images/config_wizard_msgQueue.png
similarity index 100%
rename from CMSIS/DoxyGen/RTOS2/src/images/config_wizard_msgQueue.png
rename to CMSIS/Documentation/Doxygen/RTOS2/src/images/config_wizard_msgQueue.png
diff --git a/CMSIS/DoxyGen/RTOS2/src/images/config_wizard_mutex.png b/CMSIS/Documentation/Doxygen/RTOS2/src/images/config_wizard_mutex.png
similarity index 100%
rename from CMSIS/DoxyGen/RTOS2/src/images/config_wizard_mutex.png
rename to CMSIS/Documentation/Doxygen/RTOS2/src/images/config_wizard_mutex.png
diff --git a/CMSIS/DoxyGen/RTOS2/src/images/config_wizard_semaphore.png b/CMSIS/Documentation/Doxygen/RTOS2/src/images/config_wizard_semaphore.png
similarity index 100%
rename from CMSIS/DoxyGen/RTOS2/src/images/config_wizard_semaphore.png
rename to CMSIS/Documentation/Doxygen/RTOS2/src/images/config_wizard_semaphore.png
diff --git a/CMSIS/DoxyGen/RTOS2/src/images/config_wizard_system.png b/CMSIS/Documentation/Doxygen/RTOS2/src/images/config_wizard_system.png
similarity index 100%
rename from CMSIS/DoxyGen/RTOS2/src/images/config_wizard_system.png
rename to CMSIS/Documentation/Doxygen/RTOS2/src/images/config_wizard_system.png
diff --git a/CMSIS/DoxyGen/RTOS2/src/images/config_wizard_threads.png b/CMSIS/Documentation/Doxygen/RTOS2/src/images/config_wizard_threads.png
similarity index 100%
rename from CMSIS/DoxyGen/RTOS2/src/images/config_wizard_threads.png
rename to CMSIS/Documentation/Doxygen/RTOS2/src/images/config_wizard_threads.png
diff --git a/CMSIS/DoxyGen/RTOS2/src/images/config_wizard_timer.png b/CMSIS/Documentation/Doxygen/RTOS2/src/images/config_wizard_timer.png
similarity index 100%
rename from CMSIS/DoxyGen/RTOS2/src/images/config_wizard_timer.png
rename to CMSIS/Documentation/Doxygen/RTOS2/src/images/config_wizard_timer.png
diff --git a/CMSIS/DoxyGen/RTOS2/src/images/event_recorder_rte.png b/CMSIS/Documentation/Doxygen/RTOS2/src/images/event_recorder_rte.png
similarity index 100%
rename from CMSIS/DoxyGen/RTOS2/src/images/event_recorder_rte.png
rename to CMSIS/Documentation/Doxygen/RTOS2/src/images/event_recorder_rte.png
diff --git a/CMSIS/DoxyGen/RTOS2/src/images/manage_rte_cortex-a.png b/CMSIS/Documentation/Doxygen/RTOS2/src/images/manage_rte_cortex-a.png
similarity index 100%
rename from CMSIS/DoxyGen/RTOS2/src/images/manage_rte_cortex-a.png
rename to CMSIS/Documentation/Doxygen/RTOS2/src/images/manage_rte_cortex-a.png
diff --git a/CMSIS/DoxyGen/RTOS2/src/images/manage_rte_output.png b/CMSIS/Documentation/Doxygen/RTOS2/src/images/manage_rte_output.png
similarity index 100%
rename from CMSIS/DoxyGen/RTOS2/src/images/manage_rte_output.png
rename to CMSIS/Documentation/Doxygen/RTOS2/src/images/manage_rte_output.png
diff --git a/CMSIS/DoxyGen/RTOS2/src/images/mempool.png b/CMSIS/Documentation/Doxygen/RTOS2/src/images/mempool.png
similarity index 100%
rename from CMSIS/DoxyGen/RTOS2/src/images/mempool.png
rename to CMSIS/Documentation/Doxygen/RTOS2/src/images/mempool.png
diff --git a/CMSIS/DoxyGen/RTOS2/src/images/mutex_states.png b/CMSIS/Documentation/Doxygen/RTOS2/src/images/mutex_states.png
similarity index 100%
rename from CMSIS/DoxyGen/RTOS2/src/images/mutex_states.png
rename to CMSIS/Documentation/Doxygen/RTOS2/src/images/mutex_states.png
diff --git a/CMSIS/DoxyGen/RTOS2/src/images/own_lib_projwin.png b/CMSIS/Documentation/Doxygen/RTOS2/src/images/own_lib_projwin.png
similarity index 100%
rename from CMSIS/DoxyGen/RTOS2/src/images/own_lib_projwin.png
rename to CMSIS/Documentation/Doxygen/RTOS2/src/images/own_lib_projwin.png
diff --git a/CMSIS/DoxyGen/RTOS2/src/images/project_window.png b/CMSIS/Documentation/Doxygen/RTOS2/src/images/project_window.png
similarity index 100%
rename from CMSIS/DoxyGen/RTOS2/src/images/project_window.png
rename to CMSIS/Documentation/Doxygen/RTOS2/src/images/project_window.png
diff --git a/CMSIS/DoxyGen/RTOS2/src/images/rtos_components.png b/CMSIS/Documentation/Doxygen/RTOS2/src/images/rtos_components.png
similarity index 100%
rename from CMSIS/DoxyGen/RTOS2/src/images/rtos_components.png
rename to CMSIS/Documentation/Doxygen/RTOS2/src/images/rtos_components.png
diff --git a/CMSIS/DoxyGen/RTOS2/src/images/rtos_mpu.png b/CMSIS/Documentation/Doxygen/RTOS2/src/images/rtos_mpu.png
similarity index 100%
rename from CMSIS/DoxyGen/RTOS2/src/images/rtos_mpu.png
rename to CMSIS/Documentation/Doxygen/RTOS2/src/images/rtos_mpu.png
diff --git a/CMSIS/DoxyGen/RTOS2/src/images/scheduling.png b/CMSIS/Documentation/Doxygen/RTOS2/src/images/scheduling.png
similarity index 100%
rename from CMSIS/DoxyGen/RTOS2/src/images/scheduling.png
rename to CMSIS/Documentation/Doxygen/RTOS2/src/images/scheduling.png
diff --git a/CMSIS/DoxyGen/RTOS2/src/images/semaphore_states.png b/CMSIS/Documentation/Doxygen/RTOS2/src/images/semaphore_states.png
similarity index 100%
rename from CMSIS/DoxyGen/RTOS2/src/images/semaphore_states.png
rename to CMSIS/Documentation/Doxygen/RTOS2/src/images/semaphore_states.png
diff --git a/CMSIS/DoxyGen/RTOS2/src/images/simple_signal.png b/CMSIS/Documentation/Doxygen/RTOS2/src/images/simple_signal.png
similarity index 100%
rename from CMSIS/DoxyGen/RTOS2/src/images/simple_signal.png
rename to CMSIS/Documentation/Doxygen/RTOS2/src/images/simple_signal.png
diff --git a/CMSIS/DoxyGen/RTOS2/src/images/thread_watchdogs.png b/CMSIS/Documentation/Doxygen/RTOS2/src/images/thread_watchdogs.png
similarity index 100%
rename from CMSIS/DoxyGen/RTOS2/src/images/thread_watchdogs.png
rename to CMSIS/Documentation/Doxygen/RTOS2/src/images/thread_watchdogs.png
diff --git a/CMSIS/DoxyGen/RTOS2/src/mainpage.md b/CMSIS/Documentation/Doxygen/RTOS2/src/mainpage.md
similarity index 90%
rename from CMSIS/DoxyGen/RTOS2/src/mainpage.md
rename to CMSIS/Documentation/Doxygen/RTOS2/src/mainpage.md
index 61216e4aa..4d8a5936c 100644
--- a/CMSIS/DoxyGen/RTOS2/src/mainpage.md
+++ b/CMSIS/Documentation/Doxygen/RTOS2/src/mainpage.md
@@ -19,34 +19,42 @@ CMSIS-RTOS2 provides great benefits to the embedded developers and software vend
- \ref rtosValidation "RTOS Validation Suite" provides a set of tests to verify compatibility to CMSIS-RTOS2 API definitions.
- CMSIS-RTOS2 is well adopted by the industry, has many years of continuous improvements and commitment for future developments.
-\note The CMSIS-RTOS2 defines a minimum feature set. It's architecture allows to use advanced vendor-specific features directly as well.
+> **Note**
+> - The CMSIS-RTOS2 defines a minimum feature set. It's architecture allows to use advanced vendor-specific features directly as well.
## Supported RTOS kernels {#rtos2_kernels}
Several popular RTOS kernels include support for CMSIS-RTOS2 API:
**CMSIS-RTX** (or Keil RTX5): provides most complete support for CMSIS-RTOS2 API and uses it as native interface. For more information see:
+
- [CMSIS-RTX GitHub repository](https://github.com/ARM-software/CMSIS-RTX)
- [CMSIS-RTX Documentation](https://arm-software.github.io/CMSIS-RTX/)
**FreeRTOS** : this popular RTOS kernel is enabled with CMSIS-RTOS2 API in the *CMSIS-FreeRTOS* variant. To learn more see:
+
- [CMSIS-FreeRTOS GitHub repository](https://github.com/ARM-software/CMSIS-FreeRTOS)
- [CMSIS-FreeRTOS Documentation](https://arm-software.github.io/CMSIS-FreeRTOS/)
**Zephyr RTOS**: is developed under governance of Linux Foundation and includes CMSIS-RTOS2 support. See more at:
+
- [Zephyr GitHub repository](https://github.com/zephyrproject-rtos/zephyr), see folder *subsys/portability/cmsis_rtos_v2/*
- [Zephyr documentation about CMSIS-RTOS2 support](https://docs.zephyrproject.org/latest/services/portability/cmsis_rtos_v2.html)
+**Micrium OS** is developed and maintained by Silicon Labs. See more at:
+
+ - [Micrium OS overview and comparison](https://www.silabs.com/developers/rtos)
+
## Access to CMSIS-RTOS2 {#rtos2_access}
-CMSIS-RTOS2 and OS Tick intefaces are actively maintained in [**CMSIS 6 GitHub repository**](https://github.com/ARM-software/CMSIS_6) and provided as part of the [CMSIS Software Pack](../../General/html/cmsis_pack.html).
+CMSIS-RTOS2 and OS Tick intefaces are actively maintained in [**CMSIS 6 GitHub repository**](https://github.com/ARM-software/CMSIS_6) and provided as part of the [CMSIS Software Pack](../General/cmsis_pack.html).
The following files relevant to CMSIS-RTOS2 are present in the **ARM::CMSIS** Pack directories:
File/Directory | Content
:-------------------------------------|:----------------------------------------------------
📂 CMSIS | CMSIS Base software components folder
- ┣ 📂 Documentation/RTOS2 | A local copy of this CMSIS-RTOS2 documentation
+ ┣ 📂 Documentation/html/RTOS2 | A local copy of this CMSIS-RTOS2 documentation
┗ 📂 RTOS2 | CMSIS-RTOS2 API header files and OS tick implementations
┣ 📂 Include | API header files
┣ 📄 cmsis_os2.h | \ref cmsis_os2_h
@@ -55,4 +63,3 @@ File/Directory | Content
┣ 📄 os_systick.c | OS tick implementation using Cortex-M SysTick timer
┣ 📄 os_tick_gtim.c | OS tick implementation using Cortex-A Generic Timer
┗ 📄 os_tick_ptim.c | OS tick implementation using Cortex-A Private Timer
-
diff --git a/CMSIS/DoxyGen/RTOS2/src/processIsolation.md b/CMSIS/Documentation/Doxygen/RTOS2/src/processIsolation.md
similarity index 68%
rename from CMSIS/DoxyGen/RTOS2/src/processIsolation.md
rename to CMSIS/Documentation/Doxygen/RTOS2/src/processIsolation.md
index 3ab5351df..086407c4d 100644
--- a/CMSIS/DoxyGen/RTOS2/src/processIsolation.md
+++ b/CMSIS/Documentation/Doxygen/RTOS2/src/processIsolation.md
@@ -4,16 +4,16 @@ CMSIS-RTOS2 API supports a concept of **process isolation** that allows develope
Process Isolation in CMSIS-RTOS2 is enabled by following features:
-- \subpage rtos_process_isolation_mpu for memory access protection in the system using Memory Protection Unit (MPU).
+ - \subpage rtos_process_isolation_mpu for memory access protection in the system using Memory Protection Unit (MPU).
RTOS threads are executed with permission to access only memory regions and peripherals required for their operation. Hence thread code cannot accidentally modify critical RTOS kernel data or memory dedicated to other tasks.
-.
-- \subpage rtos_process_isolation_safety_class for access protection to RTOS objects via RTOS APIs.
+ .
+ - \subpage rtos_process_isolation_safety_class for access protection to RTOS objects via RTOS APIs.
The RTOS objects with a higher safety class assigned to them cannot be modified via RTOS API functions from threads that have lower safety class assigned.
-.
-- \subpage rtos_process_isolation_thread_wdt to verify execution times of threads.
+ .
+ - \subpage rtos_process_isolation_thread_wdt to verify execution times of threads.
Each thread can maintain own thread watchdog and in case of timing violations, corresponding thread watchdog alarm will be triggered.
-.
-- \subpage rtos_process_isolation_faults in case of a detected failure (for example thread watchdog alarm or MPU Fault).
+ .
+ - \subpage rtos_process_isolation_faults in case of a detected failure (for example thread watchdog alarm or MPU Fault).
The RTOS provides functions to block execution of malfunctioning components and with that dedicate system resources for operation of the safety critical threads.
\if FuSaRTS
@@ -23,7 +23,7 @@ Section \ref fusa_process_isolation lists safety requirements for Process Isolat
\page rtos_process_isolation_mpu MPU Protected Zones
-Memory Protection Unit (MPU) is available on many Cortex-M devices and allows to execute code with restricted access to memory regions and peripherals. Detailed information about the MPU can be found in [Cortex-M Reference Manuals](../../Core/html/index.html#ref_man_sec).
+Memory Protection Unit (MPU) is available on many Cortex-M devices and allows to execute code with restricted access to memory regions and peripherals. Detailed information about the MPU can be found in [Cortex-M Reference Manuals](../Core/index.html#ref_man_sec).
CMSIS-RTOS2 provides a concept of **MPU Protected Zones** as a simple and flexible mechanism for using MPUs with RTOS threads. MPU Protected Zones are defined by a user as a set of memory regions and peripherals with specified access rights, and each RTOS threads gets assigned to a specific MPU Protected Zone that it is allowed to use.
@@ -32,29 +32,30 @@ The figure below illustrates the concept for MPU Protected Zones for isolating t
![System partitioning with MPU Protected Zones](./images/rtos_mpu.png)
Sections below explain in details how to define and use MPU Protected Zones:
-- \ref rtos_process_isolation_mpu_def
-- \ref rtos_process_isolation_mpu_load
-- \ref rtos_process_isolation_mpu_objects
-- \ref rtos_process_isolation_mpu_fault
+
+ - \ref rtos_process_isolation_mpu_def
+ - \ref rtos_process_isolation_mpu_load
+ - \ref rtos_process_isolation_mpu_objects
+ - \ref rtos_process_isolation_mpu_fault
**Function references**
Following functions implement and use MPU Protected Zone functionality:
-- \ref osThreadNew : \copybrief osThreadNew
-- \ref osThreadZone : \copybrief osThreadZone
-- \ref osThreadGetZone : \copybrief osThreadGetZone
-- \ref osThreadTerminateZone : \copybrief osThreadTerminateZone
-- \ref osZoneSetup_Callback : \copybrief osZoneSetup_Callback
+ - \ref osThreadNew : \copybrief osThreadNew
+ - \ref osThreadZone : \copybrief osThreadZone
+ - \ref osThreadGetZone : \copybrief osThreadGetZone
+ - \ref osThreadTerminateZone : \copybrief osThreadTerminateZone
+ - \ref osZoneSetup_Callback : \copybrief osZoneSetup_Callback
## Define MPU Protected Zones {#rtos_process_isolation_mpu_def}
In the architectural design phase an application is logically split into functionalities with the same integrity level (same safety requirements). They can safely operate within the same MPU Protected Zone and hence access same memory areas and peripherals.
-MPU protected zones are defined in an MPU table where each row describes an individual MPU zone and each cell in the row specifies an MPU region within that zone. For details see section [MPU Functions](../../Core/html/group__mpu__functions.html) in CMSIS-Core(M) documentation.
+MPU protected zones are defined in an MPU table where each row describes an individual MPU zone and each cell in the row specifies an MPU region within that zone. For details see section [MPU Functions](../Core/group__mpu__functions.html) in CMSIS-Core(M) documentation.
-\note
-Interrupt handlers bypass the MPU protection. For this reason, it is required that potential impact of all interrupt handlers is strictly analyzed to exclude unintended memory accesses.
+> **Note**
+> - Interrupt handlers bypass the MPU protection. For this reason, it is required that potential impact of all interrupt handlers is strictly analyzed to exclude unintended memory accesses.
**Zone Identifier** (Zone ID) is used to refer to a specific MPU protected zone. Zone ID value equals to the row index (starting from 0) in the MPU table that describes corresponding MPU Protected Zone.
@@ -71,13 +72,14 @@ const osThreadAttr_t thread_A_attr = {
osThreadNew(ThreadA, NULL, &thread_A_attr);
```
-[CMSIS-Zone](https://arm-software.github.io/CMSIS_5/Zone/html/index.html) provides a utility that allows graphic configuration of MPU protected zones and generates MPU table in the CMSIS format.
+[CMSIS-Zone](../Zone/index.html) provides a utility that allows graphic configuration of MPU protected zones and generates MPU table in the CMSIS format.
## Load MPU Protected Zone {#rtos_process_isolation_mpu_load}
When switching threads the RTOS kernel compares Zone IDs of the currently running thread and the next thread to be executed. If the Zone Ids are different then a callback function \ref osZoneSetup_Callback is called. This callback function shall be implemented in the user application code to actually switch to the new MPU Protected Zone. In the function the user should load the MPU Protected Zone according to the Zone Id provided in the argument.
**Example:**
+
```c
/* Update MPU settings for newly activating Zone */
void osZoneSetup_Callback (uint32_t zone) {
@@ -91,6 +93,7 @@ void osZoneSetup_Callback (uint32_t zone) {
```
## RTOS Objects and MPU Protection {#rtos_process_isolation_mpu_objects}
+
To access RTOS objects from the application RTOS APIs rely on a numeric `xxx_id` parameter associated with the object as explained in \ref rtos_objects. For example as `evt_flags` in this code:
```c
@@ -105,7 +108,7 @@ To enable access control for RTOS objects the \ref rtos_process_isolation_safety
## Handle Memory Access Faults {#rtos_process_isolation_mpu_fault}
-A memory access fault is triggered when a thread tries to access memory or peripherals outside of the MPU Protected Zone loaded while the thread is running. In such case Memory Management Interrupt [MemoryManagement_IRQn](../../Core/html/group__NVIC__gr.html) is triggered by the processor and its handling function is executed according to the exception vector table specified in the device startup file (by default \token{MemManage_Handler(void)} ).
+A memory access fault is triggered when a thread tries to access memory or peripherals outside of the MPU Protected Zone loaded while the thread is running. In such case Memory Management Interrupt [MemoryManagement_IRQn](../Core/group__NVIC__gr.html) is triggered by the processor and its handling function is executed according to the exception vector table specified in the device startup file (by default \token{MemManage_Handler(void)} ).
The \e MemManage_Handler() interrupt handler is application specific and needs to be implemented by the user. In the handler it is possible to identify the thread that caused the memory access fault, the corresponding zone id and the safety class. This information can be used to define actions for entering a safe state. \ref rtos_process_isolation_faults provides more details on the available system recovery possibilities.
@@ -119,17 +122,17 @@ For example, it is not possible to change the priority or suspend a thread that
**Function references**
-- Following functions and macros are used explicitly for managing safety classes:
- - \ref osSafetyClass : \copybrief osSafetyClass
- - \ref osThreadGetClass : \copybrief osThreadGetClass
- - \ref osSafetyWithSameClass : \copybrief osSafetyWithSameClass
- - \ref osSafetyWithLowerClass : \copybrief osSafetyWithLowerClass
- - \ref osKernelProtect : \copybrief osKernelProtect
- - \ref osThreadSuspendClass : \copybrief osThreadSuspendClass
- - \ref osThreadResumeClass : \copybrief osThreadResumeClass
- - \ref osKernelDestroyClass : \copybrief osKernelDestroyClass
-- CMSIS-RTOS2 API functions that support safety class assignment when creating RTOS objects are listed in \ref rtos_process_isolation_safety_class_assign.
-- CMSIS-RTOS2 API functions that verify safety class assignment before execution are listed in \ref rtos_process_isolation_safety_class_error lists.
+ - Following functions and macros are used explicitly for managing safety classes:
+ - \ref osSafetyClass : \copybrief osSafetyClass
+ - \ref osThreadGetClass : \copybrief osThreadGetClass
+ - \ref osSafetyWithSameClass : \copybrief osSafetyWithSameClass
+ - \ref osSafetyWithLowerClass : \copybrief osSafetyWithLowerClass
+ - \ref osKernelProtect : \copybrief osKernelProtect
+ - \ref osThreadSuspendClass : \copybrief osThreadSuspendClass
+ - \ref osThreadResumeClass : \copybrief osThreadResumeClass
+ - \ref osKernelDestroyClass : \copybrief osKernelDestroyClass
+ - CMSIS-RTOS2 API functions that support safety class assignment when creating RTOS objects are listed in \ref rtos_process_isolation_safety_class_assign.
+ - CMSIS-RTOS2 API functions that verify safety class assignment before execution are listed in \ref rtos_process_isolation_safety_class_error lists.
## Assign Safety Class to an RTOS Object {#rtos_process_isolation_safety_class_assign}
@@ -147,13 +150,13 @@ evt_flags = osEventFlagsNew(&evt_flags_attr);
The following object types support safety class assignment when creating an object with corresponding \e os