Build: Update app_broker build

Update app_broker build to make dependencies more stable.

  - Sort NS library folder structure.
    Move common library folders out of app_broker. Place them under lib
    folder. Move CMSIS to lib/ext.
    It is expected that users can re-use those library in other NS
    integration with TF-M.
  - NS libraries depend on each other and therefore the dependencies are
    complicated. Build those NS libraries under app_broker to more
    easily sort out dependencies. Remove build files from library
    folders.

Signed-off-by: David Hu <david.hu@arm.com>
Change-Id: I8c2ff7bbec6c03738b9cbe49fd286a5147293ba5
diff --git a/app_broker/CMSIS/CMakeLists.txt b/app_broker/CMSIS/CMakeLists.txt
deleted file mode 100644
index 3a20f9c..0000000
--- a/app_broker/CMSIS/CMakeLists.txt
+++ /dev/null
@@ -1,65 +0,0 @@
-#-------------------------------------------------------------------------------
-# Copyright (c) 2023, Arm Limited. All rights reserved.
-#
-# SPDX-License-Identifier: BSD-3-Clause
-#
-#-------------------------------------------------------------------------------
-#
-# This CMake script used in a split build only. In the legacy 'sinlge' build
-# this file is ignoed. Please don't be confused.
-#
-cmake_minimum_required(VERSION 3.15)
-cmake_policy(SET CMP0079 NEW)
-
-add_library(CMSIS_5_RTX_V8MMN STATIC IMPORTED GLOBAL)
-add_library(CMSIS_5_RTX_V8MMFN STATIC IMPORTED GLOBAL)
-add_library(CMSIS_5_RTX_V8MBN STATIC IMPORTED GLOBAL)
-add_library(CMSIS_5_RTX_CM3 STATIC IMPORTED GLOBAL)
-
-set(CMSIS_LIBS_DIR ${CMAKE_CURRENT_SOURCE_DIR}/RTOS2/RTX/Library)
-
-if ("${CMAKE_C_COMPILER_ID}" STREQUAL GNU)
-    set_target_properties(CMSIS_5_RTX_V8MMN  PROPERTIES IMPORTED_LOCATION ${CMSIS_LIBS_DIR}/GCC/libRTX_V8MMN.a)
-    set_target_properties(CMSIS_5_RTX_V8MMFN PROPERTIES IMPORTED_LOCATION ${CMSIS_LIBS_DIR}/GCC/libRTX_V8MMFN.a)
-    set_target_properties(CMSIS_5_RTX_V8MBN  PROPERTIES IMPORTED_LOCATION ${CMSIS_LIBS_DIR}/GCC/libRTX_V8MBN.a)
-    set_target_properties(CMSIS_5_RTX_CM3    PROPERTIES IMPORTED_LOCATION ${CMSIS_LIBS_DIR}/GCC/libRTX_CM3.a)
-elseif("${CMAKE_C_COMPILER_ID}" STREQUAL ARMClang)
-    set_target_properties(CMSIS_5_RTX_V8MMN  PROPERTIES IMPORTED_LOCATION ${CMSIS_LIBS_DIR}/ARM/RTX_V8MMN.lib)
-    set_target_properties(CMSIS_5_RTX_V8MMFN PROPERTIES IMPORTED_LOCATION ${CMSIS_LIBS_DIR}/ARM/RTX_V8MMFN.lib)
-    set_target_properties(CMSIS_5_RTX_V8MBN  PROPERTIES IMPORTED_LOCATION ${CMSIS_LIBS_DIR}/ARM/RTX_V8MBN.lib)
-    set_target_properties(CMSIS_5_RTX_CM3    PROPERTIES IMPORTED_LOCATION ${CMSIS_LIBS_DIR}/ARM/RTX_CM3.lib)
-elseif("${CMAKE_C_COMPILER_ID}" STREQUAL IAR)
-    add_library(CMSIS_5_RTX_V81MMN STATIC IMPORTED GLOBAL)
-    set_target_properties(CMSIS_5_RTX_V8MMN  PROPERTIES IMPORTED_LOCATION ${CMSIS_LIBS_DIR}/IAR/RTX_V8MMN.a)
-    set_target_properties(CMSIS_5_RTX_V81MMN PROPERTIES IMPORTED_LOCATION ${CMSIS_LIBS_DIR}/IAR/RTX_V81MMN.a)
-    set_target_properties(CMSIS_5_RTX_V8MMFN PROPERTIES IMPORTED_LOCATION ${CMSIS_LIBS_DIR}/IAR/RTX_V8MMFN.a)
-    set_target_properties(CMSIS_5_RTX_V8MBN  PROPERTIES IMPORTED_LOCATION ${CMSIS_LIBS_DIR}/IAR/RTX_V8MBN.a)
-    set_target_properties(CMSIS_5_RTX_CM3    PROPERTIES IMPORTED_LOCATION ${CMSIS_LIBS_DIR}/IAR/RTX_CM3.a)
-else()
-    message(FATAL_ERROR "${CMAKE_C_COMPILER_ID} does not have CMSIS RTX static libraries set up")
-endif()
-
-add_library(RTX_OS STATIC)
-
-target_sources(RTX_OS
-    PUBLIC
-        RTOS2/RTX/Config/RTX_Config.c
-        RTOS2/RTX/Source/rtx_lib.c
-)
-
-target_include_directories(RTX_OS
-    PUBLIC
-        Core/Include
-        RTOS2/Include
-        RTOS2/RTX/Include
-        RTOS2/RTX/Config
-)
-
-target_link_libraries(RTX_OS
-    PRIVATE
-        CMSIS_5_RTX_V8MMN
-        tfm_test_broker
-    PUBLIC
-        platform_ns         # for cmsis_compiler.h
-        psa_interface       # for os_wrapper/common.h
-)
diff --git a/app_broker/CMSIS/LICENSE.txt b/app_broker/CMSIS/LICENSE.txt
deleted file mode 100644
index 8dada3e..0000000
--- a/app_broker/CMSIS/LICENSE.txt
+++ /dev/null
@@ -1,201 +0,0 @@
-                                 Apache License
-                           Version 2.0, January 2004
-                        http://www.apache.org/licenses/
-
-   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
-
-   1. Definitions.
-
-      "License" shall mean the terms and conditions for use, reproduction,
-      and distribution as defined by Sections 1 through 9 of this document.
-
-      "Licensor" shall mean the copyright owner or entity authorized by
-      the copyright owner that is granting the License.
-
-      "Legal Entity" shall mean the union of the acting entity and all
-      other entities that control, are controlled by, or are under common
-      control with that entity. For the purposes of this definition,
-      "control" means (i) the power, direct or indirect, to cause the
-      direction or management of such entity, whether by contract or
-      otherwise, or (ii) ownership of fifty percent (50%) or more of the
-      outstanding shares, or (iii) beneficial ownership of such entity.
-
-      "You" (or "Your") shall mean an individual or Legal Entity
-      exercising permissions granted by this License.
-
-      "Source" form shall mean the preferred form for making modifications,
-      including but not limited to software source code, documentation
-      source, and configuration files.
-
-      "Object" form shall mean any form resulting from mechanical
-      transformation or translation of a Source form, including but
-      not limited to compiled object code, generated documentation,
-      and conversions to other media types.
-
-      "Work" shall mean the work of authorship, whether in Source or
-      Object form, made available under the License, as indicated by a
-      copyright notice that is included in or attached to the work
-      (an example is provided in the Appendix below).
-
-      "Derivative Works" shall mean any work, whether in Source or Object
-      form, that is based on (or derived from) the Work and for which the
-      editorial revisions, annotations, elaborations, or other modifications
-      represent, as a whole, an original work of authorship. For the purposes
-      of this License, Derivative Works shall not include works that remain
-      separable from, or merely link (or bind by name) to the interfaces of,
-      the Work and Derivative Works thereof.
-
-      "Contribution" shall mean any work of authorship, including
-      the original version of the Work and any modifications or additions
-      to that Work or Derivative Works thereof, that is intentionally
-      submitted to Licensor for inclusion in the Work by the copyright owner
-      or by an individual or Legal Entity authorized to submit on behalf of
-      the copyright owner. For the purposes of this definition, "submitted"
-      means any form of electronic, verbal, or written communication sent
-      to the Licensor or its representatives, including but not limited to
-      communication on electronic mailing lists, source code control systems,
-      and issue tracking systems that are managed by, or on behalf of, the
-      Licensor for the purpose of discussing and improving the Work, but
-      excluding communication that is conspicuously marked or otherwise
-      designated in writing by the copyright owner as "Not a Contribution."
-
-      "Contributor" shall mean Licensor and any individual or Legal Entity
-      on behalf of whom a Contribution has been received by Licensor and
-      subsequently incorporated within the Work.
-
-   2. Grant of Copyright License. Subject to the terms and conditions of
-      this License, each Contributor hereby grants to You a perpetual,
-      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
-      copyright license to reproduce, prepare Derivative Works of,
-      publicly display, publicly perform, sublicense, and distribute the
-      Work and such Derivative Works in Source or Object form.
-
-   3. Grant of Patent License. Subject to the terms and conditions of
-      this License, each Contributor hereby grants to You a perpetual,
-      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
-      (except as stated in this section) patent license to make, have made,
-      use, offer to sell, sell, import, and otherwise transfer the Work,
-      where such license applies only to those patent claims licensable
-      by such Contributor that are necessarily infringed by their
-      Contribution(s) alone or by combination of their Contribution(s)
-      with the Work to which such Contribution(s) was submitted. If You
-      institute patent litigation against any entity (including a
-      cross-claim or counterclaim in a lawsuit) alleging that the Work
-      or a Contribution incorporated within the Work constitutes direct
-      or contributory patent infringement, then any patent licenses
-      granted to You under this License for that Work shall terminate
-      as of the date such litigation is filed.
-
-   4. Redistribution. You may reproduce and distribute copies of the
-      Work or Derivative Works thereof in any medium, with or without
-      modifications, and in Source or Object form, provided that You
-      meet the following conditions:
-
-      (a) You must give any other recipients of the Work or
-          Derivative Works a copy of this License; and
-
-      (b) You must cause any modified files to carry prominent notices
-          stating that You changed the files; and
-
-      (c) You must retain, in the Source form of any Derivative Works
-          that You distribute, all copyright, patent, trademark, and
-          attribution notices from the Source form of the Work,
-          excluding those notices that do not pertain to any part of
-          the Derivative Works; and
-
-      (d) If the Work includes a "NOTICE" text file as part of its
-          distribution, then any Derivative Works that You distribute must
-          include a readable copy of the attribution notices contained
-          within such NOTICE file, excluding those notices that do not
-          pertain to any part of the Derivative Works, in at least one
-          of the following places: within a NOTICE text file distributed
-          as part of the Derivative Works; within the Source form or
-          documentation, if provided along with the Derivative Works; or,
-          within a display generated by the Derivative Works, if and
-          wherever such third-party notices normally appear. The contents
-          of the NOTICE file are for informational purposes only and
-          do not modify the License. You may add Your own attribution
-          notices within Derivative Works that You distribute, alongside
-          or as an addendum to the NOTICE text from the Work, provided
-          that such additional attribution notices cannot be construed
-          as modifying the License.
-
-      You may add Your own copyright statement to Your modifications and
-      may provide additional or different license terms and conditions
-      for use, reproduction, or distribution of Your modifications, or
-      for any such Derivative Works as a whole, provided Your use,
-      reproduction, and distribution of the Work otherwise complies with
-      the conditions stated in this License.
-
-   5. Submission of Contributions. Unless You explicitly state otherwise,
-      any Contribution intentionally submitted for inclusion in the Work
-      by You to the Licensor shall be under the terms and conditions of
-      this License, without any additional terms or conditions.
-      Notwithstanding the above, nothing herein shall supersede or modify
-      the terms of any separate license agreement you may have executed
-      with Licensor regarding such Contributions.
-
-   6. Trademarks. This License does not grant permission to use the trade
-      names, trademarks, service marks, or product names of the Licensor,
-      except as required for reasonable and customary use in describing the
-      origin of the Work and reproducing the content of the NOTICE file.
-
-   7. Disclaimer of Warranty. Unless required by applicable law or
-      agreed to in writing, Licensor provides the Work (and each
-      Contributor provides its Contributions) on an "AS IS" BASIS,
-      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
-      implied, including, without limitation, any warranties or conditions
-      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
-      PARTICULAR PURPOSE. You are solely responsible for determining the
-      appropriateness of using or redistributing the Work and assume any
-      risks associated with Your exercise of permissions under this License.
-
-   8. Limitation of Liability. In no event and under no legal theory,
-      whether in tort (including negligence), contract, or otherwise,
-      unless required by applicable law (such as deliberate and grossly
-      negligent acts) or agreed to in writing, shall any Contributor be
-      liable to You for damages, including any direct, indirect, special,
-      incidental, or consequential damages of any character arising as a
-      result of this License or out of the use or inability to use the
-      Work (including but not limited to damages for loss of goodwill,
-      work stoppage, computer failure or malfunction, or any and all
-      other commercial damages or losses), even if such Contributor
-      has been advised of the possibility of such damages.
-
-   9. Accepting Warranty or Additional Liability. While redistributing
-      the Work or Derivative Works thereof, You may choose to offer,
-      and charge a fee for, acceptance of support, warranty, indemnity,
-      or other liability obligations and/or rights consistent with this
-      License. However, in accepting such obligations, You may act only
-      on Your own behalf and on Your sole responsibility, not on behalf
-      of any other Contributor, and only if You agree to indemnify,
-      defend, and hold each Contributor harmless for any liability
-      incurred by, or claims asserted against, such Contributor by reason
-      of your accepting any such warranty or additional liability.
-
-   END OF TERMS AND CONDITIONS
-
-   APPENDIX: How to apply the Apache License to your work.
-
-      To apply the Apache License to your work, attach the following
-      boilerplate notice, with the fields enclosed by brackets "{}"
-      replaced with your own identifying information. (Don't include
-      the brackets!)  The text should be enclosed in the appropriate
-      comment syntax for the file format. We also recommend that a
-      file or class name and description of purpose be included on the
-      same "printed page" as the copyright notice for easier
-      identification within third-party archives.
-
-   Copyright {yyyy} {name of copyright owner}
-
-   Licensed under the Apache License, Version 2.0 (the "License");
-   you may not use this file except in compliance with the License.
-   You may obtain a copy of the License at
-
-       http://www.apache.org/licenses/LICENSE-2.0
-
-   Unless required by applicable law or agreed to in writing, software
-   distributed under the License is distributed on an "AS IS" BASIS,
-   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-   See the License for the specific language governing permissions and
-   limitations under the License.
diff --git a/app_broker/CMSIS/README b/app_broker/CMSIS/README
deleted file mode 100644
index 307528f..0000000
--- a/app_broker/CMSIS/README
+++ /dev/null
@@ -1,15 +0,0 @@
-The source codes under this folder are copied from:
-https://github.com/ARM-software/CMSIS_5.git, tag 5.5.0, without modifications.
-Only CMakeLists.txt file is added for TF-M test build purpose.
-
-The prebuilt libraries have two versions:
- - v5.5.0 for ARMCLANG and GCC compilers
- - v5.7.0 for IAR compiler
-
-The v5.7.0 libraries for ARMCLANG and GCC have linking issues on Musca_A and
-AN524. So libraries for these two compilers keep using v5.5.0 which has been
-tested and verified.
-
-The IAR libraries of v5.5.0 has a problem and has been updated in CMSIS_5 5.7.0.
-So IAR libraries use v5.7.0.
-
diff --git a/app_broker/CMSIS/RTOS2/Include/cmsis_os2.h b/app_broker/CMSIS/RTOS2/Include/cmsis_os2.h
deleted file mode 100644
index e0b602c..0000000
--- a/app_broker/CMSIS/RTOS2/Include/cmsis_os2.h
+++ /dev/null
@@ -1,756 +0,0 @@
-/*
- * Copyright (c) 2013-2018 Arm Limited. All rights reserved.
- *
- * SPDX-License-Identifier: Apache-2.0
- *
- * Licensed under the Apache License, Version 2.0 (the License); you may
- * not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an AS IS BASIS, WITHOUT
- * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- * ----------------------------------------------------------------------
- *
- * $Date:        18. June 2018
- * $Revision:    V2.1.3
- *
- * Project:      CMSIS-RTOS2 API
- * Title:        cmsis_os2.h header file
- *
- * Version 2.1.3
- *    Additional functions allowed to be called from Interrupt Service Routines:
- *    - osThreadGetId
- * Version 2.1.2
- *    Additional functions allowed to be called from Interrupt Service Routines:
- *    - osKernelGetInfo, osKernelGetState
- * Version 2.1.1
- *    Additional functions allowed to be called from Interrupt Service Routines:
- *    - osKernelGetTickCount, osKernelGetTickFreq
- *    Changed Kernel Tick type to uint32_t:
- *    - updated: osKernelGetTickCount, osDelayUntil
- * Version 2.1.0
- *    Support for critical and uncritical sections (nesting safe):
- *    - updated: osKernelLock, osKernelUnlock
- *    - added: osKernelRestoreLock
- *    Updated Thread and Event Flags:
- *    - changed flags parameter and return type from int32_t to uint32_t
- * Version 2.0.0
- *    Initial Release
- *---------------------------------------------------------------------------*/
- 
-#ifndef CMSIS_OS2_H_
-#define CMSIS_OS2_H_
- 
-#ifndef __NO_RETURN
-#if   defined(__CC_ARM)
-#define __NO_RETURN __declspec(noreturn)
-#elif defined(__ARMCC_VERSION) && (__ARMCC_VERSION >= 6010050)
-#define __NO_RETURN __attribute__((__noreturn__))
-#elif defined(__GNUC__)
-#define __NO_RETURN __attribute__((__noreturn__))
-#elif defined(__ICCARM__)
-#define __NO_RETURN __noreturn
-#else
-#define __NO_RETURN
-#endif
-#endif
- 
-#include <stdint.h>
-#include <stddef.h>
- 
-#ifdef  __cplusplus
-extern "C"
-{
-#endif
- 
- 
-//  ==== Enumerations, structures, defines ====
- 
-/// Version information.
-typedef struct {
-  uint32_t                       api;   ///< API version (major.minor.rev: mmnnnrrrr dec).
-  uint32_t                    kernel;   ///< Kernel version (major.minor.rev: mmnnnrrrr dec).
-} osVersion_t;
- 
-/// Kernel state.
-typedef enum {
-  osKernelInactive        =  0,         ///< Inactive.
-  osKernelReady           =  1,         ///< Ready.
-  osKernelRunning         =  2,         ///< Running.
-  osKernelLocked          =  3,         ///< Locked.
-  osKernelSuspended       =  4,         ///< Suspended.
-  osKernelError           = -1,         ///< Error.
-  osKernelReserved        = 0x7FFFFFFFU ///< Prevents enum down-size compiler optimization.
-} osKernelState_t;
- 
-/// Thread state.
-typedef enum {
-  osThreadInactive        =  0,         ///< Inactive.
-  osThreadReady           =  1,         ///< Ready.
-  osThreadRunning         =  2,         ///< Running.
-  osThreadBlocked         =  3,         ///< Blocked.
-  osThreadTerminated      =  4,         ///< Terminated.
-  osThreadError           = -1,         ///< Error.
-  osThreadReserved        = 0x7FFFFFFF  ///< Prevents enum down-size compiler optimization.
-} osThreadState_t;
- 
-/// Priority values.
-typedef enum {
-  osPriorityNone          =  0,         ///< No priority (not initialized).
-  osPriorityIdle          =  1,         ///< Reserved for Idle thread.
-  osPriorityLow           =  8,         ///< Priority: low
-  osPriorityLow1          =  8+1,       ///< Priority: low + 1
-  osPriorityLow2          =  8+2,       ///< Priority: low + 2
-  osPriorityLow3          =  8+3,       ///< Priority: low + 3
-  osPriorityLow4          =  8+4,       ///< Priority: low + 4
-  osPriorityLow5          =  8+5,       ///< Priority: low + 5
-  osPriorityLow6          =  8+6,       ///< Priority: low + 6
-  osPriorityLow7          =  8+7,       ///< Priority: low + 7
-  osPriorityBelowNormal   = 16,         ///< Priority: below normal
-  osPriorityBelowNormal1  = 16+1,       ///< Priority: below normal + 1
-  osPriorityBelowNormal2  = 16+2,       ///< Priority: below normal + 2
-  osPriorityBelowNormal3  = 16+3,       ///< Priority: below normal + 3
-  osPriorityBelowNormal4  = 16+4,       ///< Priority: below normal + 4
-  osPriorityBelowNormal5  = 16+5,       ///< Priority: below normal + 5
-  osPriorityBelowNormal6  = 16+6,       ///< Priority: below normal + 6
-  osPriorityBelowNormal7  = 16+7,       ///< Priority: below normal + 7
-  osPriorityNormal        = 24,         ///< Priority: normal
-  osPriorityNormal1       = 24+1,       ///< Priority: normal + 1
-  osPriorityNormal2       = 24+2,       ///< Priority: normal + 2
-  osPriorityNormal3       = 24+3,       ///< Priority: normal + 3
-  osPriorityNormal4       = 24+4,       ///< Priority: normal + 4
-  osPriorityNormal5       = 24+5,       ///< Priority: normal + 5
-  osPriorityNormal6       = 24+6,       ///< Priority: normal + 6
-  osPriorityNormal7       = 24+7,       ///< Priority: normal + 7
-  osPriorityAboveNormal   = 32,         ///< Priority: above normal
-  osPriorityAboveNormal1  = 32+1,       ///< Priority: above normal + 1
-  osPriorityAboveNormal2  = 32+2,       ///< Priority: above normal + 2
-  osPriorityAboveNormal3  = 32+3,       ///< Priority: above normal + 3
-  osPriorityAboveNormal4  = 32+4,       ///< Priority: above normal + 4
-  osPriorityAboveNormal5  = 32+5,       ///< Priority: above normal + 5
-  osPriorityAboveNormal6  = 32+6,       ///< Priority: above normal + 6
-  osPriorityAboveNormal7  = 32+7,       ///< Priority: above normal + 7
-  osPriorityHigh          = 40,         ///< Priority: high
-  osPriorityHigh1         = 40+1,       ///< Priority: high + 1
-  osPriorityHigh2         = 40+2,       ///< Priority: high + 2
-  osPriorityHigh3         = 40+3,       ///< Priority: high + 3
-  osPriorityHigh4         = 40+4,       ///< Priority: high + 4
-  osPriorityHigh5         = 40+5,       ///< Priority: high + 5
-  osPriorityHigh6         = 40+6,       ///< Priority: high + 6
-  osPriorityHigh7         = 40+7,       ///< Priority: high + 7
-  osPriorityRealtime      = 48,         ///< Priority: realtime
-  osPriorityRealtime1     = 48+1,       ///< Priority: realtime + 1
-  osPriorityRealtime2     = 48+2,       ///< Priority: realtime + 2
-  osPriorityRealtime3     = 48+3,       ///< Priority: realtime + 3
-  osPriorityRealtime4     = 48+4,       ///< Priority: realtime + 4
-  osPriorityRealtime5     = 48+5,       ///< Priority: realtime + 5
-  osPriorityRealtime6     = 48+6,       ///< Priority: realtime + 6
-  osPriorityRealtime7     = 48+7,       ///< Priority: realtime + 7
-  osPriorityISR           = 56,         ///< Reserved for ISR deferred thread.
-  osPriorityError         = -1,         ///< System cannot determine priority or illegal priority.
-  osPriorityReserved      = 0x7FFFFFFF  ///< Prevents enum down-size compiler optimization.
-} osPriority_t;
- 
-/// Entry point of a thread.
-typedef void (*osThreadFunc_t) (void *argument);
- 
-/// Timer callback function.
-typedef void (*osTimerFunc_t) (void *argument);
- 
-/// Timer type.
-typedef enum {
-  osTimerOnce               = 0,          ///< One-shot timer.
-  osTimerPeriodic           = 1           ///< Repeating timer.
-} osTimerType_t;
- 
-// Timeout value.
-#define osWaitForever         0xFFFFFFFFU ///< Wait forever timeout value.
- 
-// Flags options (\ref osThreadFlagsWait and \ref osEventFlagsWait).
-#define osFlagsWaitAny        0x00000000U ///< Wait for any flag (default).
-#define osFlagsWaitAll        0x00000001U ///< Wait for all flags.
-#define osFlagsNoClear        0x00000002U ///< Do not clear flags which have been specified to wait for.
- 
-// Flags errors (returned by osThreadFlagsXxxx and osEventFlagsXxxx).
-#define osFlagsError          0x80000000U ///< Error indicator.
-#define osFlagsErrorUnknown   0xFFFFFFFFU ///< osError (-1).
-#define osFlagsErrorTimeout   0xFFFFFFFEU ///< osErrorTimeout (-2).
-#define osFlagsErrorResource  0xFFFFFFFDU ///< osErrorResource (-3).
-#define osFlagsErrorParameter 0xFFFFFFFCU ///< osErrorParameter (-4).
-#define osFlagsErrorISR       0xFFFFFFFAU ///< osErrorISR (-6).
- 
-// Thread attributes (attr_bits in \ref osThreadAttr_t).
-#define osThreadDetached      0x00000000U ///< Thread created in detached mode (default)
-#define osThreadJoinable      0x00000001U ///< Thread created in joinable mode
- 
-// Mutex attributes (attr_bits in \ref osMutexAttr_t).
-#define osMutexRecursive      0x00000001U ///< Recursive mutex.
-#define osMutexPrioInherit    0x00000002U ///< Priority inherit protocol.
-#define osMutexRobust         0x00000008U ///< Robust mutex.
- 
-/// Status code values returned by CMSIS-RTOS functions.
-typedef enum {
-  osOK                      =  0,         ///< Operation completed successfully.
-  osError                   = -1,         ///< Unspecified RTOS error: run-time error but no other error message fits.
-  osErrorTimeout            = -2,         ///< Operation not completed within the timeout period.
-  osErrorResource           = -3,         ///< Resource not available.
-  osErrorParameter          = -4,         ///< Parameter error.
-  osErrorNoMemory           = -5,         ///< System is out of memory: it was impossible to allocate or reserve memory for the operation.
-  osErrorISR                = -6,         ///< Not allowed in ISR context: the function cannot be called from interrupt service routines.
-  osStatusReserved          = 0x7FFFFFFF  ///< Prevents enum down-size compiler optimization.
-} osStatus_t;
- 
- 
-/// \details Thread ID identifies the thread.
-typedef void *osThreadId_t;
- 
-/// \details Timer ID identifies the timer.
-typedef void *osTimerId_t;
- 
-/// \details Event Flags ID identifies the event flags.
-typedef void *osEventFlagsId_t;
- 
-/// \details Mutex ID identifies the mutex.
-typedef void *osMutexId_t;
- 
-/// \details Semaphore ID identifies the semaphore.
-typedef void *osSemaphoreId_t;
- 
-/// \details Memory Pool ID identifies the memory pool.
-typedef void *osMemoryPoolId_t;
- 
-/// \details Message Queue ID identifies the message queue.
-typedef void *osMessageQueueId_t;
- 
- 
-#ifndef TZ_MODULEID_T
-#define TZ_MODULEID_T
-/// \details Data type that identifies secure software modules called by a process.
-typedef uint32_t TZ_ModuleId_t;
-#endif
- 
- 
-/// Attributes structure for thread.
-typedef struct {
-  const char                   *name;   ///< name of the thread
-  uint32_t                 attr_bits;   ///< attribute bits
-  void                      *cb_mem;    ///< memory for control block
-  uint32_t                   cb_size;   ///< size of provided memory for control block
-  void                   *stack_mem;    ///< memory for stack
-  uint32_t                stack_size;   ///< size of stack
-  osPriority_t              priority;   ///< initial thread priority (default: osPriorityNormal)
-  TZ_ModuleId_t            tz_module;   ///< TrustZone module identifier
-  uint32_t                  reserved;   ///< reserved (must be 0)
-} osThreadAttr_t;
- 
-/// Attributes structure for timer.
-typedef struct {
-  const char                   *name;   ///< name of the timer
-  uint32_t                 attr_bits;   ///< attribute bits
-  void                      *cb_mem;    ///< memory for control block
-  uint32_t                   cb_size;   ///< size of provided memory for control block
-} osTimerAttr_t;
- 
-/// Attributes structure for event flags.
-typedef struct {
-  const char                   *name;   ///< name of the event flags
-  uint32_t                 attr_bits;   ///< attribute bits
-  void                      *cb_mem;    ///< memory for control block
-  uint32_t                   cb_size;   ///< size of provided memory for control block
-} osEventFlagsAttr_t;
- 
-/// Attributes structure for mutex.
-typedef struct {
-  const char                   *name;   ///< name of the mutex
-  uint32_t                 attr_bits;   ///< attribute bits
-  void                      *cb_mem;    ///< memory for control block
-  uint32_t                   cb_size;   ///< size of provided memory for control block
-} osMutexAttr_t;
- 
-/// Attributes structure for semaphore.
-typedef struct {
-  const char                   *name;   ///< name of the semaphore
-  uint32_t                 attr_bits;   ///< attribute bits
-  void                      *cb_mem;    ///< memory for control block
-  uint32_t                   cb_size;   ///< size of provided memory for control block
-} osSemaphoreAttr_t;
- 
-/// Attributes structure for memory pool.
-typedef struct {
-  const char                   *name;   ///< name of the memory pool
-  uint32_t                 attr_bits;   ///< attribute bits
-  void                      *cb_mem;    ///< memory for control block
-  uint32_t                   cb_size;   ///< size of provided memory for control block
-  void                      *mp_mem;    ///< memory for data storage
-  uint32_t                   mp_size;   ///< size of provided memory for data storage 
-} osMemoryPoolAttr_t;
- 
-/// Attributes structure for message queue.
-typedef struct {
-  const char                   *name;   ///< name of the message queue
-  uint32_t                 attr_bits;   ///< attribute bits
-  void                      *cb_mem;    ///< memory for control block
-  uint32_t                   cb_size;   ///< size of provided memory for control block
-  void                      *mq_mem;    ///< memory for data storage
-  uint32_t                   mq_size;   ///< size of provided memory for data storage 
-} osMessageQueueAttr_t;
- 
- 
-//  ==== Kernel Management Functions ====
- 
-/// Initialize the RTOS Kernel.
-/// \return status code that indicates the execution status of the function.
-osStatus_t osKernelInitialize (void);
- 
-///  Get RTOS Kernel Information.
-/// \param[out]    version       pointer to buffer for retrieving version information.
-/// \param[out]    id_buf        pointer to buffer for retrieving kernel identification string.
-/// \param[in]     id_size       size of buffer for kernel identification string.
-/// \return status code that indicates the execution status of the function.
-osStatus_t osKernelGetInfo (osVersion_t *version, char *id_buf, uint32_t id_size);
- 
-/// Get the current RTOS Kernel state.
-/// \return current RTOS Kernel state.
-osKernelState_t osKernelGetState (void);
- 
-/// Start the RTOS Kernel scheduler.
-/// \return status code that indicates the execution status of the function.
-osStatus_t osKernelStart (void);
- 
-/// Lock the RTOS Kernel scheduler.
-/// \return previous lock state (1 - locked, 0 - not locked, error code if negative).
-int32_t osKernelLock (void);
- 
-/// Unlock the RTOS Kernel scheduler.
-/// \return previous lock state (1 - locked, 0 - not locked, error code if negative).
-int32_t osKernelUnlock (void);
- 
-/// Restore the RTOS Kernel scheduler lock state.
-/// \param[in]     lock          lock state obtained by \ref osKernelLock or \ref osKernelUnlock.
-/// \return new lock state (1 - locked, 0 - not locked, error code if negative).
-int32_t osKernelRestoreLock (int32_t lock);
- 
-/// Suspend the RTOS Kernel scheduler.
-/// \return time in ticks, for how long the system can sleep or power-down.
-uint32_t osKernelSuspend (void);
- 
-/// Resume the RTOS Kernel scheduler.
-/// \param[in]     sleep_ticks   time in ticks for how long the system was in sleep or power-down mode.
-void osKernelResume (uint32_t sleep_ticks);
- 
-/// Get the RTOS kernel tick count.
-/// \return RTOS kernel current tick count.
-uint32_t osKernelGetTickCount (void);
- 
-/// Get the RTOS kernel tick frequency.
-/// \return frequency of the kernel tick in hertz, i.e. kernel ticks per second.
-uint32_t osKernelGetTickFreq (void);
- 
-/// Get the RTOS kernel system timer count.
-/// \return RTOS kernel current system timer count as 32-bit value.
-uint32_t osKernelGetSysTimerCount (void);
- 
-/// Get the RTOS kernel system timer frequency.
-/// \return frequency of the system timer in hertz, i.e. timer ticks per second.
-uint32_t osKernelGetSysTimerFreq (void);
- 
- 
-//  ==== Thread Management Functions ====
- 
-/// Create a thread and add it to Active Threads.
-/// \param[in]     func          thread function.
-/// \param[in]     argument      pointer that is passed to the thread function as start argument.
-/// \param[in]     attr          thread attributes; NULL: default values.
-/// \return thread ID for reference by other functions or NULL in case of error.
-osThreadId_t osThreadNew (osThreadFunc_t func, void *argument, const osThreadAttr_t *attr);
- 
-/// Get name of a thread.
-/// \param[in]     thread_id     thread ID obtained by \ref osThreadNew or \ref osThreadGetId.
-/// \return name as null-terminated string.
-const char *osThreadGetName (osThreadId_t thread_id);
- 
-/// Return the thread ID of the current running thread.
-/// \return thread ID for reference by other functions or NULL in case of error.
-osThreadId_t osThreadGetId (void);
- 
-/// Get current thread state of a thread.
-/// \param[in]     thread_id     thread ID obtained by \ref osThreadNew or \ref osThreadGetId.
-/// \return current thread state of the specified thread.
-osThreadState_t osThreadGetState (osThreadId_t thread_id);
- 
-/// Get stack size of a thread.
-/// \param[in]     thread_id     thread ID obtained by \ref osThreadNew or \ref osThreadGetId.
-/// \return stack size in bytes.
-uint32_t osThreadGetStackSize (osThreadId_t thread_id);
- 
-/// Get available stack space of a thread based on stack watermark recording during execution.
-/// \param[in]     thread_id     thread ID obtained by \ref osThreadNew or \ref osThreadGetId.
-/// \return remaining stack space in bytes.
-uint32_t osThreadGetStackSpace (osThreadId_t thread_id);
- 
-/// Change priority of a thread.
-/// \param[in]     thread_id     thread ID obtained by \ref osThreadNew or \ref osThreadGetId.
-/// \param[in]     priority      new priority value for the thread function.
-/// \return status code that indicates the execution status of the function.
-osStatus_t osThreadSetPriority (osThreadId_t thread_id, osPriority_t priority);
- 
-/// Get current priority of a thread.
-/// \param[in]     thread_id     thread ID obtained by \ref osThreadNew or \ref osThreadGetId.
-/// \return current priority value of the specified thread.
-osPriority_t osThreadGetPriority (osThreadId_t thread_id);
- 
-/// Pass control to next thread that is in state \b READY.
-/// \return status code that indicates the execution status of the function.
-osStatus_t osThreadYield (void);
- 
-/// Suspend execution of a thread.
-/// \param[in]     thread_id     thread ID obtained by \ref osThreadNew or \ref osThreadGetId.
-/// \return status code that indicates the execution status of the function.
-osStatus_t osThreadSuspend (osThreadId_t thread_id);
- 
-/// Resume execution of a thread.
-/// \param[in]     thread_id     thread ID obtained by \ref osThreadNew or \ref osThreadGetId.
-/// \return status code that indicates the execution status of the function.
-osStatus_t osThreadResume (osThreadId_t thread_id);
- 
-/// Detach a thread (thread storage can be reclaimed when thread terminates).
-/// \param[in]     thread_id     thread ID obtained by \ref osThreadNew or \ref osThreadGetId.
-/// \return status code that indicates the execution status of the function.
-osStatus_t osThreadDetach (osThreadId_t thread_id);
- 
-/// Wait for specified thread to terminate.
-/// \param[in]     thread_id     thread ID obtained by \ref osThreadNew or \ref osThreadGetId.
-/// \return status code that indicates the execution status of the function.
-osStatus_t osThreadJoin (osThreadId_t thread_id);
- 
-/// Terminate execution of current running thread.
-__NO_RETURN void osThreadExit (void);
- 
-/// Terminate execution of a thread.
-/// \param[in]     thread_id     thread ID obtained by \ref osThreadNew or \ref osThreadGetId.
-/// \return status code that indicates the execution status of the function.
-osStatus_t osThreadTerminate (osThreadId_t thread_id);
- 
-/// Get number of active threads.
-/// \return number of active threads.
-uint32_t osThreadGetCount (void);
- 
-/// Enumerate active threads.
-/// \param[out]    thread_array  pointer to array for retrieving thread IDs.
-/// \param[in]     array_items   maximum number of items in array for retrieving thread IDs.
-/// \return number of enumerated threads.
-uint32_t osThreadEnumerate (osThreadId_t *thread_array, uint32_t array_items);
- 
- 
-//  ==== Thread Flags Functions ====
- 
-/// Set the specified Thread Flags of a thread.
-/// \param[in]     thread_id     thread ID obtained by \ref osThreadNew or \ref osThreadGetId.
-/// \param[in]     flags         specifies the flags of the thread that shall be set.
-/// \return thread flags after setting or error code if highest bit set.
-uint32_t osThreadFlagsSet (osThreadId_t thread_id, uint32_t flags);
- 
-/// Clear the specified Thread Flags of current running thread.
-/// \param[in]     flags         specifies the flags of the thread that shall be cleared.
-/// \return thread flags before clearing or error code if highest bit set.
-uint32_t osThreadFlagsClear (uint32_t flags);
- 
-/// Get the current Thread Flags of current running thread.
-/// \return current thread flags.
-uint32_t osThreadFlagsGet (void);
- 
-/// Wait for one or more Thread Flags of the current running thread to become signaled.
-/// \param[in]     flags         specifies the flags to wait for.
-/// \param[in]     options       specifies flags options (osFlagsXxxx).
-/// \param[in]     timeout       \ref CMSIS_RTOS_TimeOutValue or 0 in case of no time-out.
-/// \return thread flags before clearing or error code if highest bit set.
-uint32_t osThreadFlagsWait (uint32_t flags, uint32_t options, uint32_t timeout);
- 
- 
-//  ==== Generic Wait Functions ====
- 
-/// Wait for Timeout (Time Delay).
-/// \param[in]     ticks         \ref CMSIS_RTOS_TimeOutValue "time ticks" value
-/// \return status code that indicates the execution status of the function.
-osStatus_t osDelay (uint32_t ticks);
- 
-/// Wait until specified time.
-/// \param[in]     ticks         absolute time in ticks
-/// \return status code that indicates the execution status of the function.
-osStatus_t osDelayUntil (uint32_t ticks);
- 
- 
-//  ==== Timer Management Functions ====
- 
-/// Create and Initialize a timer.
-/// \param[in]     func          function pointer to callback function.
-/// \param[in]     type          \ref osTimerOnce for one-shot or \ref osTimerPeriodic for periodic behavior.
-/// \param[in]     argument      argument to the timer callback function.
-/// \param[in]     attr          timer attributes; NULL: default values.
-/// \return timer ID for reference by other functions or NULL in case of error.
-osTimerId_t osTimerNew (osTimerFunc_t func, osTimerType_t type, void *argument, const osTimerAttr_t *attr);
- 
-/// Get name of a timer.
-/// \param[in]     timer_id      timer ID obtained by \ref osTimerNew.
-/// \return name as null-terminated string.
-const char *osTimerGetName (osTimerId_t timer_id);
- 
-/// Start or restart a timer.
-/// \param[in]     timer_id      timer ID obtained by \ref osTimerNew.
-/// \param[in]     ticks         \ref CMSIS_RTOS_TimeOutValue "time ticks" value of the timer.
-/// \return status code that indicates the execution status of the function.
-osStatus_t osTimerStart (osTimerId_t timer_id, uint32_t ticks);
- 
-/// Stop a timer.
-/// \param[in]     timer_id      timer ID obtained by \ref osTimerNew.
-/// \return status code that indicates the execution status of the function.
-osStatus_t osTimerStop (osTimerId_t timer_id);
- 
-/// Check if a timer is running.
-/// \param[in]     timer_id      timer ID obtained by \ref osTimerNew.
-/// \return 0 not running, 1 running.
-uint32_t osTimerIsRunning (osTimerId_t timer_id);
- 
-/// Delete a timer.
-/// \param[in]     timer_id      timer ID obtained by \ref osTimerNew.
-/// \return status code that indicates the execution status of the function.
-osStatus_t osTimerDelete (osTimerId_t timer_id);
- 
- 
-//  ==== Event Flags Management Functions ====
- 
-/// Create and Initialize an Event Flags object.
-/// \param[in]     attr          event flags attributes; NULL: default values.
-/// \return event flags ID for reference by other functions or NULL in case of error.
-osEventFlagsId_t osEventFlagsNew (const osEventFlagsAttr_t *attr);
- 
-/// Get name of an Event Flags object.
-/// \param[in]     ef_id         event flags ID obtained by \ref osEventFlagsNew.
-/// \return name as null-terminated string.
-const char *osEventFlagsGetName (osEventFlagsId_t ef_id);
- 
-/// Set the specified Event Flags.
-/// \param[in]     ef_id         event flags ID obtained by \ref osEventFlagsNew.
-/// \param[in]     flags         specifies the flags that shall be set.
-/// \return event flags after setting or error code if highest bit set.
-uint32_t osEventFlagsSet (osEventFlagsId_t ef_id, uint32_t flags);
- 
-/// Clear the specified Event Flags.
-/// \param[in]     ef_id         event flags ID obtained by \ref osEventFlagsNew.
-/// \param[in]     flags         specifies the flags that shall be cleared.
-/// \return event flags before clearing or error code if highest bit set.
-uint32_t osEventFlagsClear (osEventFlagsId_t ef_id, uint32_t flags);
- 
-/// Get the current Event Flags.
-/// \param[in]     ef_id         event flags ID obtained by \ref osEventFlagsNew.
-/// \return current event flags.
-uint32_t osEventFlagsGet (osEventFlagsId_t ef_id);
- 
-/// Wait for one or more Event Flags to become signaled.
-/// \param[in]     ef_id         event flags ID obtained by \ref osEventFlagsNew.
-/// \param[in]     flags         specifies the flags to wait for.
-/// \param[in]     options       specifies flags options (osFlagsXxxx).
-/// \param[in]     timeout       \ref CMSIS_RTOS_TimeOutValue or 0 in case of no time-out.
-/// \return event flags before clearing or error code if highest bit set.
-uint32_t osEventFlagsWait (osEventFlagsId_t ef_id, uint32_t flags, uint32_t options, uint32_t timeout);
- 
-/// Delete an Event Flags object.
-/// \param[in]     ef_id         event flags ID obtained by \ref osEventFlagsNew.
-/// \return status code that indicates the execution status of the function.
-osStatus_t osEventFlagsDelete (osEventFlagsId_t ef_id);
- 
- 
-//  ==== Mutex Management Functions ====
- 
-/// Create and Initialize a Mutex object.
-/// \param[in]     attr          mutex attributes; NULL: default values.
-/// \return mutex ID for reference by other functions or NULL in case of error.
-osMutexId_t osMutexNew (const osMutexAttr_t *attr);
- 
-/// Get name of a Mutex object.
-/// \param[in]     mutex_id      mutex ID obtained by \ref osMutexNew.
-/// \return name as null-terminated string.
-const char *osMutexGetName (osMutexId_t mutex_id);
- 
-/// Acquire a Mutex or timeout if it is locked.
-/// \param[in]     mutex_id      mutex ID obtained by \ref osMutexNew.
-/// \param[in]     timeout       \ref CMSIS_RTOS_TimeOutValue or 0 in case of no time-out.
-/// \return status code that indicates the execution status of the function.
-osStatus_t osMutexAcquire (osMutexId_t mutex_id, uint32_t timeout);
- 
-/// Release a Mutex that was acquired by \ref osMutexAcquire.
-/// \param[in]     mutex_id      mutex ID obtained by \ref osMutexNew.
-/// \return status code that indicates the execution status of the function.
-osStatus_t osMutexRelease (osMutexId_t mutex_id);
- 
-/// Get Thread which owns a Mutex object.
-/// \param[in]     mutex_id      mutex ID obtained by \ref osMutexNew.
-/// \return thread ID of owner thread or NULL when mutex was not acquired.
-osThreadId_t osMutexGetOwner (osMutexId_t mutex_id);
- 
-/// Delete a Mutex object.
-/// \param[in]     mutex_id      mutex ID obtained by \ref osMutexNew.
-/// \return status code that indicates the execution status of the function.
-osStatus_t osMutexDelete (osMutexId_t mutex_id);
- 
- 
-//  ==== Semaphore Management Functions ====
- 
-/// Create and Initialize a Semaphore object.
-/// \param[in]     max_count     maximum number of available tokens.
-/// \param[in]     initial_count initial number of available tokens.
-/// \param[in]     attr          semaphore attributes; NULL: default values.
-/// \return semaphore ID for reference by other functions or NULL in case of error.
-osSemaphoreId_t osSemaphoreNew (uint32_t max_count, uint32_t initial_count, const osSemaphoreAttr_t *attr);
- 
-/// Get name of a Semaphore object.
-/// \param[in]     semaphore_id  semaphore ID obtained by \ref osSemaphoreNew.
-/// \return name as null-terminated string.
-const char *osSemaphoreGetName (osSemaphoreId_t semaphore_id);
- 
-/// Acquire a Semaphore token or timeout if no tokens are available.
-/// \param[in]     semaphore_id  semaphore ID obtained by \ref osSemaphoreNew.
-/// \param[in]     timeout       \ref CMSIS_RTOS_TimeOutValue or 0 in case of no time-out.
-/// \return status code that indicates the execution status of the function.
-osStatus_t osSemaphoreAcquire (osSemaphoreId_t semaphore_id, uint32_t timeout);
- 
-/// Release a Semaphore token up to the initial maximum count.
-/// \param[in]     semaphore_id  semaphore ID obtained by \ref osSemaphoreNew.
-/// \return status code that indicates the execution status of the function.
-osStatus_t osSemaphoreRelease (osSemaphoreId_t semaphore_id);
- 
-/// Get current Semaphore token count.
-/// \param[in]     semaphore_id  semaphore ID obtained by \ref osSemaphoreNew.
-/// \return number of tokens available.
-uint32_t osSemaphoreGetCount (osSemaphoreId_t semaphore_id);
- 
-/// Delete a Semaphore object.
-/// \param[in]     semaphore_id  semaphore ID obtained by \ref osSemaphoreNew.
-/// \return status code that indicates the execution status of the function.
-osStatus_t osSemaphoreDelete (osSemaphoreId_t semaphore_id);
- 
- 
-//  ==== Memory Pool Management Functions ====
- 
-/// Create and Initialize a Memory Pool object.
-/// \param[in]     block_count   maximum number of memory blocks in memory pool.
-/// \param[in]     block_size    memory block size in bytes.
-/// \param[in]     attr          memory pool attributes; NULL: default values.
-/// \return memory pool ID for reference by other functions or NULL in case of error.
-osMemoryPoolId_t osMemoryPoolNew (uint32_t block_count, uint32_t block_size, const osMemoryPoolAttr_t *attr);
- 
-/// Get name of a Memory Pool object.
-/// \param[in]     mp_id         memory pool ID obtained by \ref osMemoryPoolNew.
-/// \return name as null-terminated string.
-const char *osMemoryPoolGetName (osMemoryPoolId_t mp_id);
- 
-/// Allocate a memory block from a Memory Pool.
-/// \param[in]     mp_id         memory pool ID obtained by \ref osMemoryPoolNew.
-/// \param[in]     timeout       \ref CMSIS_RTOS_TimeOutValue or 0 in case of no time-out.
-/// \return address of the allocated memory block or NULL in case of no memory is available.
-void *osMemoryPoolAlloc (osMemoryPoolId_t mp_id, uint32_t timeout);
- 
-/// Return an allocated memory block back to a Memory Pool.
-/// \param[in]     mp_id         memory pool ID obtained by \ref osMemoryPoolNew.
-/// \param[in]     block         address of the allocated memory block to be returned to the memory pool.
-/// \return status code that indicates the execution status of the function.
-osStatus_t osMemoryPoolFree (osMemoryPoolId_t mp_id, void *block);
- 
-/// Get maximum number of memory blocks in a Memory Pool.
-/// \param[in]     mp_id         memory pool ID obtained by \ref osMemoryPoolNew.
-/// \return maximum number of memory blocks.
-uint32_t osMemoryPoolGetCapacity (osMemoryPoolId_t mp_id);
- 
-/// Get memory block size in a Memory Pool.
-/// \param[in]     mp_id         memory pool ID obtained by \ref osMemoryPoolNew.
-/// \return memory block size in bytes.
-uint32_t osMemoryPoolGetBlockSize (osMemoryPoolId_t mp_id);
- 
-/// Get number of memory blocks used in a Memory Pool.
-/// \param[in]     mp_id         memory pool ID obtained by \ref osMemoryPoolNew.
-/// \return number of memory blocks used.
-uint32_t osMemoryPoolGetCount (osMemoryPoolId_t mp_id);
- 
-/// Get number of memory blocks available in a Memory Pool.
-/// \param[in]     mp_id         memory pool ID obtained by \ref osMemoryPoolNew.
-/// \return number of memory blocks available.
-uint32_t osMemoryPoolGetSpace (osMemoryPoolId_t mp_id);
- 
-/// Delete a Memory Pool object.
-/// \param[in]     mp_id         memory pool ID obtained by \ref osMemoryPoolNew.
-/// \return status code that indicates the execution status of the function.
-osStatus_t osMemoryPoolDelete (osMemoryPoolId_t mp_id);
- 
- 
-//  ==== Message Queue Management Functions ====
- 
-/// Create and Initialize a Message Queue object.
-/// \param[in]     msg_count     maximum number of messages in queue.
-/// \param[in]     msg_size      maximum message size in bytes.
-/// \param[in]     attr          message queue attributes; NULL: default values.
-/// \return message queue ID for reference by other functions or NULL in case of error.
-osMessageQueueId_t osMessageQueueNew (uint32_t msg_count, uint32_t msg_size, const osMessageQueueAttr_t *attr);
- 
-/// Get name of a Message Queue object.
-/// \param[in]     mq_id         message queue ID obtained by \ref osMessageQueueNew.
-/// \return name as null-terminated string.
-const char *osMessageQueueGetName (osMessageQueueId_t mq_id);
- 
-/// Put a Message into a Queue or timeout if Queue is full.
-/// \param[in]     mq_id         message queue ID obtained by \ref osMessageQueueNew.
-/// \param[in]     msg_ptr       pointer to buffer with message to put into a queue.
-/// \param[in]     msg_prio      message priority.
-/// \param[in]     timeout       \ref CMSIS_RTOS_TimeOutValue or 0 in case of no time-out.
-/// \return status code that indicates the execution status of the function.
-osStatus_t osMessageQueuePut (osMessageQueueId_t mq_id, const void *msg_ptr, uint8_t msg_prio, uint32_t timeout);
- 
-/// Get a Message from a Queue or timeout if Queue is empty.
-/// \param[in]     mq_id         message queue ID obtained by \ref osMessageQueueNew.
-/// \param[out]    msg_ptr       pointer to buffer for message to get from a queue.
-/// \param[out]    msg_prio      pointer to buffer for message priority or NULL.
-/// \param[in]     timeout       \ref CMSIS_RTOS_TimeOutValue or 0 in case of no time-out.
-/// \return status code that indicates the execution status of the function.
-osStatus_t osMessageQueueGet (osMessageQueueId_t mq_id, void *msg_ptr, uint8_t *msg_prio, uint32_t timeout);
- 
-/// Get maximum number of messages in a Message Queue.
-/// \param[in]     mq_id         message queue ID obtained by \ref osMessageQueueNew.
-/// \return maximum number of messages.
-uint32_t osMessageQueueGetCapacity (osMessageQueueId_t mq_id);
- 
-/// Get maximum message size in a Memory Pool.
-/// \param[in]     mq_id         message queue ID obtained by \ref osMessageQueueNew.
-/// \return maximum message size in bytes.
-uint32_t osMessageQueueGetMsgSize (osMessageQueueId_t mq_id);
- 
-/// Get number of queued messages in a Message Queue.
-/// \param[in]     mq_id         message queue ID obtained by \ref osMessageQueueNew.
-/// \return number of queued messages.
-uint32_t osMessageQueueGetCount (osMessageQueueId_t mq_id);
- 
-/// Get number of available slots for messages in a Message Queue.
-/// \param[in]     mq_id         message queue ID obtained by \ref osMessageQueueNew.
-/// \return number of available slots for messages.
-uint32_t osMessageQueueGetSpace (osMessageQueueId_t mq_id);
- 
-/// Reset a Message Queue to initial empty state.
-/// \param[in]     mq_id         message queue ID obtained by \ref osMessageQueueNew.
-/// \return status code that indicates the execution status of the function.
-osStatus_t osMessageQueueReset (osMessageQueueId_t mq_id);
- 
-/// Delete a Message Queue object.
-/// \param[in]     mq_id         message queue ID obtained by \ref osMessageQueueNew.
-/// \return status code that indicates the execution status of the function.
-osStatus_t osMessageQueueDelete (osMessageQueueId_t mq_id);
- 
- 
-#ifdef  __cplusplus
-}
-#endif
- 
-#endif  // CMSIS_OS2_H_
diff --git a/app_broker/CMSIS/RTOS2/RTX/Config/RTX_Config.c b/app_broker/CMSIS/RTOS2/RTX/Config/RTX_Config.c
deleted file mode 100644
index e487101..0000000
--- a/app_broker/CMSIS/RTOS2/RTX/Config/RTX_Config.c
+++ /dev/null
@@ -1,64 +0,0 @@
-/*
- * Copyright (c) 2013-2018 Arm Limited. All rights reserved.
- *
- * SPDX-License-Identifier: Apache-2.0
- *
- * Licensed under the Apache License, Version 2.0 (the License); you may
- * not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an AS IS BASIS, WITHOUT
- * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- * -----------------------------------------------------------------------------
- *
- * $Revision:   V5.1.0
- *
- * Project:     CMSIS-RTOS RTX
- * Title:       RTX Configuration
- *
- * -----------------------------------------------------------------------------
- */
- 
-#include "cmsis_compiler.h"
-#include "rtx_os.h"
- 
-// OS Idle Thread
-__WEAK __NO_RETURN void osRtxIdleThread (void *argument) {
-  (void)argument;
-
-  for (;;) {}
-}
- 
-// OS Error Callback function
-__WEAK uint32_t osRtxErrorNotify (uint32_t code, void *object_id) {
-  (void)object_id;
-
-  switch (code) {
-    case osRtxErrorStackUnderflow:
-      // Stack overflow detected for thread (thread_id=object_id)
-      break;
-    case osRtxErrorISRQueueOverflow:
-      // ISR Queue overflow detected when inserting object (object_id)
-      break;
-    case osRtxErrorTimerQueueOverflow:
-      // User Timer Callback Queue overflow detected for timer (timer_id=object_id)
-      break;
-    case osRtxErrorClibSpace:
-      // Standard C/C++ library libspace not available: increase OS_THREAD_LIBSPACE_NUM
-      break;
-    case osRtxErrorClibMutex:
-      // Standard C/C++ library mutex initialization failed
-      break;
-    default:
-      // Reserved
-      break;
-  }
-  for (;;) {}
-//return 0U;
-}
diff --git a/app_broker/CMSIS/RTOS2/RTX/Config/RTX_Config.h b/app_broker/CMSIS/RTOS2/RTX/Config/RTX_Config.h
deleted file mode 100644
index 1671aab..0000000
--- a/app_broker/CMSIS/RTOS2/RTX/Config/RTX_Config.h
+++ /dev/null
@@ -1,578 +0,0 @@
-/*
- * Copyright (c) 2013-2019 Arm Limited. All rights reserved.
- *
- * SPDX-License-Identifier: Apache-2.0
- *
- * Licensed under the Apache License, Version 2.0 (the License); you may
- * not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an AS IS BASIS, WITHOUT
- * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- * -----------------------------------------------------------------------------
- *
- * $Revision:   V5.5.0
- *
- * Project:     CMSIS-RTOS RTX
- * Title:       RTX Configuration definitions
- *
- * -----------------------------------------------------------------------------
- */
- 
-#ifndef RTX_CONFIG_H_
-#define RTX_CONFIG_H_
- 
-#ifdef   _RTE_
-#include "RTE_Components.h"
-#ifdef    RTE_RTX_CONFIG_H
-#include  RTE_RTX_CONFIG_H
-#endif
-#endif
- 
-//-------- <<< Use Configuration Wizard in Context Menu >>> --------------------
- 
-// <h>System Configuration
-// =======================
- 
-//   <o>Global Dynamic Memory size [bytes] <0-1073741824:8>
-//   <i> Defines the combined global dynamic memory size.
-//   <i> Default: 4096
-#ifndef OS_DYNAMIC_MEM_SIZE
-#define OS_DYNAMIC_MEM_SIZE         8192
-#endif
- 
-//   <o>Kernel Tick Frequency [Hz] <1-1000000>
-//   <i> Defines base time unit for delays and timeouts.
-//   <i> Default: 1000 (1ms tick)
-#ifndef OS_TICK_FREQ
-#define OS_TICK_FREQ                1000
-#endif
- 
-//   <e>Round-Robin Thread switching
-//   <i> Enables Round-Robin Thread switching.
-#ifndef OS_ROBIN_ENABLE
-#define OS_ROBIN_ENABLE             1
-#endif
- 
-//     <o>Round-Robin Timeout <1-1000>
-//     <i> Defines how many ticks a thread will execute before a thread switch.
-//     <i> Default: 5
-#ifndef OS_ROBIN_TIMEOUT
-#define OS_ROBIN_TIMEOUT            5
-#endif
- 
-//   </e>
- 
-//   <o>ISR FIFO Queue 
-//      <4=>  4 entries    <8=>   8 entries   <12=>  12 entries   <16=>  16 entries
-//     <24=> 24 entries   <32=>  32 entries   <48=>  48 entries   <64=>  64 entries
-//     <96=> 96 entries  <128=> 128 entries  <196=> 196 entries  <256=> 256 entries
-//   <i> RTOS Functions called from ISR store requests to this buffer.
-//   <i> Default: 16 entries
-#ifndef OS_ISR_FIFO_QUEUE
-#define OS_ISR_FIFO_QUEUE           16
-#endif
- 
-//   <q>Object Memory usage counters
-//   <i> Enables object memory usage counters (requires RTX source variant).
-#ifndef OS_OBJ_MEM_USAGE
-#define OS_OBJ_MEM_USAGE            0
-#endif
- 
-// </h>
- 
-// <h>Thread Configuration
-// =======================
- 
-//   <e>Object specific Memory allocation
-//   <i> Enables object specific memory allocation.
-#ifndef OS_THREAD_OBJ_MEM
-#define OS_THREAD_OBJ_MEM           0
-#endif
- 
-//     <o>Number of user Threads <1-1000>
-//     <i> Defines maximum number of user threads that can be active at the same time.
-//     <i> Applies to user threads with system provided memory for control blocks.
-#ifndef OS_THREAD_NUM
-#define OS_THREAD_NUM               1
-#endif
- 
-//     <o>Number of user Threads with default Stack size <0-1000>
-//     <i> Defines maximum number of user threads with default stack size.
-//     <i> Applies to user threads with zero stack size specified.
-#ifndef OS_THREAD_DEF_STACK_NUM
-#define OS_THREAD_DEF_STACK_NUM     0
-#endif
- 
-//     <o>Total Stack size [bytes] for user Threads with user-provided Stack size <0-1073741824:8>
-//     <i> Defines the combined stack size for user threads with user-provided stack size.
-//     <i> Applies to user threads with user-provided stack size and system provided memory for stack.
-//     <i> Default: 0
-#ifndef OS_THREAD_USER_STACK_SIZE
-#define OS_THREAD_USER_STACK_SIZE   0
-#endif
- 
-//   </e>
- 
-//   <o>Default Thread Stack size [bytes] <96-1073741824:8>
-//   <i> Defines stack size for threads with zero stack size specified.
-//   <i> Default: 256
-#ifndef OS_STACK_SIZE
-#define OS_STACK_SIZE               256
-#endif
- 
-//   <o>Idle Thread Stack size [bytes] <72-1073741824:8>
-//   <i> Defines stack size for Idle thread.
-//   <i> Default: 256
-#ifndef OS_IDLE_THREAD_STACK_SIZE
-#define OS_IDLE_THREAD_STACK_SIZE   256
-#endif
- 
-//   <o>Idle Thread TrustZone Module Identifier
-//   <i> Defines TrustZone Thread Context Management Identifier.
-//   <i> Applies only to cores with TrustZone technology.
-//   <i> Default: 0 (not used)
-#ifndef OS_IDLE_THREAD_TZ_MOD_ID
-#define OS_IDLE_THREAD_TZ_MOD_ID    0
-#endif
- 
-//   <q>Stack overrun checking
-//   <i> Enables stack overrun check at thread switch.
-//   <i> Enabling this option increases slightly the execution time of a thread switch.
-#ifndef OS_STACK_CHECK
-#define OS_STACK_CHECK              1
-#endif
- 
-//   <q>Stack usage watermark
-//   <i> Initializes thread stack with watermark pattern for analyzing stack usage.
-//   <i> Enabling this option increases significantly the execution time of thread creation.
-#ifndef OS_STACK_WATERMARK
-#define OS_STACK_WATERMARK          0
-#endif
- 
-//   <o>Processor mode for Thread execution 
-//     <0=> Unprivileged mode 
-//     <1=> Privileged mode
-//   <i> Default: Privileged mode
-#ifndef OS_PRIVILEGE_MODE
-#define OS_PRIVILEGE_MODE           1
-#endif
- 
-// </h>
- 
-// <h>Timer Configuration
-// ======================
- 
-//   <e>Object specific Memory allocation
-//   <i> Enables object specific memory allocation.
-#ifndef OS_TIMER_OBJ_MEM
-#define OS_TIMER_OBJ_MEM            0
-#endif
- 
-//     <o>Number of Timer objects <1-1000>
-//     <i> Defines maximum number of objects that can be active at the same time.
-//     <i> Applies to objects with system provided memory for control blocks.
-#ifndef OS_TIMER_NUM
-#define OS_TIMER_NUM                1
-#endif
- 
-//   </e>
- 
-//   <o>Timer Thread Priority
-//      <8=> Low
-//     <16=> Below Normal  <24=> Normal  <32=> Above Normal
-//     <40=> High
-//     <48=> Realtime
-//   <i> Defines priority for timer thread
-//   <i> Default: High
-#ifndef OS_TIMER_THREAD_PRIO
-#define OS_TIMER_THREAD_PRIO        40
-#endif
- 
-//   <o>Timer Thread Stack size [bytes] <0-1073741824:8>
-//   <i> Defines stack size for Timer thread.
-//   <i> May be set to 0 when timers are not used.
-//   <i> Default: 256
-#ifndef OS_TIMER_THREAD_STACK_SIZE
-#define OS_TIMER_THREAD_STACK_SIZE  256
-#endif
- 
-//   <o>Timer Thread TrustZone Module Identifier
-//   <i> Defines TrustZone Thread Context Management Identifier.
-//   <i> Applies only to cores with TrustZone technology.
-//   <i> Default: 0 (not used)
-#ifndef OS_TIMER_THREAD_TZ_MOD_ID
-#define OS_TIMER_THREAD_TZ_MOD_ID   0
-#endif
- 
-//   <o>Timer Callback Queue entries <0-256>
-//   <i> Number of concurrent active timer callback functions.
-//   <i> May be set to 0 when timers are not used.
-//   <i> Default: 4
-#ifndef OS_TIMER_CB_QUEUE
-#define OS_TIMER_CB_QUEUE           4
-#endif
- 
-// </h>
- 
-// <h>Event Flags Configuration
-// ============================
- 
-//   <e>Object specific Memory allocation
-//   <i> Enables object specific memory allocation.
-#ifndef OS_EVFLAGS_OBJ_MEM
-#define OS_EVFLAGS_OBJ_MEM          0
-#endif
- 
-//     <o>Number of Event Flags objects <1-1000>
-//     <i> Defines maximum number of objects that can be active at the same time.
-//     <i> Applies to objects with system provided memory for control blocks.
-#ifndef OS_EVFLAGS_NUM
-#define OS_EVFLAGS_NUM              1
-#endif
- 
-//   </e>
- 
-// </h>
- 
-// <h>Mutex Configuration
-// ======================
- 
-//   <e>Object specific Memory allocation
-//   <i> Enables object specific memory allocation.
-#ifndef OS_MUTEX_OBJ_MEM
-#define OS_MUTEX_OBJ_MEM            0
-#endif
- 
-//     <o>Number of Mutex objects <1-1000>
-//     <i> Defines maximum number of objects that can be active at the same time.
-//     <i> Applies to objects with system provided memory for control blocks.
-#ifndef OS_MUTEX_NUM
-#define OS_MUTEX_NUM                1
-#endif
- 
-//   </e>
- 
-// </h>
- 
-// <h>Semaphore Configuration
-// ==========================
- 
-//   <e>Object specific Memory allocation
-//   <i> Enables object specific memory allocation.
-#ifndef OS_SEMAPHORE_OBJ_MEM
-#define OS_SEMAPHORE_OBJ_MEM        0
-#endif
- 
-//     <o>Number of Semaphore objects <1-1000>
-//     <i> Defines maximum number of objects that can be active at the same time.
-//     <i> Applies to objects with system provided memory for control blocks.
-#ifndef OS_SEMAPHORE_NUM
-#define OS_SEMAPHORE_NUM            1
-#endif
- 
-//   </e>
- 
-// </h>
- 
-// <h>Memory Pool Configuration
-// ============================
- 
-//   <e>Object specific Memory allocation
-//   <i> Enables object specific memory allocation.
-#ifndef OS_MEMPOOL_OBJ_MEM
-#define OS_MEMPOOL_OBJ_MEM          0
-#endif
- 
-//     <o>Number of Memory Pool objects <1-1000>
-//     <i> Defines maximum number of objects that can be active at the same time.
-//     <i> Applies to objects with system provided memory for control blocks.
-#ifndef OS_MEMPOOL_NUM
-#define OS_MEMPOOL_NUM              1
-#endif
- 
-//     <o>Data Storage Memory size [bytes] <0-1073741824:8>
-//     <i> Defines the combined data storage memory size.
-//     <i> Applies to objects with system provided memory for data storage.
-//     <i> Default: 0
-#ifndef OS_MEMPOOL_DATA_SIZE
-#define OS_MEMPOOL_DATA_SIZE        0
-#endif
- 
-//   </e>
- 
-// </h>
- 
-// <h>Message Queue Configuration
-// ==============================
- 
-//   <e>Object specific Memory allocation
-//   <i> Enables object specific memory allocation.
-#ifndef OS_MSGQUEUE_OBJ_MEM
-#define OS_MSGQUEUE_OBJ_MEM         0
-#endif
- 
-//     <o>Number of Message Queue objects <1-1000>
-//     <i> Defines maximum number of objects that can be active at the same time.
-//     <i> Applies to objects with system provided memory for control blocks.
-#ifndef OS_MSGQUEUE_NUM
-#define OS_MSGQUEUE_NUM             1
-#endif
- 
-//     <o>Data Storage Memory size [bytes] <0-1073741824:8>
-//     <i> Defines the combined data storage memory size.
-//     <i> Applies to objects with system provided memory for data storage.
-//     <i> Default: 0
-#ifndef OS_MSGQUEUE_DATA_SIZE
-#define OS_MSGQUEUE_DATA_SIZE       0
-#endif
- 
-//   </e>
- 
-// </h>
- 
-// <h>Event Recorder Configuration
-// ===============================
- 
-//   <e>Global Initialization
-//   <i> Initialize Event Recorder during 'osKernelInitialize'.
-#ifndef OS_EVR_INIT
-#define OS_EVR_INIT                 0
-#endif
- 
-//     <q>Start recording
-//     <i> Start event recording after initialization.
-#ifndef OS_EVR_START
-#define OS_EVR_START                1
-#endif
- 
-//     <h>Global Event Filter Setup
-//     <i> Initial recording level applied to all components.
-//       <o.0>Error events
-//       <o.1>API function call events
-//       <o.2>Operation events
-//       <o.3>Detailed operation events
-//     </h>
-#ifndef OS_EVR_LEVEL
-#define OS_EVR_LEVEL                0x00U
-#endif
- 
-//     <h>RTOS Event Filter Setup
-//     <i> Recording levels for RTX components.
-//     <i> Only applicable if events for the respective component are generated.
- 
-//       <h>Memory Management
-//       <i> Recording level for Memory Management events.
-//         <o.0>Error events
-//         <o.1>API function call events
-//         <o.2>Operation events
-//         <o.3>Detailed operation events
-//       </h>
-#ifndef OS_EVR_MEMORY_LEVEL 
-#define OS_EVR_MEMORY_LEVEL         0x01U
-#endif
- 
-//       <h>Kernel
-//       <i> Recording level for Kernel events.
-//         <o.0>Error events
-//         <o.1>API function call events
-//         <o.2>Operation events
-//         <o.3>Detailed operation events
-//       </h>
-#ifndef OS_EVR_KERNEL_LEVEL 
-#define OS_EVR_KERNEL_LEVEL         0x01U
-#endif
- 
-//       <h>Thread
-//       <i> Recording level for Thread events.
-//         <o.0>Error events
-//         <o.1>API function call events
-//         <o.2>Operation events
-//         <o.3>Detailed operation events
-//       </h>
-#ifndef OS_EVR_THREAD_LEVEL 
-#define OS_EVR_THREAD_LEVEL         0x05U
-#endif
- 
-//       <h>Generic Wait
-//       <i> Recording level for Generic Wait events.
-//         <o.0>Error events
-//         <o.1>API function call events
-//         <o.2>Operation events
-//         <o.3>Detailed operation events
-//       </h>
-#ifndef OS_EVR_WAIT_LEVEL 
-#define OS_EVR_WAIT_LEVEL           0x01U
-#endif
- 
-//       <h>Thread Flags
-//       <i> Recording level for Thread Flags events.
-//         <o.0>Error events
-//         <o.1>API function call events
-//         <o.2>Operation events
-//         <o.3>Detailed operation events
-//       </h>
-#ifndef OS_EVR_THFLAGS_LEVEL 
-#define OS_EVR_THFLAGS_LEVEL        0x01U
-#endif
- 
-//       <h>Event Flags
-//       <i> Recording level for Event Flags events.
-//         <o.0>Error events
-//         <o.1>API function call events
-//         <o.2>Operation events
-//         <o.3>Detailed operation events
-//       </h>
-#ifndef OS_EVR_EVFLAGS_LEVEL 
-#define OS_EVR_EVFLAGS_LEVEL        0x01U
-#endif
- 
-//       <h>Timer
-//       <i> Recording level for Timer events.
-//         <o.0>Error events
-//         <o.1>API function call events
-//         <o.2>Operation events
-//         <o.3>Detailed operation events
-//       </h>
-#ifndef OS_EVR_TIMER_LEVEL 
-#define OS_EVR_TIMER_LEVEL          0x01U
-#endif
- 
-//       <h>Mutex
-//       <i> Recording level for Mutex events.
-//         <o.0>Error events
-//         <o.1>API function call events
-//         <o.2>Operation events
-//         <o.3>Detailed operation events
-//       </h>
-#ifndef OS_EVR_MUTEX_LEVEL 
-#define OS_EVR_MUTEX_LEVEL          0x01U
-#endif
- 
-//       <h>Semaphore
-//       <i> Recording level for Semaphore events.
-//         <o.0>Error events
-//         <o.1>API function call events
-//         <o.2>Operation events
-//         <o.3>Detailed operation events
-//       </h>
-#ifndef OS_EVR_SEMAPHORE_LEVEL 
-#define OS_EVR_SEMAPHORE_LEVEL      0x01U
-#endif
- 
-//       <h>Memory Pool
-//       <i> Recording level for Memory Pool events.
-//         <o.0>Error events
-//         <o.1>API function call events
-//         <o.2>Operation events
-//         <o.3>Detailed operation events
-//       </h>
-#ifndef OS_EVR_MEMPOOL_LEVEL 
-#define OS_EVR_MEMPOOL_LEVEL        0x01U
-#endif
- 
-//       <h>Message Queue
-//       <i> Recording level for Message Queue events.
-//         <o.0>Error events
-//         <o.1>API function call events
-//         <o.2>Operation events
-//         <o.3>Detailed operation events
-//       </h>
-#ifndef OS_EVR_MSGQUEUE_LEVEL 
-#define OS_EVR_MSGQUEUE_LEVEL       0x01U
-#endif
- 
-//     </h>
- 
-//   </e>
- 
-//   <h>RTOS Event Generation
-//   <i> Enables event generation for RTX components (requires RTX source variant).
- 
-//     <q>Memory Management
-//     <i> Enables Memory Management event generation.
-#ifndef OS_EVR_MEMORY
-#define OS_EVR_MEMORY               1
-#endif
- 
-//     <q>Kernel
-//     <i> Enables Kernel event generation.
-#ifndef OS_EVR_KERNEL
-#define OS_EVR_KERNEL               1
-#endif
- 
-//     <q>Thread
-//     <i> Enables Thread event generation.
-#ifndef OS_EVR_THREAD
-#define OS_EVR_THREAD               1
-#endif
- 
-//     <q>Generic Wait
-//     <i> Enables Generic Wait event generation.
-#ifndef OS_EVR_WAIT
-#define OS_EVR_WAIT                 1
-#endif
- 
-//     <q>Thread Flags
-//     <i> Enables Thread Flags event generation.
-#ifndef OS_EVR_THFLAGS
-#define OS_EVR_THFLAGS              1
-#endif
- 
-//     <q>Event Flags
-//     <i> Enables Event Flags event generation.
-#ifndef OS_EVR_EVFLAGS
-#define OS_EVR_EVFLAGS              1
-#endif
- 
-//     <q>Timer
-//     <i> Enables Timer event generation.
-#ifndef OS_EVR_TIMER
-#define OS_EVR_TIMER                1
-#endif
- 
-//     <q>Mutex
-//     <i> Enables Mutex event generation.
-#ifndef OS_EVR_MUTEX
-#define OS_EVR_MUTEX                1
-#endif
- 
-//     <q>Semaphore
-//     <i> Enables Semaphore event generation.
-#ifndef OS_EVR_SEMAPHORE
-#define OS_EVR_SEMAPHORE            1
-#endif
- 
-//     <q>Memory Pool
-//     <i> Enables Memory Pool event generation.
-#ifndef OS_EVR_MEMPOOL
-#define OS_EVR_MEMPOOL              1
-#endif
- 
-//     <q>Message Queue
-//     <i> Enables Message Queue event generation.
-#ifndef OS_EVR_MSGQUEUE
-#define OS_EVR_MSGQUEUE             1
-#endif
- 
-//   </h>
- 
-// </h>
- 
-// Number of Threads which use standard C/C++ library libspace
-// (when thread specific memory allocation is not used).
-#if (OS_THREAD_OBJ_MEM == 0)
-#define OS_THREAD_LIBSPACE_NUM      4
-#else
-#define OS_THREAD_LIBSPACE_NUM      OS_THREAD_NUM
-#endif
- 
-//------------- <<< end of configuration section >>> ---------------------------
- 
-#endif  // RTX_CONFIG_H_
diff --git a/app_broker/CMSIS/RTOS2/RTX/Include/rtx_evr.h b/app_broker/CMSIS/RTOS2/RTX/Include/rtx_evr.h
deleted file mode 100644
index bcc82a6..0000000
--- a/app_broker/CMSIS/RTOS2/RTX/Include/rtx_evr.h
+++ /dev/null
@@ -1,1974 +0,0 @@
-/*
- * Copyright (c) 2013-2019 Arm Limited. All rights reserved.
- *
- * SPDX-License-Identifier: Apache-2.0
- *
- * Licensed under the Apache License, Version 2.0 (the License); you may
- * not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an AS IS BASIS, WITHOUT
- * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- * -----------------------------------------------------------------------------
- *
- * Project:     CMSIS-RTOS RTX
- * Title:       RTX Event Recorder definitions
- *
- * -----------------------------------------------------------------------------
- */
-
-#ifndef RTX_EVR_H_
-#define RTX_EVR_H_
-
-#include "cmsis_os2.h"                  // CMSIS RTOS API
-#include "RTX_Config.h"                 // RTX Configuration
-#include "rtx_os.h"                     // RTX OS definitions
-
-// Initial Thread configuration covered also Thread Flags and Generic Wait
-#ifndef   OS_EVR_THFLAGS
-#define   OS_EVR_THFLAGS        OS_EVR_THREAD
-#endif
-#ifndef   OS_EVR_WAIT
-#define   OS_EVR_WAIT           OS_EVR_THREAD
-#endif
-
-#ifdef   _RTE_
-#include "RTE_Components.h"
-#endif
-
-#ifdef    RTE_Compiler_EventRecorder
-
-//lint -emacro((835,845),EventID) [MISRA Note 13]
-
-#include "EventRecorder.h"
-#include "EventRecorderConf.h"
-
-#if ((defined(OS_EVR_INIT) && (OS_EVR_INIT != 0)) || (EVENT_TIMESTAMP_SOURCE == 2))
-#ifndef EVR_RTX_KERNEL_GET_STATE_DISABLE
-#define EVR_RTX_KERNEL_GET_STATE_DISABLE
-#endif
-#endif
-
-#if (EVENT_TIMESTAMP_SOURCE == 2)
-#ifndef EVR_RTX_KERNEL_GET_SYS_TIMER_COUNT_DISABLE
-#define EVR_RTX_KERNEL_GET_SYS_TIMER_COUNT_DISABLE
-#endif
-#ifndef EVR_RTX_KERNEL_GET_SYS_TIMER_FREQ_DISABLE
-#define EVR_RTX_KERNEL_GET_SYS_TIMER_FREQ_DISABLE
-#endif
-#endif
-
-/// RTOS component number
-#define EvtRtxMemoryNo                  (0xF0U)
-#define EvtRtxKernelNo                  (0xF1U)
-#define EvtRtxThreadNo                  (0xF2U)
-#define EvtRtxThreadFlagsNo             (0xF4U)
-#define EvtRtxWaitNo                    (0xF3U)
-#define EvtRtxTimerNo                   (0xF6U)
-#define EvtRtxEventFlagsNo              (0xF5U)
-#define EvtRtxMutexNo                   (0xF7U)
-#define EvtRtxSemaphoreNo               (0xF8U)
-#define EvtRtxMemoryPoolNo              (0xF9U)
-#define EvtRtxMessageQueueNo            (0xFAU)
-
-#endif  // RTE_Compiler_EventRecorder
-
-
-/// Extended Status codes
-#define osRtxErrorKernelNotReady        (-7)
-#define osRtxErrorKernelNotRunning      (-8)
-#define osRtxErrorInvalidControlBlock   (-9)
-#define osRtxErrorInvalidDataMemory     (-10)
-#define osRtxErrorInvalidThreadStack    (-11)
-#define osRtxErrorInvalidPriority       (-12)
-#define osRtxErrorThreadNotJoinable     (-13)
-#define osRtxErrorMutexNotOwned         (-14)
-#define osRtxErrorMutexNotLocked        (-15)
-#define osRtxErrorMutexLockLimit        (-16)
-#define osRtxErrorSemaphoreCountLimit   (-17)
-#define osRtxErrorTZ_InitContext_S      (-18)
-#define osRtxErrorTZ_AllocContext_S     (-19)
-#define osRtxErrorTZ_FreeContext_S      (-20)
-#define osRtxErrorTZ_LoadContext_S      (-21)
-#define osRtxErrorTZ_SaveContext_S      (-22)
-
-
-//  ==== Memory Events ====
-
-/**
-  \brief  Event on memory initialization (Op)
-  \param[in]  mem           pointer to memory pool.
-  \param[in]  size          size of a memory pool in bytes.
-  \param[in]  result        execution status: 1 - success, 0 - failure.
-*/
-#if (!defined(EVR_RTX_DISABLE) && (OS_EVR_MEMORY != 0) && !defined(EVR_RTX_MEMORY_INIT_DISABLE))
-extern void EvrRtxMemoryInit (void *mem, uint32_t size, uint32_t result);
-#else
-#define EvrRtxMemoryInit(mem, size, result)
-#endif
-
-/**
-  \brief  Event on memory allocate (Op)
-  \param[in]  mem           pointer to memory pool.
-  \param[in]  size          size of a memory block in bytes.
-  \param[in]  type          memory block type: 0 - generic, 1 - control block.
-  \param[in]  block         pointer to allocated memory block or NULL in case of no memory is available.
-*/
-#if (!defined(EVR_RTX_DISABLE) && (OS_EVR_MEMORY != 0) && !defined(EVR_RTX_MEMORY_ALLOC_DISABLE))
-extern void EvrRtxMemoryAlloc (void *mem, uint32_t size, uint32_t type, void *block);
-#else
-#define EvrRtxMemoryAlloc(mem, size, type, block)
-#endif
-
-/**
-  \brief  Event on memory free (Op)
-  \param[in]  mem           pointer to memory pool.
-  \param[in]  block         memory block to be returned to the memory pool.
-  \param[in]  result        execution status: 1 - success, 0 - failure.
-*/
-#if (!defined(EVR_RTX_DISABLE) && (OS_EVR_MEMORY != 0) && !defined(EVR_RTX_MEMORY_FREE_DISABLE))
-extern void EvrRtxMemoryFree (void *mem, void *block, uint32_t result);
-#else
-#define EvrRtxMemoryFree(mem, block, result)
-#endif
-
-/**
-  \brief  Event on memory block initialization (Op)
-  \param[in]  mp_info       memory pool info.
-  \param[in]  block_count   maximum number of memory blocks in memory pool.
-  \param[in]  block_size    size of a memory block in bytes.
-  \param[in]  block_mem     pointer to memory for block storage.
-*/
-#if (!defined(EVR_RTX_DISABLE) && (OS_EVR_MEMORY != 0) && !defined(EVR_RTX_MEMORY_BLOCK_INIT_DISABLE))
-extern void EvrRtxMemoryBlockInit (osRtxMpInfo_t *mp_info, uint32_t block_count, uint32_t block_size, void *block_mem);
-#else
-#define EvrRtxMemoryBlockInit(mp_info, block_count, block_size, block_mem)
-#endif
-
-/**
-  \brief  Event on memory block alloc (Op)
-  \param[in]  mp_info       memory pool info.
-  \param[in]  block         address of the allocated memory block or NULL in case of no memory is available.
-*/
-#if (!defined(EVR_RTX_DISABLE) && (OS_EVR_MEMORY != 0) && !defined(EVR_RTX_MEMORY_BLOCK_ALLOC_DISABLE))
-extern void EvrRtxMemoryBlockAlloc (osRtxMpInfo_t *mp_info, void *block);
-#else
-#define EvrRtxMemoryBlockAlloc(mp_info, block)
-#endif
-
-/**
-  \brief  Event on memory block free (Op)
-  \param[in]  mp_info       memory pool info.
-  \param[in]  block         address of the allocated memory block to be returned to the memory pool.
-  \param[in]  status        extended execution status.
-*/
-#if (!defined(EVR_RTX_DISABLE) && (OS_EVR_MEMORY != 0) && !defined(EVR_RTX_MEMORY_BLOCK_FREE_DISABLE))
-extern void EvrRtxMemoryBlockFree (osRtxMpInfo_t *mp_info, void *block, int32_t status);
-#else
-#define EvrRtxMemoryBlockFree(mp_info, block, status)
-#endif
-
-
-//  ==== Kernel Events ====
-
-/**
-  \brief  Event on RTOS kernel error (Error)
-  \param[in]  status        extended execution status.
-*/
-#if (!defined(EVR_RTX_DISABLE) && (OS_EVR_KERNEL != 0) && !defined(EVR_RTX_KERNEL_ERROR_DISABLE))
-extern void EvrRtxKernelError (int32_t status);
-#else
-#define EvrRtxKernelError(status)
-#endif
-
-/**
-  \brief  Event on RTOS kernel initialize (API)
-*/
-#if (!defined(EVR_RTX_DISABLE) && (OS_EVR_KERNEL != 0) && !defined(EVR_RTX_KERNEL_INITIALIZE_DISABLE))
-extern void EvrRtxKernelInitialize (void);
-#else
-#define EvrRtxKernelInitialize()
-#endif
-
-/**
-  \brief  Event on successful RTOS kernel initialize (Op)
-*/
-#if (!defined(EVR_RTX_DISABLE) && (OS_EVR_KERNEL != 0) && !defined(EVR_RTX_KERNEL_INITIALIZED_DISABLE))
-extern void EvrRtxKernelInitialized (void);
-#else
-#define EvrRtxKernelInitialized()
-#endif
-
-/**
-  \brief  Event on RTOS kernel information retrieve (API)
-  \param[in]  version       pointer to buffer for retrieving version information.
-  \param[in]  id_buf        pointer to buffer for retrieving kernel identification string.
-  \param[in]  id_size       size of buffer for kernel identification string.
-*/
-#if (!defined(EVR_RTX_DISABLE) && (OS_EVR_KERNEL != 0) && !defined(EVR_RTX_KERNEL_GET_INFO_DISABLE))
-extern void EvrRtxKernelGetInfo (osVersion_t *version, char *id_buf, uint32_t id_size);
-#else
-#define EvrRtxKernelGetInfo(version, id_buf, id_size)
-#endif
-
-/**
-  \brief  Event on successful RTOS kernel information retrieve (Op)
-  \param[in]  version       pointer to buffer for retrieving version information.
-  \param[in]  id_buf        pointer to buffer for retrieving kernel identification string.
-  \param[in]  id_size       size of buffer for kernel identification string.
-*/
-#if (!defined(EVR_RTX_DISABLE) && (OS_EVR_KERNEL != 0) && !defined(EVR_RTX_KERNEL_INFO_RETRIEVED_DISABLE))
-extern void EvrRtxKernelInfoRetrieved (const osVersion_t *version, const char *id_buf, uint32_t id_size);
-#else
-#define EvrRtxKernelInfoRetrieved(version, id_buf, id_size)
-#endif
-
-/**
-  \brief  Event on current RTOS Kernel state retrieve (API)
-  \param[in]  state         current RTOS Kernel state.
-*/
-#if (!defined(EVR_RTX_DISABLE) && (OS_EVR_KERNEL != 0) && !defined(EVR_RTX_KERNEL_GET_STATE_DISABLE))
-extern void EvrRtxKernelGetState (osKernelState_t state);
-#else
-#define EvrRtxKernelGetState(state)
-#endif
-
-/**
-  \brief  Event on RTOS Kernel scheduler start (API)
-*/
-#if (!defined(EVR_RTX_DISABLE) && (OS_EVR_KERNEL != 0) && !defined(EVR_RTX_KERNEL_START_DISABLE))
-extern void EvrRtxKernelStart (void);
-#else
-#define EvrRtxKernelStart()
-#endif
-
-/**
-  \brief  Event on successful RTOS Kernel scheduler start (Op)
-*/
-#if (!defined(EVR_RTX_DISABLE) && (OS_EVR_KERNEL != 0) && !defined(EVR_RTX_KERNEL_STARTED_DISABLE))
-extern void EvrRtxKernelStarted (void);
-#else
-#define EvrRtxKernelStarted()
-#endif
-
-/**
-  \brief  Event on RTOS Kernel scheduler lock (API)
-*/
-#if (!defined(EVR_RTX_DISABLE) && (OS_EVR_KERNEL != 0) && !defined(EVR_RTX_KERNEL_LOCK_DISABLE))
-extern void EvrRtxKernelLock (void);
-#else
-#define EvrRtxKernelLock()
-#endif
-
-/**
-  \brief  Event on successful RTOS Kernel scheduler lock (Op)
-  \param[in]  lock          previous lock state (1 - locked, 0 - not locked).
-*/
-#if (!defined(EVR_RTX_DISABLE) && (OS_EVR_KERNEL != 0) && !defined(EVR_RTX_KERNEL_LOCKED_DISABLE))
-extern void EvrRtxKernelLocked (int32_t lock);
-#else
-#define EvrRtxKernelLocked(lock)
-#endif
-
-/**
-  \brief  Event on RTOS Kernel scheduler unlock (API)
-*/
-#if (!defined(EVR_RTX_DISABLE) && (OS_EVR_KERNEL != 0) && !defined(EVR_RTX_KERNEL_UNLOCK_DISABLE))
-extern void EvrRtxKernelUnlock (void);
-#else
-#define EvrRtxKernelUnlock()
-#endif
-
-/**
-  \brief  Event on successful RTOS Kernel scheduler unlock (Op)
-  \param[in]  lock          previous lock state (1 - locked, 0 - not locked).
-*/
-#if (!defined(EVR_RTX_DISABLE) && (OS_EVR_KERNEL != 0) && !defined(EVR_RTX_KERNEL_UNLOCKED_DISABLE))
-extern void EvrRtxKernelUnlocked (int32_t lock);
-#else
-#define EvrRtxKernelUnlocked(lock)
-#endif
-
-/**
-  \brief  Event on RTOS Kernel scheduler lock state restore (API)
-  \param[in]  lock          lock state obtained by \ref osKernelLock or \ref osKernelUnlock.
-*/
-#if (!defined(EVR_RTX_DISABLE) && (OS_EVR_KERNEL != 0) && !defined(EVR_RTX_KERNEL_RESTORE_LOCK_DISABLE))
-extern void EvrRtxKernelRestoreLock (int32_t lock);
-#else
-#define EvrRtxKernelRestoreLock(lock)
-#endif
-
-/**
-  \brief  Event on successful RTOS Kernel scheduler lock state restore (Op)
-  \param[in]  lock          new lock state (1 - locked, 0 - not locked).
-*/
-#if (!defined(EVR_RTX_DISABLE) && (OS_EVR_KERNEL != 0) && !defined(EVR_RTX_KERNEL_LOCK_RESTORED_DISABLE))
-extern void EvrRtxKernelLockRestored (int32_t lock);
-#else
-#define EvrRtxKernelLockRestored(lock)
-#endif
-
-/**
-  \brief  Event on RTOS Kernel scheduler suspend (API)
-*/
-#if (!defined(EVR_RTX_DISABLE) && (OS_EVR_KERNEL != 0) && !defined(EVR_RTX_KERNEL_SUSPEND_DISABLE))
-extern void EvrRtxKernelSuspend (void);
-#else
-#define EvrRtxKernelSuspend()
-#endif
-
-/**
-  \brief  Event on successful RTOS Kernel scheduler suspend (Op)
-  \param[in]  sleep_ticks   time in ticks, for how long the system can sleep or power-down.
-*/
-#if (!defined(EVR_RTX_DISABLE) && (OS_EVR_KERNEL != 0) && !defined(EVR_RTX_KERNEL_SUSPENDED_DISABLE))
-extern void EvrRtxKernelSuspended (uint32_t sleep_ticks);
-#else
-#define EvrRtxKernelSuspended(sleep_ticks)
-#endif
-
-/**
-  \brief  Event on RTOS Kernel scheduler resume (API)
-  \param[in]  sleep_ticks   time in ticks, for how long the system was in sleep or power-down mode.
-*/
-#if (!defined(EVR_RTX_DISABLE) && (OS_EVR_KERNEL != 0) && !defined(EVR_RTX_KERNEL_RESUME_DISABLE))
-extern void EvrRtxKernelResume (uint32_t sleep_ticks);
-#else
-#define EvrRtxKernelResume(sleep_ticks)
-#endif
-
-/**
-  \brief  Event on successful RTOS Kernel scheduler resume (Op)
-*/
-#if (!defined(EVR_RTX_DISABLE) && (OS_EVR_KERNEL != 0) && !defined(EVR_RTX_KERNEL_RESUMED_DISABLE))
-extern void EvrRtxKernelResumed (void);
-#else
-#define EvrRtxKernelResumed()
-#endif
-
-/**
-  \brief  Event on RTOS kernel tick count retrieve (API)
-  \param[in]  count         RTOS kernel current tick count.
-*/
-#if (!defined(EVR_RTX_DISABLE) && (OS_EVR_KERNEL != 0) && !defined(EVR_RTX_KERNEL_GET_TICK_COUNT_DISABLE))
-extern void EvrRtxKernelGetTickCount (uint32_t count);
-#else
-#define EvrRtxKernelGetTickCount(count)
-#endif
-
-/**
-  \brief  Event on RTOS kernel tick frequency retrieve (API)
-  \param[in]  freq          frequency of the kernel tick.
-*/
-#if (!defined(EVR_RTX_DISABLE) && (OS_EVR_KERNEL != 0) && !defined(EVR_RTX_KERNEL_GET_TICK_FREQ_DISABLE))
-extern void EvrRtxKernelGetTickFreq (uint32_t freq);
-#else
-#define EvrRtxKernelGetTickFreq(freq)
-#endif
-
-/**
-  \brief  Event on RTOS kernel system timer count retrieve (API)
-  \param[in]  count         RTOS kernel current system timer count as 32-bit value.
-*/
-#if (!defined(EVR_RTX_DISABLE) && (OS_EVR_KERNEL != 0) && !defined(EVR_RTX_KERNEL_GET_SYS_TIMER_COUNT_DISABLE))
-extern void EvrRtxKernelGetSysTimerCount (uint32_t count);
-#else
-#define EvrRtxKernelGetSysTimerCount(count)
-#endif
-
-/**
-  \brief  Event on RTOS kernel system timer frequency retrieve (API)
-  \param[in]  freq          frequency of the system timer.
-*/
-#if (!defined(EVR_RTX_DISABLE) && (OS_EVR_KERNEL != 0) && !defined(EVR_RTX_KERNEL_GET_SYS_TIMER_FREQ_DISABLE))
-extern void EvrRtxKernelGetSysTimerFreq (uint32_t freq);
-#else
-#define EvrRtxKernelGetSysTimerFreq(freq)
-#endif
-
-
-//  ==== Thread Events ====
-
-/**
-  \brief  Event on thread error (Error)
-  \param[in]  thread_id     thread ID obtained by \ref osThreadNew or \ref osThreadGetId or NULL when ID is unknown.
-  \param[in]  status        extended execution status.
-*/
-#if (!defined(EVR_RTX_DISABLE) && (OS_EVR_THREAD != 0) && !defined(EVR_RTX_THREAD_ERROR_DISABLE))
-extern void EvrRtxThreadError (osThreadId_t thread_id, int32_t status);
-#else
-#define EvrRtxThreadError(thread_id, status)
-#endif
-
-/**
-  \brief  Event on thread create and intialize (API)
-  \param[in]  func          thread function.
-  \param[in]  argument      pointer that is passed to the thread function as start argument.
-  \param[in]  attr          thread attributes.
-*/
-#if (!defined(EVR_RTX_DISABLE) && (OS_EVR_THREAD != 0) && !defined(EVR_RTX_THREAD_NEW_DISABLE))
-extern void EvrRtxThreadNew (osThreadFunc_t func, void *argument, const osThreadAttr_t *attr);
-#else
-#define EvrRtxThreadNew(func, argument, attr)
-#endif
-
-/**
-  \brief  Event on successful thread create (Op)
-  \param[in]  thread_id     thread ID obtained by \ref osThreadNew or \ref osThreadGetId.
-  \param[in]  thread_addr   thread entry address.
-  \param[in]  name          pointer to thread object name.
-*/
-#if (!defined(EVR_RTX_DISABLE) && (OS_EVR_THREAD != 0) && !defined(EVR_RTX_THREAD_CREATED_DISABLE))
-extern void EvrRtxThreadCreated (osThreadId_t thread_id, uint32_t thread_addr, const char *name);
-#else
-#define EvrRtxThreadCreated(thread_id, thread_addr, name)
-#endif
-
-/**
-  \brief  Event on thread name retrieve (API)
-  \param[in]  thread_id     thread ID obtained by \ref osThreadNew or \ref osThreadGetId.
-  \param[in]  name          pointer to thread object name.
-*/
-#if (!defined(EVR_RTX_DISABLE) && (OS_EVR_THREAD != 0) && !defined(EVR_RTX_THREAD_GET_NAME_DISABLE))
-extern void EvrRtxThreadGetName (osThreadId_t thread_id, const char *name);
-#else
-#define EvrRtxThreadGetName(thread_id, name)
-#endif
-
-/**
-  \brief  Event on current running thread ID retrieve (API)
-  \param[in]  thread_id     thread ID obtained by \ref osThreadNew or \ref osThreadGetId.
-*/
-#if (!defined(EVR_RTX_DISABLE) && (OS_EVR_THREAD != 0) && !defined(EVR_RTX_THREAD_GET_ID_DISABLE))
-extern void EvrRtxThreadGetId (osThreadId_t thread_id);
-#else
-#define EvrRtxThreadGetId(thread_id)
-#endif
-
-/**
-  \brief  Event on thread state retrieve (API)
-  \param[in]  thread_id     thread ID obtained by \ref osThreadNew or \ref osThreadGetId.
-  \param[in]  state         current thread state of the specified thread.
-*/
-#if (!defined(EVR_RTX_DISABLE) && (OS_EVR_THREAD != 0) && !defined(EVR_RTX_THREAD_GET_STATE_DISABLE))
-extern void EvrRtxThreadGetState (osThreadId_t thread_id, osThreadState_t state);
-#else
-#define EvrRtxThreadGetState(thread_id, state)
-#endif
-
-/**
-  \brief  Event on thread stack size retrieve (API)
-  \param[in]  thread_id     thread ID obtained by \ref osThreadNew or \ref osThreadGetId.
-  \param[in]  stack_size    stack size in bytes.
-*/
-#if (!defined(EVR_RTX_DISABLE) && (OS_EVR_THREAD != 0) && !defined(EVR_RTX_THREAD_GET_STACK_SIZE_DISABLE))
-extern void EvrRtxThreadGetStackSize (osThreadId_t thread_id, uint32_t stack_size);
-#else
-#define EvrRtxThreadGetStackSize(thread_id, stack_size)
-#endif
-
-/**
-  \brief  Event on available stack space retrieve (API)
-  \param[in]  thread_id     thread ID obtained by \ref osThreadNew or \ref osThreadGetId.
-  \param[in]  stack_space   remaining stack space in bytes.
-*/
-#if (!defined(EVR_RTX_DISABLE) && (OS_EVR_THREAD != 0) && !defined(EVR_RTX_THREAD_GET_STACK_SPACE_DISABLE))
-extern void EvrRtxThreadGetStackSpace (osThreadId_t thread_id, uint32_t stack_space);
-#else
-#define EvrRtxThreadGetStackSpace(thread_id, stack_space)
-#endif
-
-/**
-  \brief  Event on thread priority set (API)
-  \param[in]  thread_id     thread ID obtained by \ref osThreadNew or \ref osThreadGetId.
-  \param[in]  priority      new priority value for the thread function.
-*/
-#if (!defined(EVR_RTX_DISABLE) && (OS_EVR_THREAD != 0) && !defined(EVR_RTX_THREAD_SET_PRIORITY_DISABLE))
-extern void EvrRtxThreadSetPriority (osThreadId_t thread_id, osPriority_t priority);
-#else
-#define EvrRtxThreadSetPriority(thread_id, priority)
-#endif
-
-/**
-  \brief  Event on thread priority updated (Op)
-  \param[in]  thread_id     thread ID obtained by \ref osThreadNew or \ref osThreadGetId.
-  \param[in]  priority      new priority value for the thread function.
-*/
-#if (!defined(EVR_RTX_DISABLE) && (OS_EVR_THREAD != 0) && !defined(EVR_RTX_THREAD_PRIORITY_UPDATED_DISABLE))
-extern void EvrRtxThreadPriorityUpdated (osThreadId_t thread_id, osPriority_t priority);
-#else
-#define EvrRtxThreadPriorityUpdated(thread_id, priority)
-#endif
-
-/**
-  \brief  Event on thread priority retrieve (API)
-  \param[in]  thread_id     thread ID obtained by \ref osThreadNew or \ref osThreadGetId.
-  \param[in]  priority      current priority value of the specified thread.
-*/
-#if (!defined(EVR_RTX_DISABLE) && (OS_EVR_THREAD != 0) && !defined(EVR_RTX_THREAD_GET_PRIORITY_DISABLE))
-extern void EvrRtxThreadGetPriority (osThreadId_t thread_id, osPriority_t priority);
-#else
-#define EvrRtxThreadGetPriority(thread_id, priority)
-#endif
-
-/**
-  \brief  Event on thread yield (API)
-*/
-#if (!defined(EVR_RTX_DISABLE) && (OS_EVR_THREAD != 0) && !defined(EVR_RTX_THREAD_YIELD_DISABLE))
-extern void EvrRtxThreadYield (void);
-#else
-#define EvrRtxThreadYield()
-#endif
-
-/**
-  \brief  Event on thread suspend (API)
-  \param[in]  thread_id     thread ID obtained by \ref osThreadNew or \ref osThreadGetId.
-*/
-#if (!defined(EVR_RTX_DISABLE) && (OS_EVR_THREAD != 0) && !defined(EVR_RTX_THREAD_SUSPEND_DISABLE))
-extern void EvrRtxThreadSuspend (osThreadId_t thread_id);
-#else
-#define EvrRtxThreadSuspend(thread_id)
-#endif
-
-/**
-  \brief  Event on successful thread suspend (Op)
-  \param[in]  thread_id     thread ID obtained by \ref osThreadNew or \ref osThreadGetId.
-*/
-#if (!defined(EVR_RTX_DISABLE) && (OS_EVR_THREAD != 0) && !defined(EVR_RTX_THREAD_SUSPENDED_DISABLE))
-extern void EvrRtxThreadSuspended (osThreadId_t thread_id);
-#else
-#define EvrRtxThreadSuspended(thread_id)
-#endif
-
-/**
-  \brief  Event on thread resume (API)
-  \param[in]  thread_id     thread ID obtained by \ref osThreadNew or \ref osThreadGetId.
-*/
-#if (!defined(EVR_RTX_DISABLE) && (OS_EVR_THREAD != 0) && !defined(EVR_RTX_THREAD_RESUME_DISABLE))
-extern void EvrRtxThreadResume (osThreadId_t thread_id);
-#else
-#define EvrRtxThreadResume(thread_id)
-#endif
-
-/**
-  \brief  Event on successful thread resume (Op)
-  \param[in]  thread_id     thread ID obtained by \ref osThreadNew or \ref osThreadGetId.
-*/
-#if (!defined(EVR_RTX_DISABLE) && (OS_EVR_THREAD != 0) && !defined(EVR_RTX_THREAD_RESUMED_DISABLE))
-extern void EvrRtxThreadResumed (osThreadId_t thread_id);
-#else
-#define EvrRtxThreadResumed(thread_id)
-#endif
-
-/**
-  \brief  Event on thread detach (API)
-  \param[in]  thread_id     thread ID obtained by \ref osThreadNew or \ref osThreadGetId.
-*/
-#if (!defined(EVR_RTX_DISABLE) && (OS_EVR_THREAD != 0) && !defined(EVR_RTX_THREAD_DETACH_DISABLE))
-extern void EvrRtxThreadDetach (osThreadId_t thread_id);
-#else
-#define EvrRtxThreadDetach(thread_id)
-#endif
-
-/**
-  \brief  Event on successful thread detach (Op)
-  \param[in]  thread_id     thread ID obtained by \ref osThreadNew or \ref osThreadGetId.
-*/
-#if (!defined(EVR_RTX_DISABLE) && (OS_EVR_THREAD != 0) && !defined(EVR_RTX_THREAD_DETACHED_DISABLE))
-extern void EvrRtxThreadDetached (osThreadId_t thread_id);
-#else
-#define EvrRtxThreadDetached(thread_id)
-#endif
-
-/**
-  \brief  Event on thread join (API)
-  \param[in]  thread_id     thread ID obtained by \ref osThreadNew or \ref osThreadGetId.
-*/
-#if (!defined(EVR_RTX_DISABLE) && (OS_EVR_THREAD != 0) && !defined(EVR_RTX_THREAD_JOIN_DISABLE))
-extern void EvrRtxThreadJoin (osThreadId_t thread_id);
-#else
-#define EvrRtxThreadJoin(thread_id)
-#endif
-
-/**
-  \brief  Event on pending thread join (Op)
-  \param[in]  thread_id     thread ID obtained by \ref osThreadNew or \ref osThreadGetId.
-*/
-#if (!defined(EVR_RTX_DISABLE) && (OS_EVR_THREAD != 0) && !defined(EVR_RTX_THREAD_JOIN_PENDING_DISABLE))
-extern void EvrRtxThreadJoinPending (osThreadId_t thread_id);
-#else
-#define EvrRtxThreadJoinPending(thread_id)
-#endif
-
-/**
-  \brief  Event on successful thread join (Op)
-  \param[in]  thread_id     thread ID obtained by \ref osThreadNew or \ref osThreadGetId.
-*/
-#if (!defined(EVR_RTX_DISABLE) && (OS_EVR_THREAD != 0) && !defined(EVR_RTX_THREAD_JOINED_DISABLE))
-extern void EvrRtxThreadJoined (osThreadId_t thread_id);
-#else
-#define EvrRtxThreadJoined(thread_id)
-#endif
-
-/**
-  \brief  Event on thread execution block (Detail)
-  \param[in]  thread_id     thread ID obtained by \ref osThreadNew or \ref osThreadGetId.
-  \param[in]  timeout       \ref CMSIS_RTOS_TimeOutValue or 0 in case of no time-out.
-*/
-#if (!defined(EVR_RTX_DISABLE) && (OS_EVR_THREAD != 0) && !defined(EVR_RTX_THREAD_BLOCKED_DISABLE))
-extern void EvrRtxThreadBlocked (osThreadId_t thread_id, uint32_t timeout);
-#else
-#define EvrRtxThreadBlocked(thread_id, timeout)
-#endif
-
-/**
-  \brief  Event on thread execution unblock (Detail)
-  \param[in]  thread_id     thread ID obtained by \ref osThreadNew or \ref osThreadGetId.
-  \param[in]  ret_val       extended execution status of the thread.
-*/
-#if (!defined(EVR_RTX_DISABLE) && (OS_EVR_THREAD != 0) && !defined(EVR_RTX_THREAD_UNBLOCKED_DISABLE))
-extern void EvrRtxThreadUnblocked (osThreadId_t thread_id, uint32_t ret_val);
-#else
-#define EvrRtxThreadUnblocked(thread_id, ret_val)
-#endif
-
-/**
-  \brief  Event on running thread pre-emption (Detail)
-  \param[in]  thread_id     thread ID obtained by \ref osThreadNew or \ref osThreadGetId.
-*/
-#if (!defined(EVR_RTX_DISABLE) && (OS_EVR_THREAD != 0) && !defined(EVR_RTX_THREAD_PREEMPTED_DISABLE))
-extern void EvrRtxThreadPreempted (osThreadId_t thread_id);
-#else
-#define EvrRtxThreadPreempted(thread_id)
-#endif
-
-/**
-  \brief  Event on running thread switch (Op)
-  \param[in]  thread_id     thread ID obtained by \ref osThreadNew or \ref osThreadGetId.
-*/
-#if (!defined(EVR_RTX_DISABLE) && (OS_EVR_THREAD != 0) && !defined(EVR_RTX_THREAD_SWITCHED_DISABLE))
-extern void EvrRtxThreadSwitched (osThreadId_t thread_id);
-#else
-#define EvrRtxThreadSwitched(thread_id)
-#endif
-
-/**
-  \brief  Event on thread exit (API)
-*/
-#if (!defined(EVR_RTX_DISABLE) && (OS_EVR_THREAD != 0) && !defined(EVR_RTX_THREAD_EXIT_DISABLE))
-extern void EvrRtxThreadExit (void);
-#else
-#define EvrRtxThreadExit()
-#endif
-
-/**
-  \brief  Event on thread terminate (API)
-  \param[in]  thread_id     thread ID obtained by \ref osThreadNew or \ref osThreadGetId.
-*/
-#if (!defined(EVR_RTX_DISABLE) && (OS_EVR_THREAD != 0) && !defined(EVR_RTX_THREAD_TERMINATE_DISABLE))
-extern void EvrRtxThreadTerminate (osThreadId_t thread_id);
-#else
-#define EvrRtxThreadTerminate(thread_id)
-#endif
-
-/**
-  \brief  Event on successful thread terminate (Op)
-  \param[in]  thread_id     thread ID obtained by \ref osThreadNew or \ref osThreadGetId.
-*/
-#if (!defined(EVR_RTX_DISABLE) && (OS_EVR_THREAD != 0) && !defined(EVR_RTX_THREAD_DESTROYED_DISABLE))
-extern void EvrRtxThreadDestroyed (osThreadId_t thread_id);
-#else
-#define EvrRtxThreadDestroyed(thread_id)
-#endif
-
-/**
-  \brief  Event on active thread count retrieve (API)
-  \param[in]  count         number of active threads.
-*/
-#if (!defined(EVR_RTX_DISABLE) && (OS_EVR_THREAD != 0) && !defined(EVR_RTX_THREAD_GET_COUNT_DISABLE))
-extern void EvrRtxThreadGetCount (uint32_t count);
-#else
-#define EvrRtxThreadGetCount(count)
-#endif
-
-/**
-  \brief  Event on active threads enumerate (API)
-  \param[in]  thread_array  pointer to array for retrieving thread IDs.
-  \param[in]  array_items   maximum number of items in array for retrieving thread IDs.
-  \param[in]  count         number of enumerated threads.
-*/
-#if (!defined(EVR_RTX_DISABLE) && (OS_EVR_THREAD != 0) && !defined(EVR_RTX_THREAD_ENUMERATE_DISABLE))
-extern void EvrRtxThreadEnumerate (osThreadId_t *thread_array, uint32_t array_items, uint32_t count);
-#else
-#define EvrRtxThreadEnumerate(thread_array, array_items, count)
-#endif
-
-
-//  ==== Thread Flags Events ====
-
-/**
-  \brief  Event on thread flags error (Error)
-  \param[in]  thread_id     thread ID obtained by \ref osThreadNew or \ref osThreadGetId or NULL when ID is unknown.
-  \param[in]  status        extended execution status.
-*/
-#if (!defined(EVR_RTX_DISABLE) && (OS_EVR_THFLAGS != 0) && !defined(EVR_RTX_THREAD_FLAGS_ERROR_DISABLE))
-extern void EvrRtxThreadFlagsError (osThreadId_t thread_id, int32_t status);
-#else
-#define EvrRtxThreadFlagsError(thread_id, status)
-#endif
-
-/**
-  \brief  Event on thread flags set (API)
-  \param[in]   thread_id     thread ID obtained by \ref osThreadNew or \ref osThreadGetId.
-  \param[in]   flags         flags of the thread that shall be set.
-*/
-#if (!defined(EVR_RTX_DISABLE) && (OS_EVR_THFLAGS != 0) && !defined(EVR_RTX_THREAD_FLAGS_SET_DISABLE))
-extern void EvrRtxThreadFlagsSet (osThreadId_t thread_id, uint32_t flags);
-#else
-#define EvrRtxThreadFlagsSet(thread_id, flags)
-#endif
-
-/**
-  \brief  Event on successful thread flags set (Op)
-  \param[in]  thread_id     thread ID obtained by \ref osThreadNew or \ref osThreadGetId.
-  \param[in]  thread_flags  thread flags after setting.
-*/
-#if (!defined(EVR_RTX_DISABLE) && (OS_EVR_THFLAGS != 0) && !defined(EVR_RTX_THREAD_FLAGS_SET_DONE_DISABLE))
-extern void EvrRtxThreadFlagsSetDone (osThreadId_t thread_id, uint32_t thread_flags);
-#else
-#define EvrRtxThreadFlagsSetDone(thread_id, thread_flags)
-#endif
-
-/**
-  \brief  Event on thread flags clear (API)
-  \param[in]  flags         flags of the thread that shall be cleared.
-*/
-#if (!defined(EVR_RTX_DISABLE) && (OS_EVR_THFLAGS != 0) && !defined(EVR_RTX_THREAD_FLAGS_CLEAR_DISABLE))
-extern void EvrRtxThreadFlagsClear (uint32_t flags);
-#else
-#define EvrRtxThreadFlagsClear(flags)
-#endif
-
-/**
-  \brief  Event on successful thread flags clear (Op)
-  \param[in]  thread_flags  thread flags before clearing.
-*/
-#if (!defined(EVR_RTX_DISABLE) && (OS_EVR_THFLAGS != 0) && !defined(EVR_RTX_THREAD_FLAGS_CLEAR_DONE_DISABLE))
-extern void EvrRtxThreadFlagsClearDone (uint32_t thread_flags);
-#else
-#define EvrRtxThreadFlagsClearDone(thread_flags)
-#endif
-
-/**
-  \brief  Event on thread flags retrieve (API)
-  \param[in]  thread_flags  current thread flags.
-*/
-#if (!defined(EVR_RTX_DISABLE) && (OS_EVR_THFLAGS != 0) && !defined(EVR_RTX_THREAD_FLAGS_GET_DISABLE))
-extern void EvrRtxThreadFlagsGet (uint32_t thread_flags);
-#else
-#define EvrRtxThreadFlagsGet(thread_flags)
-#endif
-
-/**
-  \brief  Event on wait for thread flags (API)
-  \param[in]  flags         flags to wait for.
-  \param[in]  options       flags options (osFlagsXxxx).
-  \param[in]  timeout       \ref CMSIS_RTOS_TimeOutValue or 0 in case of no time-out.
-*/
-#if (!defined(EVR_RTX_DISABLE) && (OS_EVR_THFLAGS != 0) && !defined(EVR_RTX_THREAD_FLAGS_WAIT_DISABLE))
-extern void EvrRtxThreadFlagsWait (uint32_t flags, uint32_t options, uint32_t timeout);
-#else
-#define EvrRtxThreadFlagsWait(flags, options, timeout)
-#endif
-
-/**
-  \brief  Event on pending wait for thread flags (Op)
-  \param[in]  flags         flags to wait for.
-  \param[in]  options       flags options (osFlagsXxxx).
-  \param[in]  timeout       \ref CMSIS_RTOS_TimeOutValue or 0 in case of no time-out.
-*/
-#if (!defined(EVR_RTX_DISABLE) && (OS_EVR_THFLAGS != 0) && !defined(EVR_RTX_THREAD_FLAGS_WAIT_PENDING_DISABLE))
-extern void EvrRtxThreadFlagsWaitPending (uint32_t flags, uint32_t options, uint32_t timeout);
-#else
-#define EvrRtxThreadFlagsWaitPending(flags, options, timeout)
-#endif
-
-/**
-  \brief  Event on wait timeout for thread flags (Op)
-  \param[in]  thread_id     thread ID obtained by \ref osThreadNew or \ref osThreadGetId.
-*/
-#if (!defined(EVR_RTX_DISABLE) && (OS_EVR_THFLAGS != 0) && !defined(EVR_RTX_THREAD_FLAGS_WAIT_TIMEOUT_DISABLE))
-extern void EvrRtxThreadFlagsWaitTimeout (osThreadId_t thread_id);
-#else
-#define EvrRtxThreadFlagsWaitTimeout(thread_id)
-#endif
-
-/**
-  \brief  Event on successful wait for thread flags (Op)
-  \param[in]  flags         flags to wait for.
-  \param[in]  options       flags options (osFlagsXxxx).
-  \param[in]  thread_flags  thread flags before clearing.
-  \param[in]  thread_id     thread ID obtained by \ref osThreadNew or \ref osThreadGetId.
-*/
-#if (!defined(EVR_RTX_DISABLE) && (OS_EVR_THFLAGS != 0) && !defined(EVR_RTX_THREAD_FLAGS_WAIT_COMPLETED_DISABLE))
-extern void EvrRtxThreadFlagsWaitCompleted (uint32_t flags, uint32_t options, uint32_t thread_flags, osThreadId_t thread_id);
-#else
-#define EvrRtxThreadFlagsWaitCompleted(flags, options, thread_flags, thread_id)
-#endif
-
-/**
-  \brief  Event on unsuccessful wait for thread flags (Op)
-  \param[in]  flags         flags to wait for.
-  \param[in]  options       flags options (osFlagsXxxx).
-*/
-#if (!defined(EVR_RTX_DISABLE) && (OS_EVR_THFLAGS != 0) && !defined(EVR_RTX_THREAD_FLAGS_WAIT_NOT_COMPLETED_DISABLE))
-extern void EvrRtxThreadFlagsWaitNotCompleted (uint32_t flags, uint32_t options);
-#else
-#define EvrRtxThreadFlagsWaitNotCompleted(flags, options)
-#endif
-
-
-//  ==== Generic Wait Events ====
-
-/**
-  \brief  Event on delay error (Error)
-  \param[in]  status        extended execution status.
-*/
-#if (!defined(EVR_RTX_DISABLE) && (OS_EVR_WAIT != 0) && !defined(EVR_RTX_DELAY_ERROR_DISABLE))
-extern void EvrRtxDelayError (int32_t status);
-#else
-#define EvrRtxDelayError(status)
-#endif
-
-/**
-  \brief  Event on delay for specified time (API)
-  \param[in]  ticks         \ref CMSIS_RTOS_TimeOutValue "time ticks" value.
-*/
-#if (!defined(EVR_RTX_DISABLE) && (OS_EVR_WAIT != 0) && !defined(EVR_RTX_DELAY_DISABLE))
-extern void EvrRtxDelay (uint32_t ticks);
-#else
-#define EvrRtxDelay(ticks)
-#endif
-
-/**
-  \brief  Event on delay until specified time (API)
-  \param[in]  ticks         absolute time in ticks.
-*/
-#if (!defined(EVR_RTX_DISABLE) && (OS_EVR_WAIT != 0) && !defined(EVR_RTX_DELAY_UNTIL_DISABLE))
-extern void EvrRtxDelayUntil (uint32_t ticks);
-#else
-#define EvrRtxDelayUntil(ticks)
-#endif
-
-/**
-  \brief  Event on delay started (Op)
-  \param[in]  ticks         \ref CMSIS_RTOS_TimeOutValue "time ticks" value.
-*/
-#if (!defined(EVR_RTX_DISABLE) && (OS_EVR_WAIT != 0) && !defined(EVR_RTX_DELAY_STARTED_DISABLE))
-extern void EvrRtxDelayStarted (uint32_t ticks);
-#else
-#define EvrRtxDelayStarted(ticks)
-#endif
-
-/**
-  \brief  Event on delay until specified time started (Op)
-  \param[in]  ticks         \ref CMSIS_RTOS_TimeOutValue "time ticks" value.
-*/
-#if (!defined(EVR_RTX_DISABLE) && (OS_EVR_WAIT != 0) && !defined(EVR_RTX_DELAY_UNTIL_STARTED_DISABLE))
-extern void EvrRtxDelayUntilStarted (uint32_t ticks);
-#else
-#define EvrRtxDelayUntilStarted(ticks)
-#endif
-
-/**
-  \brief  Event on delay completed (Op)
-  \param[in]  thread_id     thread ID obtained by \ref osThreadNew or \ref osThreadGetId.
-*/
-#if (!defined(EVR_RTX_DISABLE) && (OS_EVR_WAIT != 0) && !defined(EVR_RTX_DELAY_COMPLETED_DISABLE))
-extern void EvrRtxDelayCompleted (osThreadId_t thread_id);
-#else
-#define EvrRtxDelayCompleted(thread_id)
-#endif
-
-
-//  ==== Timer Events ====
-
-/**
-  \brief  Event on timer error (Error)
-  \param[in]  timer_id      timer ID obtained by \ref osTimerNew or NULL when ID is unknown.
-  \param[in]  status        extended execution status.
-*/
-#if (!defined(EVR_RTX_DISABLE) && (OS_EVR_TIMER != 0) && !defined(EVR_RTX_TIMER_ERROR_DISABLE))
-extern void EvrRtxTimerError (osTimerId_t timer_id, int32_t status);
-#else
-#define EvrRtxTimerError(timer_id, status)
-#endif
-
-/**
-  \brief  Event on timer callback call (Op)
-  \param[in]  func          start address of a timer call back function.
-  \param[in]  argument      argument to the timer call back function.
-*/
-#if (!defined(EVR_RTX_DISABLE) && (OS_EVR_TIMER != 0) && !defined(EVR_RTX_TIMER_CALLBACK_DISABLE))
-extern void EvrRtxTimerCallback (osTimerFunc_t func, void *argument);
-#else
-#define EvrRtxTimerCallback(func, argument)
-#endif
-
-/**
-  \brief  Event on timer create and initialize (API)
-  \param[in]  func          start address of a timer call back function.
-  \param[in]  type          osTimerOnce for one-shot or osTimerPeriodic for periodic behavior.
-  \param[in]  argument      argument to the timer call back function.
-  \param[in]  attr          timer attributes.
-*/
-#if (!defined(EVR_RTX_DISABLE) && (OS_EVR_TIMER != 0) && !defined(EVR_RTX_TIMER_NEW_DISABLE))
-extern void EvrRtxTimerNew (osTimerFunc_t func, osTimerType_t type, void *argument, const osTimerAttr_t *attr);
-#else
-#define EvrRtxTimerNew(func, type, argument, attr)
-#endif
-
-/**
-  \brief  Event on successful timer create (Op)
-  \param[in]  timer_id      timer ID obtained by \ref osTimerNew.
-  \param[in]  name          pointer to timer object name.
-*/
-#if (!defined(EVR_RTX_DISABLE) && (OS_EVR_TIMER != 0) && !defined(EVR_RTX_TIMER_CREATED_DISABLE))
-extern void EvrRtxTimerCreated (osTimerId_t timer_id, const char *name);
-#else
-#define EvrRtxTimerCreated(timer_id, name)
-#endif
-
-/**
-  \brief  Event on timer name retrieve (API)
-  \param[in]  timer_id      timer ID obtained by \ref osTimerNew.
-  \param[in]  name          pointer to timer object name.
-*/
-#if (!defined(EVR_RTX_DISABLE) && (OS_EVR_TIMER != 0) && !defined(EVR_RTX_TIMER_GET_NAME_DISABLE))
-extern void EvrRtxTimerGetName (osTimerId_t timer_id, const char *name);
-#else
-#define EvrRtxTimerGetName(timer_id, name)
-#endif
-
-/**
-  \brief  Event on timer start (API)
-  \param[in]  timer_id      timer ID obtained by \ref osTimerNew.
-  \param[in]  ticks         \ref CMSIS_RTOS_TimeOutValue "time ticks" value of the timer.
-*/
-#if (!defined(EVR_RTX_DISABLE) && (OS_EVR_TIMER != 0) && !defined(EVR_RTX_TIMER_START_DISABLE))
-extern void EvrRtxTimerStart (osTimerId_t timer_id, uint32_t ticks);
-#else
-#define EvrRtxTimerStart(timer_id, ticks)
-#endif
-
-/**
-  \brief  Event on successful timer start (Op)
-  \param[in]  timer_id      timer ID obtained by \ref osTimerNew.
-*/
-#if (!defined(EVR_RTX_DISABLE) && (OS_EVR_TIMER != 0) && !defined(EVR_RTX_TIMER_STARTED_DISABLE))
-extern void EvrRtxTimerStarted (osTimerId_t timer_id);
-#else
-#define EvrRtxTimerStarted(timer_id)
-#endif
-
-/**
-  \brief  Event on timer stop (API)
-  \param[in]  timer_id      timer ID obtained by \ref osTimerNew.
-*/
-#if (!defined(EVR_RTX_DISABLE) && (OS_EVR_TIMER != 0) && !defined(EVR_RTX_TIMER_STOP_DISABLE))
-extern void EvrRtxTimerStop (osTimerId_t timer_id);
-#else
-#define EvrRtxTimerStop(timer_id)
-#endif
-
-/**
-  \brief  Event on successful timer stop (Op)
-  \param[in]  timer_id      timer ID obtained by \ref osTimerNew.
-*/
-#if (!defined(EVR_RTX_DISABLE) && (OS_EVR_TIMER != 0) && !defined(EVR_RTX_TIMER_STOPPED_DISABLE))
-extern void EvrRtxTimerStopped (osTimerId_t timer_id);
-#else
-#define EvrRtxTimerStopped(timer_id)
-#endif
-
-/**
-  \brief  Event on timer running state check (API)
-  \param[in]  timer_id      timer ID obtained by \ref osTimerNew.
-  \param[in]  running       running state: 0 not running, 1 running.
-*/
-#if (!defined(EVR_RTX_DISABLE) && (OS_EVR_TIMER != 0) && !defined(EVR_RTX_TIMER_IS_RUNNING_DISABLE))
-extern void EvrRtxTimerIsRunning (osTimerId_t timer_id, uint32_t running);
-#else
-#define EvrRtxTimerIsRunning(timer_id, running)
-#endif
-
-/**
-  \brief  Event on timer delete (API)
-  \param[in]  timer_id      timer ID obtained by \ref osTimerNew.
-*/
-#if (!defined(EVR_RTX_DISABLE) && (OS_EVR_TIMER != 0) && !defined(EVR_RTX_TIMER_DELETE_DISABLE))
-extern void EvrRtxTimerDelete (osTimerId_t timer_id);
-#else
-#define EvrRtxTimerDelete(timer_id)
-#endif
-
-/**
-  \brief  Event on successful timer delete (Op)
-  \param[in]  timer_id      timer ID obtained by \ref osTimerNew.
-*/
-#if (!defined(EVR_RTX_DISABLE) && (OS_EVR_TIMER != 0) && !defined(EVR_RTX_TIMER_DESTROYED_DISABLE))
-extern void EvrRtxTimerDestroyed (osTimerId_t timer_id);
-#else
-#define EvrRtxTimerDestroyed(timer_id)
-#endif
-
-
-//  ==== Event Flags Events ====
-
-/**
-  \brief  Event on event flags error (Error)
-  \param[in]  ef_id         event flags ID obtained by \ref osEventFlagsNew or NULL when ID is unknown.
-  \param[in]  status        extended execution status.
-*/
-#if (!defined(EVR_RTX_DISABLE) && (OS_EVR_EVFLAGS != 0) && !defined(EVR_RTX_EVENT_FLAGS_ERROR_DISABLE))
-extern void EvrRtxEventFlagsError (osEventFlagsId_t ef_id, int32_t status);
-#else
-#define EvrRtxEventFlagsError(ef_id, status)
-#endif
-
-/**
-  \brief  Event on event flags create and initialize (API)
-  \param[in]  attr          event flags attributes.
-*/
-#if (!defined(EVR_RTX_DISABLE) && (OS_EVR_EVFLAGS != 0) && !defined(EVR_RTX_EVENT_FLAGS_NEW_DISABLE))
-extern void EvrRtxEventFlagsNew (const osEventFlagsAttr_t *attr);
-#else
-#define EvrRtxEventFlagsNew(attr)
-#endif
-
-/**
-  \brief  Event on successful event flags create (Op)
-  \param[in]  ef_id         event flags ID obtained by \ref osEventFlagsNew.
-  \param[in]  name          pointer to event flags object name.
-*/
-#if (!defined(EVR_RTX_DISABLE) && (OS_EVR_EVFLAGS != 0) && !defined(EVR_RTX_EVENT_FLAGS_CREATED_DISABLE))
-extern void EvrRtxEventFlagsCreated (osEventFlagsId_t ef_id, const char *name);
-#else
-#define EvrRtxEventFlagsCreated(ef_id, name)
-#endif
-
-/**
-  \brief  Event on event flags name retrieve (API)
-  \param[in]  ef_id         event flags ID obtained by \ref osEventFlagsNew.
-  \param[in]  name          pointer to event flags object name.
-*/
-#if (!defined(EVR_RTX_DISABLE) && (OS_EVR_EVFLAGS != 0) && !defined(EVR_RTX_EVENT_FLAGS_GET_NAME_DISABLE))
-extern void EvrRtxEventFlagsGetName (osEventFlagsId_t ef_id, const char *name);
-#else
-#define EvrRtxEventFlagsGetName(ef_id, name)
-#endif
-
-/**
-  \brief  Event on event flags set (API)
-  \param[in]  ef_id         event flags ID obtained by \ref osEventFlagsNew.
-  \param[in]  flags         flags that shall be set.
-*/
-#if (!defined(EVR_RTX_DISABLE) && (OS_EVR_EVFLAGS != 0) && !defined(EVR_RTX_EVENT_FLAGS_SET_DISABLE))
-extern void EvrRtxEventFlagsSet (osEventFlagsId_t ef_id, uint32_t flags);
-#else
-#define EvrRtxEventFlagsSet(ef_id, flags)
-#endif
-
-/**
-  \brief  Event on successful event flags set (Op)
-  \param[in]  ef_id         event flags ID obtained by \ref osEventFlagsNew.
-  \param[in]  event_flags   event flags after setting.
-*/
-#if (!defined(EVR_RTX_DISABLE) && (OS_EVR_EVFLAGS != 0) && !defined(EVR_RTX_EVENT_FLAGS_SET_DONE_DISABLE))
-extern void EvrRtxEventFlagsSetDone (osEventFlagsId_t ef_id, uint32_t event_flags);
-#else
-#define EvrRtxEventFlagsSetDone(ef_id, event_flags)
-#endif
-
-/**
-  \brief  Event on event flags clear (API)
-  \param[in]  ef_id         event flags ID obtained by \ref osEventFlagsNew.
-  \param[in]  flags         flags that shall be cleared.
-*/
-#if (!defined(EVR_RTX_DISABLE) && (OS_EVR_EVFLAGS != 0) && !defined(EVR_RTX_EVENT_FLAGS_CLEAR_DISABLE))
-extern void EvrRtxEventFlagsClear (osEventFlagsId_t ef_id, uint32_t flags);
-#else
-#define EvrRtxEventFlagsClear(ef_id, flags)
-#endif
-
-/**
-  \brief  Event on successful event flags clear (Op)
-  \param[in]  ef_id         event flags ID obtained by \ref osEventFlagsNew.
-  \param[in]  event_flags   event flags before clearing.
-*/
-#if (!defined(EVR_RTX_DISABLE) && (OS_EVR_EVFLAGS != 0) && !defined(EVR_RTX_EVENT_FLAGS_CLEAR_DONE_DISABLE))
-extern void EvrRtxEventFlagsClearDone (osEventFlagsId_t ef_id, uint32_t event_flags);
-#else
-#define EvrRtxEventFlagsClearDone(ef_id, event_flags)
-#endif
-
-/**
-  \brief  Event on event flags retrieve (API)
-  \param[in]  ef_id         event flags ID obtained by \ref osEventFlagsNew.
-  \param[in]  event_flags   current event flags.
-*/
-#if (!defined(EVR_RTX_DISABLE) && (OS_EVR_EVFLAGS != 0) && !defined(EVR_RTX_EVENT_FLAGS_GET_DISABLE))
-extern void EvrRtxEventFlagsGet (osEventFlagsId_t ef_id, uint32_t event_flags);
-#else
-#define EvrRtxEventFlagsGet(ef_id, event_flags)
-#endif
-
-/**
-  \brief  Event on wait for event flags (API)
-  \param[in]  ef_id         event flags ID obtained by \ref osEventFlagsNew.
-  \param[in]  flags         flags to wait for.
-  \param[in]  options       flags options (osFlagsXxxx).
-  \param[in]  timeout       \ref CMSIS_RTOS_TimeOutValue or 0 in case of no time-out.
-*/
-#if (!defined(EVR_RTX_DISABLE) && (OS_EVR_EVFLAGS != 0) && !defined(EVR_RTX_EVENT_FLAGS_WAIT_DISABLE))
-extern void EvrRtxEventFlagsWait (osEventFlagsId_t ef_id, uint32_t flags, uint32_t options, uint32_t timeout);
-#else
-#define EvrRtxEventFlagsWait(ef_id, flags, options, timeout)
-#endif
-
-/**
-  \brief  Event on pending wait for event flags (Op)
-  \param[in]  ef_id         event flags ID obtained by \ref osEventFlagsNew.
-  \param[in]  flags         flags to wait for.
-  \param[in]  options       flags options (osFlagsXxxx).
-  \param[in]  timeout       \ref CMSIS_RTOS_TimeOutValue or 0 in case of no time-out.
-*/
-#if (!defined(EVR_RTX_DISABLE) && (OS_EVR_EVFLAGS != 0) && !defined(EVR_RTX_EVENT_FLAGS_WAIT_PENDING_DISABLE))
-extern void EvrRtxEventFlagsWaitPending (osEventFlagsId_t ef_id, uint32_t flags, uint32_t options, uint32_t timeout);
-#else
-#define EvrRtxEventFlagsWaitPending(ef_id, flags, options, timeout)
-#endif
-
-/**
-  \brief  Event on wait timeout for event flags (Op)
-  \param[in]  ef_id         event flags ID obtained by \ref osEventFlagsNew.
-*/
-#if (!defined(EVR_RTX_DISABLE) && (OS_EVR_EVFLAGS != 0) && !defined(EVR_RTX_EVENT_FLAGS_WAIT_TIMEOUT_DISABLE))
-extern void EvrRtxEventFlagsWaitTimeout (osEventFlagsId_t ef_id);
-#else
-#define EvrRtxEventFlagsWaitTimeout(ef_id)
-#endif
-
-/**
-  \brief  Event on successful wait for event flags (Op)
-  \param[in]  ef_id         event flags ID obtained by \ref osEventFlagsNew.
-  \param[in]  flags         flags to wait for.
-  \param[in]  options       flags options (osFlagsXxxx).
-  \param[in]  event_flags   event flags before clearing or 0 if specified flags have not been set.
-*/
-#if (!defined(EVR_RTX_DISABLE) && (OS_EVR_EVFLAGS != 0) && !defined(EVR_RTX_EVENT_FLAGS_WAIT_COMPLETED_DISABLE))
-extern void EvrRtxEventFlagsWaitCompleted (osEventFlagsId_t ef_id, uint32_t flags, uint32_t options, uint32_t event_flags);
-#else
-#define EvrRtxEventFlagsWaitCompleted(ef_id, flags, options, event_flags)
-#endif
-
-/**
-  \brief  Event on unsuccessful wait for event flags (Op)
-  \param[in]  ef_id         event flags ID obtained by \ref osEventFlagsNew.
-  \param[in]  flags         flags to wait for.
-  \param[in]  options       flags options (osFlagsXxxx).
-*/
-#if (!defined(EVR_RTX_DISABLE) && (OS_EVR_EVFLAGS != 0) && !defined(EVR_RTX_EVENT_FLAGS_WAIT_NOT_COMPLETED_DISABLE))
-extern void EvrRtxEventFlagsWaitNotCompleted (osEventFlagsId_t ef_id, uint32_t flags, uint32_t options);
-#else
-#define EvrRtxEventFlagsWaitNotCompleted(ef_id, flags, options)
-#endif
-
-/**
-  \brief  Event on event flags delete (API)
-  \param[in]  ef_id         event flags ID obtained by \ref osEventFlagsNew.
-*/
-#if (!defined(EVR_RTX_DISABLE) && (OS_EVR_EVFLAGS != 0) && !defined(EVR_RTX_EVENT_FLAGS_DELETE_DISABLE))
-extern void EvrRtxEventFlagsDelete (osEventFlagsId_t ef_id);
-#else
-#define EvrRtxEventFlagsDelete(ef_id)
-#endif
-
-/**
-  \brief  Event on successful event flags delete (Op)
-  \param[in]  ef_id         event flags ID obtained by \ref osEventFlagsNew.
-*/
-#if (!defined(EVR_RTX_DISABLE) && (OS_EVR_EVFLAGS != 0) && !defined(EVR_RTX_EVENT_FLAGS_DESTROYED_DISABLE))
-extern void EvrRtxEventFlagsDestroyed (osEventFlagsId_t ef_id);
-#else
-#define EvrRtxEventFlagsDestroyed(ef_id)
-#endif
-
-
-//  ==== Mutex Events ====
-
-/**
-  \brief  Event on mutex error (Error)
-  \param[in]  mutex_id  mutex ID obtained by \ref osMutexNew or NULL when ID is unknown.
-  \param[in]  status    extended execution status.
-*/
-#if (!defined(EVR_RTX_DISABLE) && (OS_EVR_MUTEX != 0) && !defined(EVR_RTX_MUTEX_ERROR_DISABLE))
-extern void EvrRtxMutexError (osMutexId_t mutex_id, int32_t status);
-#else
-#define EvrRtxMutexError(mutex_id, status)
-#endif
-
-/**
-  \brief  Event on mutex create and initialize (API)
-  \param[in]  attr      mutex attributes.
-*/
-#if (!defined(EVR_RTX_DISABLE) && (OS_EVR_MUTEX != 0) && !defined(EVR_RTX_MUTEX_NEW_DISABLE))
-extern void EvrRtxMutexNew (const osMutexAttr_t *attr);
-#else
-#define EvrRtxMutexNew(attr)
-#endif
-
-/**
-  \brief  Event on successful mutex create (Op)
-  \param[in]  mutex_id  mutex ID obtained by \ref osMutexNew.
-  \param[in]  name      pointer to mutex object name.
-*/
-#if (!defined(EVR_RTX_DISABLE) && (OS_EVR_MUTEX != 0) && !defined(EVR_RTX_MUTEX_CREATED_DISABLE))
-extern void EvrRtxMutexCreated (osMutexId_t mutex_id, const char *name);
-#else
-#define EvrRtxMutexCreated(mutex_id, name)
-#endif
-
-/**
-  \brief  Event on mutex name retrieve (API)
-  \param[in]  mutex_id  mutex ID obtained by \ref osMutexNew.
-  \param[in]  name      pointer to mutex object name.
-*/
-#if (!defined(EVR_RTX_DISABLE) && (OS_EVR_MUTEX != 0) && !defined(EVR_RTX_MUTEX_GET_NAME_DISABLE))
-extern void EvrRtxMutexGetName (osMutexId_t mutex_id, const char *name);
-#else
-#define EvrRtxMutexGetName(mutex_id, name)
-#endif
-
-/**
-  \brief  Event on mutex acquire (API)
-  \param[in]  mutex_id  mutex ID obtained by \ref osMutexNew.
-  \param[in]  timeout   \ref CMSIS_RTOS_TimeOutValue or 0 in case of no time-out.
-*/
-#if (!defined(EVR_RTX_DISABLE) && (OS_EVR_MUTEX != 0) && !defined(EVR_RTX_MUTEX_ACQUIRE_DISABLE))
-extern void EvrRtxMutexAcquire (osMutexId_t mutex_id, uint32_t timeout);
-#else
-#define EvrRtxMutexAcquire(mutex_id, timeout)
-#endif
-
-/**
-  \brief  Event on pending mutex acquire (Op)
-  \param[in]  mutex_id  mutex ID obtained by \ref osMutexNew.
-  \param[in]  timeout   \ref CMSIS_RTOS_TimeOutValue or 0 in case of no time-out.
-*/
-#if (!defined(EVR_RTX_DISABLE) && (OS_EVR_MUTEX != 0) && !defined(EVR_RTX_MUTEX_ACQUIRE_PENDING_DISABLE))
-extern void EvrRtxMutexAcquirePending (osMutexId_t mutex_id, uint32_t timeout);
-#else
-#define EvrRtxMutexAcquirePending(mutex_id, timeout);
-#endif
-
-/**
-  \brief  Event on mutex acquire timeout (Op)
-  \param[in]  mutex_id  mutex ID obtained by \ref osMutexNew.
-*/
-#if (!defined(EVR_RTX_DISABLE) && (OS_EVR_MUTEX != 0) && !defined(EVR_RTX_MUTEX_ACQUIRE_TIMEOUT_DISABLE))
-extern void EvrRtxMutexAcquireTimeout (osMutexId_t mutex_id);
-#else
-#define EvrRtxMutexAcquireTimeout(mutex_id)
-#endif
-
-/**
-  \brief  Event on successful mutex acquire (Op)
-  \param[in]  mutex_id  mutex ID obtained by \ref osMutexNew.
-  \param[in]  lock      current number of times mutex object is locked.
-*/
-#if (!defined(EVR_RTX_DISABLE) && (OS_EVR_MUTEX != 0) && !defined(EVR_RTX_MUTEX_ACQUIRED_DISABLE))
-extern void EvrRtxMutexAcquired (osMutexId_t mutex_id, uint32_t lock);
-#else
-#define EvrRtxMutexAcquired(mutex_id, lock)
-#endif
-
-/**
-  \brief  Event on unsuccessful mutex acquire (Op)
-  \param[in]  mutex_id  mutex ID obtained by \ref osMutexNew.
-*/
-#if (!defined(EVR_RTX_DISABLE) && (OS_EVR_MUTEX != 0) && !defined(EVR_RTX_MUTEX_NOT_ACQUIRED_DISABLE))
-extern void EvrRtxMutexNotAcquired (osMutexId_t mutex_id);
-#else
-#define EvrRtxMutexNotAcquired(mutex_id)
-#endif
-
-/**
-  \brief  Event on mutex release (API)
-  \param[in]  mutex_id  mutex ID obtained by \ref osMutexNew.
-*/
-#if (!defined(EVR_RTX_DISABLE) && (OS_EVR_MUTEX != 0) && !defined(EVR_RTX_MUTEX_RELEASE_DISABLE))
-extern void EvrRtxMutexRelease (osMutexId_t mutex_id);
-#else
-#define EvrRtxMutexRelease(mutex_id)
-#endif
-
-/**
-  \brief  Event on successful mutex release (Op)
-  \param[in]  mutex_id  mutex ID obtained by \ref osMutexNew.
-  \param[in]  lock      current number of times mutex object is locked.
-*/
-#if (!defined(EVR_RTX_DISABLE) && (OS_EVR_MUTEX != 0) && !defined(EVR_RTX_MUTEX_RELEASED_DISABLE))
-extern void EvrRtxMutexReleased (osMutexId_t mutex_id, uint32_t lock);
-#else
-#define EvrRtxMutexReleased(mutex_id, lock)
-#endif
-
-/**
-  \brief  Event on mutex owner retrieve (API)
-  \param[in]  mutex_id  mutex ID obtained by \ref osMutexNew.
-  \param[in]  thread_id thread ID obtained by \ref osThreadNew or \ref osThreadGetId.
-*/
-#if (!defined(EVR_RTX_DISABLE) && (OS_EVR_MUTEX != 0) && !defined(EVR_RTX_MUTEX_GET_OWNER_DISABLE))
-extern void EvrRtxMutexGetOwner (osMutexId_t mutex_id, osThreadId_t thread_id);
-#else
-#define EvrRtxMutexGetOwner(mutex_id, thread_id)
-#endif
-
-/**
-  \brief  Event on mutex delete (API)
-  \param[in]  mutex_id  mutex ID obtained by \ref osMutexNew.
-*/
-#if (!defined(EVR_RTX_DISABLE) && (OS_EVR_MUTEX != 0) && !defined(EVR_RTX_MUTEX_DELETE_DISABLE))
-extern void EvrRtxMutexDelete (osMutexId_t mutex_id);
-#else
-#define EvrRtxMutexDelete(mutex_id)
-#endif
-
-/**
-  \brief  Event on successful mutex delete (Op)
-  \param[in]  mutex_id  mutex ID obtained by \ref osMutexNew.
-*/
-#if (!defined(EVR_RTX_DISABLE) && (OS_EVR_MUTEX != 0) && !defined(EVR_RTX_MUTEX_DESTROYED_DISABLE))
-extern void EvrRtxMutexDestroyed (osMutexId_t mutex_id);
-#else
-#define EvrRtxMutexDestroyed(mutex_id)
-#endif
-
-
-//  ==== Semaphore Events ====
-
-/**
-  \brief  Event on semaphore error (Error)
-  \param[in]  semaphore_id  semaphore ID obtained by \ref osSemaphoreNew or NULL when ID is unknown.
-  \param[in]  status        extended execution status.
-*/
-#if (!defined(EVR_RTX_DISABLE) && (OS_EVR_SEMAPHORE != 0) && !defined(EVR_RTX_SEMAPHORE_ERROR_DISABLE))
-extern void EvrRtxSemaphoreError (osSemaphoreId_t semaphore_id, int32_t status);
-#else
-#define EvrRtxSemaphoreError(semaphore_id, status)
-#endif
-
-/**
-  \brief  Event on semaphore create and initialize (API)
-  \param[in]  max_count     maximum number of available tokens.
-  \param[in]  initial_count initial number of available tokens.
-  \param[in]  attr          semaphore attributes.
-*/
-#if (!defined(EVR_RTX_DISABLE) && (OS_EVR_SEMAPHORE != 0) && !defined(EVR_RTX_SEMAPHORE_NEW_DISABLE))
-extern void EvrRtxSemaphoreNew (uint32_t max_count, uint32_t initial_count, const osSemaphoreAttr_t *attr);
-#else
-#define EvrRtxSemaphoreNew(max_count, initial_count, attr)
-#endif
-
-/**
-  \brief  Event on successful semaphore create (Op)
-  \param[in]  semaphore_id  semaphore ID obtained by \ref osSemaphoreNew.
-  \param[in]  name          pointer to semaphore object name.
-*/
-#if (!defined(EVR_RTX_DISABLE) && (OS_EVR_SEMAPHORE != 0) && !defined(EVR_RTX_SEMAPHORE_CREATED_DISABLE))
-extern void EvrRtxSemaphoreCreated (osSemaphoreId_t semaphore_id, const char *name);
-#else
-#define EvrRtxSemaphoreCreated(semaphore_id, name)
-#endif
-
-/**
-  \brief  Event on semaphore name retrieve (API)
-  \param[in]  semaphore_id  semaphore ID obtained by \ref osSemaphoreNew.
-  \param[in]  name          pointer to semaphore object name.
-*/
-#if (!defined(EVR_RTX_DISABLE) && (OS_EVR_SEMAPHORE != 0) && !defined(EVR_RTX_SEMAPHORE_GET_NAME_DISABLE))
-extern void EvrRtxSemaphoreGetName (osSemaphoreId_t semaphore_id, const char *name);
-#else
-#define EvrRtxSemaphoreGetName(semaphore_id, name)
-#endif
-
-/**
-  \brief  Event on semaphore acquire (API)
-  \param[in]  semaphore_id  semaphore ID obtained by \ref osSemaphoreNew.
-  \param[in]  timeout       \ref CMSIS_RTOS_TimeOutValue or 0 in case of no time-out.
-*/
-#if (!defined(EVR_RTX_DISABLE) && (OS_EVR_SEMAPHORE != 0) && !defined(EVR_RTX_SEMAPHORE_ACQUIRE_DISABLE))
-extern void EvrRtxSemaphoreAcquire (osSemaphoreId_t semaphore_id, uint32_t timeout);
-#else
-#define EvrRtxSemaphoreAcquire(semaphore_id, timeout)
-#endif
-
-/**
-  \brief  Event on pending semaphore acquire (Op)
-  \param[in]  semaphore_id  semaphore ID obtained by \ref osSemaphoreNew.
-  \param[in]  timeout       \ref CMSIS_RTOS_TimeOutValue or 0 in case of no time-out.
-*/
-#if (!defined(EVR_RTX_DISABLE) && (OS_EVR_SEMAPHORE != 0) && !defined(EVR_RTX_SEMAPHORE_ACQUIRE_PENDING_DISABLE))
-extern void EvrRtxSemaphoreAcquirePending (osSemaphoreId_t semaphore_id, uint32_t timeout);
-#else
-#define EvrRtxSemaphoreAcquirePending(semaphore_id, timeout);
-#endif
-
-/**
-  \brief  Event on semaphore acquire timeout (Op)
-  \param[in]  semaphore_id  semaphore ID obtained by \ref osSemaphoreNew.
-*/
-#if (!defined(EVR_RTX_DISABLE) && (OS_EVR_SEMAPHORE != 0) && !defined(EVR_RTX_SEMAPHORE_ACQUIRE_TIMEOUT_DISABLE))
-extern void EvrRtxSemaphoreAcquireTimeout (osSemaphoreId_t semaphore_id);
-#else
-#define EvrRtxSemaphoreAcquireTimeout(semaphore_id)
-#endif
-
-/**
-  \brief  Event on successful semaphore acquire (Op)
-  \param[in]  semaphore_id  semaphore ID obtained by \ref osSemaphoreNew.
-  \param[in]  tokens        number of available tokens.
-*/
-#if (!defined(EVR_RTX_DISABLE) && (OS_EVR_SEMAPHORE != 0) && !defined(EVR_RTX_SEMAPHORE_ACQUIRED_DISABLE))
-extern void EvrRtxSemaphoreAcquired (osSemaphoreId_t semaphore_id, uint32_t tokens);
-#else
-#define EvrRtxSemaphoreAcquired(semaphore_id, tokens)
-#endif
-
-/**
-  \brief  Event on unsuccessful semaphore acquire (Op)
-  \param[in]  semaphore_id  semaphore ID obtained by \ref osSemaphoreNew.
-*/
-#if (!defined(EVR_RTX_DISABLE) && (OS_EVR_SEMAPHORE != 0) && !defined(EVR_RTX_SEMAPHORE_NOT_ACQUIRED_DISABLE))
-extern void EvrRtxSemaphoreNotAcquired (osSemaphoreId_t semaphore_id);
-#else
-#define EvrRtxSemaphoreNotAcquired(semaphore_id)
-#endif
-
-/**
-  \brief  Event on semaphore release (API)
-  \param[in]  semaphore_id  semaphore ID obtained by \ref osSemaphoreNew.
-*/
-#if (!defined(EVR_RTX_DISABLE) && (OS_EVR_SEMAPHORE != 0) && !defined(EVR_RTX_SEMAPHORE_RELEASE_DISABLE))
-extern void EvrRtxSemaphoreRelease (osSemaphoreId_t semaphore_id);
-#else
-#define EvrRtxSemaphoreRelease(semaphore_id)
-#endif
-
-/**
-  \brief  Event on successful semaphore release (Op)
-  \param[in]  semaphore_id  semaphore ID obtained by \ref osSemaphoreNew.
-  \param[in]  tokens        number of available tokens.
-*/
-#if (!defined(EVR_RTX_DISABLE) && (OS_EVR_SEMAPHORE != 0) && !defined(EVR_RTX_SEMAPHORE_RELEASED_DISABLE))
-extern void EvrRtxSemaphoreReleased (osSemaphoreId_t semaphore_id, uint32_t tokens);
-#else
-#define EvrRtxSemaphoreReleased(semaphore_id, tokens)
-#endif
-
-/**
-  \brief  Event on semaphore token count retrieval (API)
-  \param[in]  semaphore_id  semaphore ID obtained by \ref osSemaphoreNew.
-  \param[in]  count         current number of available tokens.
-*/
-#if (!defined(EVR_RTX_DISABLE) && (OS_EVR_SEMAPHORE != 0) && !defined(EVR_RTX_SEMAPHORE_GET_COUNT_DISABLE))
-extern void EvrRtxSemaphoreGetCount (osSemaphoreId_t semaphore_id, uint32_t count);
-#else
-#define EvrRtxSemaphoreGetCount(semaphore_id, count)
-#endif
-
-/**
-  \brief  Event on semaphore delete (API)
-  \param[in]  semaphore_id  semaphore ID obtained by \ref osSemaphoreNew.
-*/
-#if (!defined(EVR_RTX_DISABLE) && (OS_EVR_SEMAPHORE != 0) && !defined(EVR_RTX_SEMAPHORE_DELETE_DISABLE))
-extern void EvrRtxSemaphoreDelete (osSemaphoreId_t semaphore_id);
-#else
-#define EvrRtxSemaphoreDelete(semaphore_id)
-#endif
-
-/**
-  \brief  Event on successful semaphore delete (Op)
-  \param[in]  semaphore_id  semaphore ID obtained by \ref osSemaphoreNew.
-*/
-#if (!defined(EVR_RTX_DISABLE) && (OS_EVR_SEMAPHORE != 0) && !defined(EVR_RTX_SEMAPHORE_DESTROYED_DISABLE))
-extern void EvrRtxSemaphoreDestroyed (osSemaphoreId_t semaphore_id);
-#else
-#define EvrRtxSemaphoreDestroyed(semaphore_id)
-#endif
-
-
-//  ==== Memory Pool Events ====
-
-/**
-  \brief  Event on memory pool error (Error)
-  \param[in]  mp_id         memory pool ID obtained by \ref osMemoryPoolNew or NULL when ID is unknown.
-  \param[in]  status        extended execution status.
-*/
-#if (!defined(EVR_RTX_DISABLE) && (OS_EVR_MEMPOOL != 0) && !defined(EVR_RTX_MEMORY_POOL_ERROR_DISABLE))
-extern void EvrRtxMemoryPoolError (osMemoryPoolId_t mp_id, int32_t status);
-#else
-#define EvrRtxMemoryPoolError(mp_id, status)
-#endif
-
-/**
-  \brief  Event on memory pool create and initialize (API)
-  \param[in]  block_count   maximum number of memory blocks in memory pool.
-  \param[in]  block_size    memory block size in bytes.
-  \param[in]  attr          memory pool attributes; NULL: default values.
-*/
-#if (!defined(EVR_RTX_DISABLE) && (OS_EVR_MEMPOOL != 0) && !defined(EVR_RTX_MEMORY_POOL_NEW_DISABLE))
-extern void EvrRtxMemoryPoolNew (uint32_t block_count, uint32_t block_size, const osMemoryPoolAttr_t *attr);
-#else
-#define EvrRtxMemoryPoolNew(block_count, block_size, attr)
-#endif
-
-/**
-  \brief  Event on successful memory pool create (Op)
-  \param[in]  mp_id         memory pool ID obtained by \ref osMemoryPoolNew.
-  \param[in]  name          pointer to memory pool object name.
-*/
-#if (!defined(EVR_RTX_DISABLE) && (OS_EVR_MEMPOOL != 0) && !defined(EVR_RTX_MEMORY_POOL_CREATED_DISABLE))
-extern void EvrRtxMemoryPoolCreated (osMemoryPoolId_t mp_id, const char *name);
-#else
-#define EvrRtxMemoryPoolCreated(mp_id, name)
-#endif
-
-/**
-  \brief  Event on memory pool name retrieve (API)
-  \param[in]  mp_id         memory pool ID obtained by \ref osMemoryPoolNew.
-  \param[in]  name          pointer to memory pool object name.
-*/
-#if (!defined(EVR_RTX_DISABLE) && (OS_EVR_MEMPOOL != 0) && !defined(EVR_RTX_MEMORY_POOL_GET_NAME_DISABLE))
-extern void EvrRtxMemoryPoolGetName (osMemoryPoolId_t mp_id, const char *name);
-#else
-#define EvrRtxMemoryPoolGetName(mp_id, name)
-#endif
-
-/**
-  \brief  Event on memory pool allocation (API)
-  \param[in]  mp_id         memory pool ID obtained by \ref osMemoryPoolNew.
-  \param[in]  timeout       \ref CMSIS_RTOS_TimeOutValue or 0 in case of no time-out.
-*/
-#if (!defined(EVR_RTX_DISABLE) && (OS_EVR_MEMPOOL != 0) && !defined(EVR_RTX_MEMORY_POOL_ALLOC_DISABLE))
-extern void EvrRtxMemoryPoolAlloc (osMemoryPoolId_t mp_id, uint32_t timeout);
-#else
-#define EvrRtxMemoryPoolAlloc(mp_id, timeout)
-#endif
-
-/**
-  \brief  Event on pending memory pool allocation (Op)
-  \param[in]  mp_id         memory pool ID obtained by \ref osMemoryPoolNew.
-  \param[in]  timeout       \ref CMSIS_RTOS_TimeOutValue or 0 in case of no time-out.
-*/
-#if (!defined(EVR_RTX_DISABLE) && (OS_EVR_MEMPOOL != 0) && !defined(EVR_RTX_MEMORY_POOL_ALLOC_PENDING_DISABLE))
-extern void EvrRtxMemoryPoolAllocPending (osMemoryPoolId_t mp_id, uint32_t timeout);
-#else
-#define EvrRtxMemoryPoolAllocPending(mp_id, timeout)
-#endif
-
-/**
-  \brief  Event on memory pool allocation timeout (Op)
-  \param[in]  mp_id         memory pool ID obtained by \ref osMemoryPoolNew.
-*/
-#if (!defined(EVR_RTX_DISABLE) && (OS_EVR_MEMPOOL != 0) && !defined(EVR_RTX_MEMORY_POOL_ALLOC_TIMEOUT_DISABLE))
-extern void EvrRtxMemoryPoolAllocTimeout (osMemoryPoolId_t mp_id);
-#else
-#define EvrRtxMemoryPoolAllocTimeout(mp_id)
-#endif
-
-/**
-  \brief  Event on successful memory pool allocation (Op)
-  \param[in]  mp_id         memory pool ID obtained by \ref osMemoryPoolNew.
-  \param[in]  block         address of the allocated memory block.
-*/
-#if (!defined(EVR_RTX_DISABLE) && (OS_EVR_MEMPOOL != 0) && !defined(EVR_RTX_MEMORY_POOL_ALLOCATED_DISABLE))
-extern void EvrRtxMemoryPoolAllocated (osMemoryPoolId_t mp_id, void *block);
-#else
-#define EvrRtxMemoryPoolAllocated(mp_id, block)
-#endif
-
-/**
-  \brief  Event on unsuccessful memory pool allocation (Op)
-  \param[in]  mp_id         memory pool ID obtained by \ref osMemoryPoolNew.
-*/
-#if (!defined(EVR_RTX_DISABLE) && (OS_EVR_MEMPOOL != 0) && !defined(EVR_RTX_MEMORY_POOL_ALLOC_FAILED_DISABLE))
-extern void EvrRtxMemoryPoolAllocFailed (osMemoryPoolId_t mp_id);
-#else
-#define EvrRtxMemoryPoolAllocFailed(mp_id)
-#endif
-
-/**
-  \brief  Event on memory pool free (API)
-  \param[in]  mp_id         memory pool ID obtained by \ref osMemoryPoolNew.
-  \param[in]  block         address of the allocated memory block to be returned to the memory pool.
-*/
-#if (!defined(EVR_RTX_DISABLE) && (OS_EVR_MEMPOOL != 0) && !defined(EVR_RTX_MEMORY_POOL_FREE_DISABLE))
-extern void EvrRtxMemoryPoolFree (osMemoryPoolId_t mp_id, void *block);
-#else
-#define EvrRtxMemoryPoolFree(mp_id, block)
-#endif
-
-/**
-  \brief  Event on successful memory pool free (Op)
-  \param[in]  mp_id         memory pool ID obtained by \ref osMemoryPoolNew.
-  \param[in]  block         address of the allocated memory block to be returned to the memory pool.
-*/
-#if (!defined(EVR_RTX_DISABLE) && (OS_EVR_MEMPOOL != 0) && !defined(EVR_RTX_MEMORY_POOL_DEALLOCATED_DISABLE))
-extern void EvrRtxMemoryPoolDeallocated (osMemoryPoolId_t mp_id, void *block);
-#else
-#define EvrRtxMemoryPoolDeallocated(mp_id, block)
-#endif
-
-/**
-  \brief  Event on unsuccessful memory pool free (Op)
-  \param[in]  mp_id         memory pool ID obtained by \ref osMemoryPoolNew.
-  \param[in]  block         address of the allocated memory block to be returned to the memory pool.
-*/
-#if (!defined(EVR_RTX_DISABLE) && (OS_EVR_MEMPOOL != 0) && !defined(EVR_RTX_MEMORY_POOL_FREE_FAILED_DISABLE))
-extern void EvrRtxMemoryPoolFreeFailed (osMemoryPoolId_t mp_id, void *block);
-#else
-#define EvrRtxMemoryPoolFreeFailed(mp_id, block)
-#endif
-
-/**
-  \brief  Event on memory pool capacity retrieve (API)
-  \param[in]  mp_id         memory pool ID obtained by \ref osMemoryPoolNew.
-  \param[in]  capacity      maximum number of memory blocks.
-*/
-#if (!defined(EVR_RTX_DISABLE) && (OS_EVR_MEMPOOL != 0) && !defined(EVR_RTX_MEMORY_POOL_GET_CAPACITY_DISABLE))
-extern void EvrRtxMemoryPoolGetCapacity (osMemoryPoolId_t mp_id, uint32_t capacity);
-#else
-#define EvrRtxMemoryPoolGetCapacity(mp_id, capacity)
-#endif
-
-/**
-  \brief  Event on memory pool block size retrieve (API)
-  \param[in]  mp_id         memory pool ID obtained by \ref osMemoryPoolNew.
-  \param[in]  block_size    memory block size in bytes.
-*/
-#if (!defined(EVR_RTX_DISABLE) && (OS_EVR_MEMPOOL != 0) && !defined(EVR_RTX_MEMORY_POOL_GET_BLOCK_SZIE_DISABLE))
-extern void EvrRtxMemoryPoolGetBlockSize (osMemoryPoolId_t mp_id, uint32_t block_size);
-#else
-#define EvrRtxMemoryPoolGetBlockSize(mp_id, block_size)
-#endif
-
-/**
-  \brief  Event on used memory pool blocks retrieve (API)
-  \param[in]  mp_id         memory pool ID obtained by \ref osMemoryPoolNew.
-  \param[in]  count         number of memory blocks used.
-*/
-#if (!defined(EVR_RTX_DISABLE) && (OS_EVR_MEMPOOL != 0) && !defined(EVR_RTX_MEMORY_POOL_GET_COUNT_DISABLE))
-extern void EvrRtxMemoryPoolGetCount (osMemoryPoolId_t mp_id, uint32_t count);
-#else
-#define EvrRtxMemoryPoolGetCount(mp_id, count)
-#endif
-
-/**
-  \brief  Event on available memory pool blocks retrieve (API)
-  \param[in]  mp_id         memory pool ID obtained by \ref osMemoryPoolNew.
-  \param[in]  space         number of memory blocks available.
-*/
-#if (!defined(EVR_RTX_DISABLE) && (OS_EVR_MEMPOOL != 0) && !defined(EVR_RTX_MEMORY_POOL_GET_SPACE_DISABLE))
-extern void EvrRtxMemoryPoolGetSpace (osMemoryPoolId_t mp_id, uint32_t space);
-#else
-#define EvrRtxMemoryPoolGetSpace(mp_id, space)
-#endif
-
-/**
-  \brief  Event on memory pool delete (API)
-  \param[in]  mp_id         memory pool ID obtained by \ref osMemoryPoolNew.
-*/
-#if (!defined(EVR_RTX_DISABLE) && (OS_EVR_MEMPOOL != 0) && !defined(EVR_RTX_MEMORY_POOL_DELETE_DISABLE))
-extern void EvrRtxMemoryPoolDelete (osMemoryPoolId_t mp_id);
-#else
-#define EvrRtxMemoryPoolDelete(mp_id)
-#endif
-
-/**
-  \brief  Event on successful memory pool delete (Op)
-  \param[in]  mp_id         memory pool ID obtained by \ref osMemoryPoolNew.
-*/
-#if (!defined(EVR_RTX_DISABLE) && (OS_EVR_MEMPOOL != 0) && !defined(EVR_RTX_MEMORY_POOL_DESTROYED_DISABLE))
-extern void EvrRtxMemoryPoolDestroyed (osMemoryPoolId_t mp_id);
-#else
-#define EvrRtxMemoryPoolDestroyed(mp_id)
-#endif
-
-
-//  ==== Message Queue Events ====
-
-/**
-  \brief  Event on message queue error (Error)
-  \param[in]  mq_id         message queue ID obtained by \ref osMessageQueueNew or NULL when ID is unknown.
-  \param[in]  status        extended execution status.
-*/
-#if (!defined(EVR_RTX_DISABLE) && (OS_EVR_MSGQUEUE != 0) && !defined(EVR_RTX_MESSAGE_QUEUE_ERROR_DISABLE))
-extern void EvrRtxMessageQueueError (osMessageQueueId_t mq_id, int32_t status);
-#else
-#define EvrRtxMessageQueueError(mq_id, status)
-#endif
-
-/**
-  \brief  Event on message queue create and initialization (API)
-  \param[in]  msg_count     maximum number of messages in queue.
-  \param[in]  msg_size      maximum message size in bytes.
-  \param[in]  attr          message queue attributes; NULL: default values.
-*/
-#if (!defined(EVR_RTX_DISABLE) && (OS_EVR_MSGQUEUE != 0) && !defined(EVR_RTX_MESSAGE_QUEUE_NEW_DISABLE))
-extern void EvrRtxMessageQueueNew (uint32_t msg_count, uint32_t msg_size, const osMessageQueueAttr_t *attr);
-#else
-#define EvrRtxMessageQueueNew(msg_count, msg_size, attr)
-#endif
-
-/**
-  \brief  Event on successful message queue create (Op)
-  \param[in]  mq_id         message queue ID obtained by \ref osMessageQueueNew.
-  \param[in]  name          pointer to message queue object name.
-*/
-#if (!defined(EVR_RTX_DISABLE) && (OS_EVR_MSGQUEUE != 0) && !defined(EVR_RTX_MESSAGE_QUEUE_CREATED_DISABLE))
-extern void EvrRtxMessageQueueCreated (osMessageQueueId_t mq_id, const char *name);
-#else
-#define EvrRtxMessageQueueCreated(mq_id, name)
-#endif
-
-/**
-  \brief  Event on message queue name retrieve(API)
-  \param[in]  mq_id         message queue ID obtained by \ref osMessageQueueNew.
-  \param[in]  name          pointer to message queue object name.
-*/
-#if (!defined(EVR_RTX_DISABLE) && (OS_EVR_MSGQUEUE != 0) && !defined(EVR_RTX_MESSAGE_QUEUE_GET_NAME_DISABLE))
-extern void EvrRtxMessageQueueGetName (osMessageQueueId_t mq_id, const char *name);
-#else
-#define EvrRtxMessageQueueGetName(mq_id, name)
-#endif
-
-/**
-  \brief  Event on message put (API)
-  \param[in]  mq_id         message queue ID obtained by \ref osMessageQueueNew.
-  \param[in]  msg_ptr       pointer to buffer with message to put into a queue.
-  \param[in]  msg_prio      message priority.
-  \param[in]  timeout       \ref CMSIS_RTOS_TimeOutValue or 0 in case of no time-out.
-*/
-#if (!defined(EVR_RTX_DISABLE) && (OS_EVR_MSGQUEUE != 0) && !defined(EVR_RTX_MESSAGE_QUEUE_PUT_DISABLE))
-extern void EvrRtxMessageQueuePut (osMessageQueueId_t mq_id, const void *msg_ptr, uint8_t msg_prio, uint32_t timeout);
-#else
-#define EvrRtxMessageQueuePut(mq_id, msg_ptr, msg_prio, timeout)
-#endif
-
-/**
-  \brief  Event on pending message put (Op)
-  \param[in]  mq_id         message queue ID obtained by \ref osMessageQueueNew.
-  \param[in]  msg_ptr       pointer to buffer with message to put into a queue.
-  \param[in]  timeout       \ref CMSIS_RTOS_TimeOutValue or 0 in case of no time-out.
-*/
-#if (!defined(EVR_RTX_DISABLE) && (OS_EVR_MSGQUEUE != 0) && !defined(EVR_RTX_MESSAGE_QUEUE_PUT_PENDING_DISABLE))
-extern void EvrRtxMessageQueuePutPending (osMessageQueueId_t mq_id, const void *msg_ptr, uint32_t timeout);
-#else
-#define EvrRtxMessageQueuePutPending(mq_id, msg_ptr, timeout)
-#endif
-
-/**
-  \brief  Event on message put timeout (Op)
-  \param[in]  mq_id         message queue ID obtained by \ref osMessageQueueNew.
-*/
-#if (!defined(EVR_RTX_DISABLE) && (OS_EVR_MSGQUEUE != 0) && !defined(EVR_RTX_MESSAGE_QUEUE_PUT_TIMEOUT_DISABLE))
-extern void EvrRtxMessageQueuePutTimeout (osMessageQueueId_t mq_id);
-#else
-#define EvrRtxMessageQueuePutTimeout(mq_id)
-#endif
-
-/**
-  \brief  Event on pending message insert (Op)
-  \param[in]  mq_id         message queue ID obtained by \ref osMessageQueueNew.
-  \param[in]  msg_ptr       pointer to buffer with message to put into a queue.
-*/
-#if (!defined(EVR_RTX_DISABLE) && (OS_EVR_MSGQUEUE != 0) && !defined(EVR_RTX_MESSAGE_QUEUE_INSERT_PENDING_DISABLE))
-extern void EvrRtxMessageQueueInsertPending (osMessageQueueId_t mq_id, const void *msg_ptr);
-#else
-#define EvrRtxMessageQueueInsertPending(mq_id, msg_ptr)
-#endif
-
-/**
-  \brief  Event on successful message insert (Op)
-  \param[in]  mq_id         message queue ID obtained by \ref osMessageQueueNew.
-  \param[in]  msg_ptr       pointer to buffer with message to put into a queue.
-*/
-#if (!defined(EVR_RTX_DISABLE) && (OS_EVR_MSGQUEUE != 0) && !defined(EVR_RTX_MESSAGE_QUEUE_INSERTED_DISABLE))
-extern void EvrRtxMessageQueueInserted (osMessageQueueId_t mq_id, const void *msg_ptr);
-#else
-#define EvrRtxMessageQueueInserted(mq_id, msg_ptr)
-#endif
-
-/**
-  \brief  Event on unsuccessful message insert (Op)
-  \param[in]  mq_id         message queue ID obtained by \ref osMessageQueueNew.
-  \param[in]  msg_ptr       pointer to buffer with message to put into a queue.
-*/
-#if (!defined(EVR_RTX_DISABLE) && (OS_EVR_MSGQUEUE != 0) && !defined(EVR_RTX_MESSAGE_QUEUE_NOT_INSERTED_DISABLE))
-extern void EvrRtxMessageQueueNotInserted (osMessageQueueId_t mq_id, const void *msg_ptr);
-#else
-#define EvrRtxMessageQueueNotInserted(mq_id, msg_ptr)
-#endif
-
-/**
-  \brief  Event on message get (API)
-  \param[in]  mq_id         message queue ID obtained by \ref osMessageQueueNew.
-  \param[in]  msg_ptr       pointer to buffer for message to get from a queue.
-  \param[in]  msg_prio      message priority.
-  \param[in]  timeout       \ref CMSIS_RTOS_TimeOutValue or 0 in case of no time-out.
-*/
-#if (!defined(EVR_RTX_DISABLE) && (OS_EVR_MSGQUEUE != 0) && !defined(EVR_RTX_MESSAGE_QUEUE_GET_DISABLE))
-extern void EvrRtxMessageQueueGet (osMessageQueueId_t mq_id, void *msg_ptr, uint8_t *msg_prio, uint32_t timeout);
-#else
-#define EvrRtxMessageQueueGet(mq_id, msg_ptr, msg_prio, timeout)
-#endif
-
-/**
-  \brief  Event on pending message get (Op)
-  \param[in]  mq_id         message queue ID obtained by \ref osMessageQueueNew.
-  \param[in]  msg_ptr       pointer to buffer for message to get from a queue.
-  \param[in]  timeout       \ref CMSIS_RTOS_TimeOutValue or 0 in case of no time-out.
-*/
-#if (!defined(EVR_RTX_DISABLE) && (OS_EVR_MSGQUEUE != 0) && !defined(EVR_RTX_MESSAGE_QUEUE_GET_PENDING_DISABLE))
-extern void EvrRtxMessageQueueGetPending (osMessageQueueId_t mq_id, void *msg_ptr, uint32_t timeout);
-#else
-#define EvrRtxMessageQueueGetPending(mq_id, msg_ptr, timeout)
-#endif
-
-/**
-  \brief  Event on message get timeout (Op)
-  \param[in]  mq_id         message queue ID obtained by \ref osMessageQueueNew.
-*/
-#if (!defined(EVR_RTX_DISABLE) && (OS_EVR_MSGQUEUE != 0) && !defined(EVR_RTX_MESSAGE_QUEUE_GET_TIMEOUT_DISABLE))
-extern void EvrRtxMessageQueueGetTimeout (osMessageQueueId_t mq_id);
-#else
-#define EvrRtxMessageQueueGetTimeout(mq_id)
-#endif
-
-/**
-  \brief  Event on successful message get (Op)
-  \param[in]  mq_id         message queue ID obtained by \ref osMessageQueueNew.
-  \param[in]  msg_ptr       pointer to buffer for message to get from a queue.
-*/
-#if (!defined(EVR_RTX_DISABLE) && (OS_EVR_MSGQUEUE != 0) && !defined(EVR_RTX_MESSAGE_QUEUE_RETRIEVED_DISABLE))
-extern void EvrRtxMessageQueueRetrieved (osMessageQueueId_t mq_id, void *msg_ptr);
-#else
-#define EvrRtxMessageQueueRetrieved(mq_id, msg_ptr)
-#endif
-
-/**
-  \brief  Event on unsuccessful message get (Op)
-  \param[in]  mq_id         message queue ID obtained by \ref osMessageQueueNew.
-  \param[in]  msg_ptr       pointer to buffer for message to get from a queue.
-*/
-#if (!defined(EVR_RTX_DISABLE) && (OS_EVR_MSGQUEUE != 0) && !defined(EVR_RTX_MESSAGE_QUEUE_NOT_RETRIEVED_DISABLE))
-extern void EvrRtxMessageQueueNotRetrieved (osMessageQueueId_t mq_id, void *msg_ptr);
-#else
-#define EvrRtxMessageQueueNotRetrieved(mq_id, msg_ptr)
-#endif
-
-/**
-  \brief  Event on message queue capacity retrieve (API)
-  \param[in]  mq_id         message queue ID obtained by \ref osMessageQueueNew.
-  \param[in]  capacity      maximum number of messages.
-*/
-#if (!defined(EVR_RTX_DISABLE) && (OS_EVR_MSGQUEUE != 0) && !defined(EVR_RTX_MESSAGE_QUEUE_GET_CAPACITY_DISABLE))
-extern void EvrRtxMessageQueueGetCapacity (osMessageQueueId_t mq_id, uint32_t capacity);
-#else
-#define EvrRtxMessageQueueGetCapacity(mq_id, capacity)
-#endif
-
-/**
-  \brief  Event on message queue message size retrieve (API)
-  \param[in]  mq_id         message queue ID obtained by \ref osMessageQueueNew.
-  \param[in]  msg_size      maximum message size in bytes.
-*/
-#if (!defined(EVR_RTX_DISABLE) && (OS_EVR_MSGQUEUE != 0) && !defined(EVR_RTX_MESSAGE_QUEUE_GET_MSG_SIZE_DISABLE))
-extern void EvrRtxMessageQueueGetMsgSize (osMessageQueueId_t mq_id, uint32_t msg_size);
-#else
-#define EvrRtxMessageQueueGetMsgSize(mq_id, msg_size)
-#endif
-
-/**
-  \brief  Event on message queue message count retrieve (API)
-  \param[in]  mq_id         message queue ID obtained by \ref osMessageQueueNew.
-  \param[in]  count         number of queued messages.
-*/
-#if (!defined(EVR_RTX_DISABLE) && (OS_EVR_MSGQUEUE != 0) && !defined(EVR_RTX_MESSAGE_QUEUE_GET_COUNT_DISABLE))
-extern void EvrRtxMessageQueueGetCount (osMessageQueueId_t mq_id, uint32_t count);
-#else
-#define EvrRtxMessageQueueGetCount(mq_id, count)
-#endif
-
-/**
-  \brief  Event on message queue message slots retrieve (API)
-  \param[in]  mq_id         message queue ID obtained by \ref osMessageQueueNew.
-  \param[in]  space         number of available slots for messages.
-*/
-#if (!defined(EVR_RTX_DISABLE) && (OS_EVR_MSGQUEUE != 0) && !defined(EVR_RTX_MESSAGE_QUEUE_GET_SPACE_DISABLE))
-extern void EvrRtxMessageQueueGetSpace (osMessageQueueId_t mq_id, uint32_t space);
-#else
-#define EvrRtxMessageQueueGetSpace(mq_id, space)
-#endif
-
-/**
-  \brief  Event on message queue reset (API)
-  \param[in]  mq_id         message queue ID obtained by \ref osMessageQueueNew.
-*/
-#if (!defined(EVR_RTX_DISABLE) && (OS_EVR_MSGQUEUE != 0) && !defined(EVR_RTX_MESSAGE_QUEUE_RESET_DISABLE))
-extern void EvrRtxMessageQueueReset (osMessageQueueId_t mq_id);
-#else
-#define EvrRtxMessageQueueReset(mq_id)
-#endif
-
-/**
-  \brief  Event on successful message queue reset (Op)
-  \param[in]  mq_id         message queue ID obtained by \ref osMessageQueueNew.
-*/
-#if (!defined(EVR_RTX_DISABLE) && (OS_EVR_MSGQUEUE != 0) && !defined(EVR_RTX_MESSAGE_QUEUE_RESET_DONE_DISABLE))
-extern void EvrRtxMessageQueueResetDone (osMessageQueueId_t mq_id);
-#else
-#define EvrRtxMessageQueueResetDone(mq_id)
-#endif
-
-/**
-  \brief  Event on message queue delete (API)
-  \param[in]  mq_id         message queue ID obtained by \ref osMessageQueueNew.
-*/
-#if (!defined(EVR_RTX_DISABLE) && (OS_EVR_MSGQUEUE != 0) && !defined(EVR_RTX_MESSAGE_QUEUE_DELETE_DISABLE))
-extern void EvrRtxMessageQueueDelete (osMessageQueueId_t mq_id);
-#else
-#define EvrRtxMessageQueueDelete(mq_id)
-#endif
-
-/**
-  \brief  Event on successful message queue delete (Op)
-  \param[in]  mq_id         message queue ID obtained by \ref osMessageQueueNew.
-*/
-#if (!defined(EVR_RTX_DISABLE) && (OS_EVR_MSGQUEUE != 0) && !defined(EVR_RTX_MESSAGE_QUEUE_DESTROYED_DISABLE))
-extern void EvrRtxMessageQueueDestroyed (osMessageQueueId_t mq_id);
-#else
-#define EvrRtxMessageQueueDestroyed(mq_id)
-#endif
-
-
-#endif  // RTX_EVR_H_
diff --git a/app_broker/CMSIS/RTOS2/RTX/Include/rtx_os.h b/app_broker/CMSIS/RTOS2/RTX/Include/rtx_os.h
deleted file mode 100644
index 2b348cc..0000000
--- a/app_broker/CMSIS/RTOS2/RTX/Include/rtx_os.h
+++ /dev/null
@@ -1,472 +0,0 @@
-/*
- * Copyright (c) 2013-2019 Arm Limited. All rights reserved.
- *
- * SPDX-License-Identifier: Apache-2.0
- *
- * Licensed under the Apache License, Version 2.0 (the License); you may
- * not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an AS IS BASIS, WITHOUT
- * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- * -----------------------------------------------------------------------------
- *
- * Project:     CMSIS-RTOS RTX
- * Title:       RTX OS definitions
- *
- * -----------------------------------------------------------------------------
- */
- 
-#ifndef RTX_OS_H_
-#define RTX_OS_H_
- 
-#include <stdint.h>
-#include <stddef.h>
-#include "cmsis_os2.h"
- 
-#ifdef  __cplusplus
-extern "C"
-{
-#endif
- 
- 
-/// Kernel Information
-#define osRtxVersionAPI      20010003   ///< API version (2.1.3)
-#define osRtxVersionKernel   50050000   ///< Kernel version (5.5.0)
-#define osRtxKernelId     "RTX V5.5.0"  ///< Kernel identification string
- 
- 
-//  ==== Common definitions ====
- 
-/// Object Identifier definitions
-#define osRtxIdInvalid          0x00U
-#define osRtxIdThread           0xF1U
-#define osRtxIdTimer            0xF2U
-#define osRtxIdEventFlags       0xF3U
-#define osRtxIdMutex            0xF5U
-#define osRtxIdSemaphore        0xF6U
-#define osRtxIdMemoryPool       0xF7U
-#define osRtxIdMessage          0xF9U
-#define osRtxIdMessageQueue     0xFAU
- 
-/// Object Flags definitions
-#define osRtxFlagSystemObject   0x01U
-#define osRtxFlagSystemMemory   0x02U
- 
- 
-//  ==== Kernel definitions ====
- 
-/// Kernel State definitions
-#define osRtxKernelInactive             ((uint8_t)osKernelInactive)
-#define osRtxKernelReady                ((uint8_t)osKernelReady)
-#define osRtxKernelRunning              ((uint8_t)osKernelRunning)
-#define osRtxKernelLocked               ((uint8_t)osKernelLocked)
-#define osRtxKernelSuspended            ((uint8_t)osKernelSuspended)
- 
- 
-//  ==== Thread definitions ====
- 
-/// Thread State definitions (extending osThreadState)
-#define osRtxThreadStateMask            0x0FU
- 
-#define osRtxThreadInactive             ((uint8_t)osThreadInactive)
-#define osRtxThreadReady                ((uint8_t)osThreadReady)
-#define osRtxThreadRunning              ((uint8_t)osThreadRunning)
-#define osRtxThreadBlocked              ((uint8_t)osThreadBlocked)
-#define osRtxThreadTerminated           ((uint8_t)osThreadTerminated)
- 
-#define osRtxThreadWaitingDelay         ((uint8_t)(osRtxThreadBlocked | 0x10U))
-#define osRtxThreadWaitingJoin          ((uint8_t)(osRtxThreadBlocked | 0x20U))
-#define osRtxThreadWaitingThreadFlags   ((uint8_t)(osRtxThreadBlocked | 0x30U))
-#define osRtxThreadWaitingEventFlags    ((uint8_t)(osRtxThreadBlocked | 0x40U))
-#define osRtxThreadWaitingMutex         ((uint8_t)(osRtxThreadBlocked | 0x50U))
-#define osRtxThreadWaitingSemaphore     ((uint8_t)(osRtxThreadBlocked | 0x60U))
-#define osRtxThreadWaitingMemoryPool    ((uint8_t)(osRtxThreadBlocked | 0x70U))
-#define osRtxThreadWaitingMessageGet    ((uint8_t)(osRtxThreadBlocked | 0x80U))
-#define osRtxThreadWaitingMessagePut    ((uint8_t)(osRtxThreadBlocked | 0x90U))
- 
-/// Thread Flags definitions
-#define osRtxThreadFlagDefStack 0x10U   ///< Default Stack flag
- 
-/// Stack Marker definitions
-#define osRtxStackMagicWord     0xE25A2EA5U ///< Stack Magic Word (Stack Base)
-#define osRtxStackFillPattern   0xCCCCCCCCU ///< Stack Fill Pattern 
- 
-/// Thread Control Block
-typedef struct osRtxThread_s {
-  uint8_t                          id;  ///< Object Identifier
-  uint8_t                       state;  ///< Object State
-  uint8_t                       flags;  ///< Object Flags
-  uint8_t                        attr;  ///< Object Attributes
-  const char                    *name;  ///< Object Name
-  struct osRtxThread_s   *thread_next;  ///< Link pointer to next Thread in Object list
-  struct osRtxThread_s   *thread_prev;  ///< Link pointer to previous Thread in Object list
-  struct osRtxThread_s    *delay_next;  ///< Link pointer to next Thread in Delay list
-  struct osRtxThread_s    *delay_prev;  ///< Link pointer to previous Thread in Delay list
-  struct osRtxThread_s   *thread_join;  ///< Thread waiting to Join
-  uint32_t                      delay;  ///< Delay Time
-  int8_t                     priority;  ///< Thread Priority
-  int8_t                priority_base;  ///< Base Priority
-  uint8_t                 stack_frame;  ///< Stack Frame (EXC_RETURN[7..0])
-  uint8_t               flags_options;  ///< Thread/Event Flags Options
-  uint32_t                 wait_flags;  ///< Waiting Thread/Event Flags
-  uint32_t               thread_flags;  ///< Thread Flags
-  struct osRtxMutex_s     *mutex_list;  ///< Link pointer to list of owned Mutexes
-  void                     *stack_mem;  ///< Stack Memory
-  uint32_t                 stack_size;  ///< Stack Size
-  uint32_t                         sp;  ///< Current Stack Pointer
-  uint32_t                thread_addr;  ///< Thread entry address
-  uint32_t                  tz_memory;  ///< TrustZone Memory Identifier
-#ifdef RTX_TF_M_EXTENSION
-  uint32_t                  tz_module;  ///< TrustZone Module Identifier
-#endif
-} osRtxThread_t;
- 
- 
-//  ==== Timer definitions ====
- 
-/// Timer State definitions
-#define osRtxTimerInactive      0x00U   ///< Timer Inactive
-#define osRtxTimerStopped       0x01U   ///< Timer Stopped
-#define osRtxTimerRunning       0x02U   ///< Timer Running
- 
-/// Timer Type definitions
-#define osRtxTimerPeriodic      ((uint8_t)osTimerPeriodic)
- 
-/// Timer Function Information
-typedef struct {
-  osTimerFunc_t                  func;  ///< Function Pointer
-  void                           *arg;  ///< Function Argument
-} osRtxTimerFinfo_t;
- 
-/// Timer Control Block
-typedef struct osRtxTimer_s {
-  uint8_t                          id;  ///< Object Identifier
-  uint8_t                       state;  ///< Object State
-  uint8_t                       flags;  ///< Object Flags
-  uint8_t                        type;  ///< Timer Type (Periodic/One-shot)
-  const char                    *name;  ///< Object Name
-  struct osRtxTimer_s           *prev;  ///< Pointer to previous active Timer
-  struct osRtxTimer_s           *next;  ///< Pointer to next active Timer
-  uint32_t                       tick;  ///< Timer current Tick
-  uint32_t                       load;  ///< Timer Load value
-  osRtxTimerFinfo_t             finfo;  ///< Timer Function Info
-} osRtxTimer_t;
- 
- 
-//  ==== Event Flags definitions ====
- 
-/// Event Flags Control Block
-typedef struct {
-  uint8_t                          id;  ///< Object Identifier
-  uint8_t              reserved_state;  ///< Object State (not used)
-  uint8_t                       flags;  ///< Object Flags
-  uint8_t                    reserved;
-  const char                    *name;  ///< Object Name
-  osRtxThread_t          *thread_list;  ///< Waiting Threads List
-  uint32_t                event_flags;  ///< Event Flags
-} osRtxEventFlags_t;
- 
- 
-//  ==== Mutex definitions ====
- 
-/// Mutex Control Block
-typedef struct osRtxMutex_s {
-  uint8_t                          id;  ///< Object Identifier
-  uint8_t              reserved_state;  ///< Object State (not used)
-  uint8_t                       flags;  ///< Object Flags
-  uint8_t                        attr;  ///< Object Attributes
-  const char                    *name;  ///< Object Name
-  osRtxThread_t          *thread_list;  ///< Waiting Threads List
-  osRtxThread_t         *owner_thread;  ///< Owner Thread
-  struct osRtxMutex_s     *owner_prev;  ///< Pointer to previous owned Mutex
-  struct osRtxMutex_s     *owner_next;  ///< Pointer to next owned Mutex
-  uint8_t                        lock;  ///< Lock counter
-  uint8_t                  padding[3];
-} osRtxMutex_t;
- 
- 
-//  ==== Semaphore definitions ====
- 
-/// Semaphore Control Block
-typedef struct {
-  uint8_t                          id;  ///< Object Identifier
-  uint8_t              reserved_state;  ///< Object State (not used)
-  uint8_t                       flags;  ///< Object Flags
-  uint8_t                    reserved;
-  const char                    *name;  ///< Object Name
-  osRtxThread_t          *thread_list;  ///< Waiting Threads List
-  uint16_t                     tokens;  ///< Current number of tokens
-  uint16_t                 max_tokens;  ///< Maximum number of tokens
-} osRtxSemaphore_t;
- 
- 
-//  ==== Memory Pool definitions ====
- 
-/// Memory Pool Information
-typedef struct {
-  uint32_t                 max_blocks;  ///< Maximum number of Blocks
-  uint32_t                used_blocks;  ///< Number of used Blocks
-  uint32_t                 block_size;  ///< Block Size
-  void                    *block_base;  ///< Block Memory Base Address
-  void                     *block_lim;  ///< Block Memory Limit Address
-  void                    *block_free;  ///< First free Block Address
-} osRtxMpInfo_t;
- 
-/// Memory Pool Control Block
-typedef struct {
-  uint8_t                          id;  ///< Object Identifier
-  uint8_t              reserved_state;  ///< Object State (not used)
-  uint8_t                       flags;  ///< Object Flags
-  uint8_t                    reserved;
-  const char                    *name;  ///< Object Name
-  osRtxThread_t          *thread_list;  ///< Waiting Threads List
-  osRtxMpInfo_t               mp_info;  ///< Memory Pool Info
-} osRtxMemoryPool_t;
- 
- 
-//  ==== Message Queue definitions ====
- 
-/// Message Control Block
-typedef struct osRtxMessage_s {
-  uint8_t                          id;  ///< Object Identifier
-  uint8_t              reserved_state;  ///< Object State (not used)
-  uint8_t                       flags;  ///< Object Flags
-  uint8_t                    priority;  ///< Message Priority
-  struct osRtxMessage_s         *prev;  ///< Pointer to previous Message
-  struct osRtxMessage_s         *next;  ///< Pointer to next Message
-} osRtxMessage_t;
- 
-/// Message Queue Control Block
-typedef struct {
-  uint8_t                          id;  ///< Object Identifier
-  uint8_t              reserved_state;  ///< Object State (not used)
-  uint8_t                       flags;  ///< Object Flags
-  uint8_t                    reserved;
-  const char                    *name;  ///< Object Name
-  osRtxThread_t          *thread_list;  ///< Waiting Threads List
-  osRtxMpInfo_t               mp_info;  ///< Memory Pool Info
-  uint32_t                   msg_size;  ///< Message Size
-  uint32_t                  msg_count;  ///< Number of queued Messages
-  osRtxMessage_t           *msg_first;  ///< Pointer to first Message
-  osRtxMessage_t            *msg_last;  ///< Pointer to last Message
-} osRtxMessageQueue_t;
- 
- 
-//  ==== Generic Object definitions ====
- 
-/// Generic Object Control Block
-typedef struct {
-  uint8_t                          id;  ///< Object Identifier
-  uint8_t                       state;  ///< Object State
-  uint8_t                       flags;  ///< Object Flags
-  uint8_t                    reserved;
-  const char                    *name;  ///< Object Name
-  osRtxThread_t          *thread_list;  ///< Threads List
-} osRtxObject_t;
- 
- 
-//  ==== OS Runtime Information definitions ====
- 
-/// OS Runtime Information structure
-typedef struct {
-  const char                   *os_id;  ///< OS Identification
-  uint32_t                    version;  ///< OS Version
-  struct {                              ///< Kernel Info
-    uint8_t                     state;  ///< State
-    volatile uint8_t          blocked;  ///< Blocked
-    uint8_t                    pendSV;  ///< Pending SV
-    uint8_t                  reserved;
-    uint32_t                     tick;  ///< Tick counter
-  } kernel;
-  int32_t                   tick_irqn;  ///< Tick Timer IRQ Number
-  struct {                              ///< Thread Info
-    struct {                            ///< Thread Run Info
-      osRtxThread_t             *curr;  ///< Current running Thread
-      osRtxThread_t             *next;  ///< Next Thread to Run
-    } run;
-    osRtxObject_t               ready;  ///< Ready List Object
-    osRtxThread_t               *idle;  ///< Idle Thread
-    osRtxThread_t         *delay_list;  ///< Delay List
-    osRtxThread_t          *wait_list;  ///< Wait List (no Timeout)
-    osRtxThread_t     *terminate_list;  ///< Terminate Thread List
-    struct {                            ///< Thread Round Robin Info
-      osRtxThread_t           *thread;  ///< Round Robin Thread
-      uint32_t                   tick;  ///< Round Robin Time Tick
-      uint32_t                timeout;  ///< Round Robin Timeout
-    } robin;
-  } thread;
-  struct {                              ///< Timer Info
-    osRtxTimer_t                *list;  ///< Active Timer List
-    osRtxThread_t             *thread;  ///< Timer Thread
-    osRtxMessageQueue_t           *mq;  ///< Timer Message Queue
-    void                (*tick)(void);  ///< Timer Tick Function
-  } timer;
-  struct {                              ///< ISR Post Processing Queue
-    uint16_t                      max;  ///< Maximum Items
-    uint16_t                      cnt;  ///< Item Count
-    uint16_t                       in;  ///< Incoming Item Index
-    uint16_t                      out;  ///< Outgoing Item Index
-    void                       **data;  ///< Queue Data
-  } isr_queue;
-  struct {                                      ///< ISR Post Processing functions
-    void          (*thread)(osRtxThread_t*);    ///< Thread Post Processing function
-    void (*event_flags)(osRtxEventFlags_t*);    ///< Event Flags Post Processing function
-    void    (*semaphore)(osRtxSemaphore_t*);    ///< Semaphore Post Processing function
-    void (*memory_pool)(osRtxMemoryPool_t*);    ///< Memory Pool Post Processing function
-    void        (*message)(osRtxMessage_t*);    ///< Message Post Processing function
-  } post_process;
-  struct {                              ///< Memory Pools (Variable Block Size)
-    void                       *stack;  ///< Stack Memory
-    void                     *mp_data;  ///< Memory Pool Data Memory
-    void                     *mq_data;  ///< Message Queue Data Memory
-    void                      *common;  ///< Common Memory
-  } mem;
-  struct {                              ///< Memory Pools (Fixed Block Size)
-    osRtxMpInfo_t              *stack;  ///< Stack for Threads
-    osRtxMpInfo_t             *thread;  ///< Thread Control Blocks
-    osRtxMpInfo_t              *timer;  ///< Timer Control Blocks
-    osRtxMpInfo_t        *event_flags;  ///< Event Flags Control Blocks
-    osRtxMpInfo_t              *mutex;  ///< Mutex Control Blocks
-    osRtxMpInfo_t          *semaphore;  ///< Semaphore Control Blocks
-    osRtxMpInfo_t        *memory_pool;  ///< Memory Pool Control Blocks
-    osRtxMpInfo_t      *message_queue;  ///< Message Queue Control Blocks
-  } mpi;
-} osRtxInfo_t;
- 
-extern osRtxInfo_t osRtxInfo;           ///< OS Runtime Information
- 
-/// OS Runtime Object Memory Usage structure
-typedef struct {
-  uint32_t cnt_alloc;                   ///< Counter for alloc
-  uint32_t cnt_free;                    ///< Counter for free
-  uint32_t max_used;                    ///< Maximum used
-} osRtxObjectMemUsage_t;
- 
-/// OS Runtime Object Memory Usage variables
-extern osRtxObjectMemUsage_t osRtxThreadMemUsage;
-extern osRtxObjectMemUsage_t osRtxTimerMemUsage;
-extern osRtxObjectMemUsage_t osRtxEventFlagsMemUsage;
-extern osRtxObjectMemUsage_t osRtxMutexMemUsage;
-extern osRtxObjectMemUsage_t osRtxSemaphoreMemUsage;
-extern osRtxObjectMemUsage_t osRtxMemoryPoolMemUsage;
-extern osRtxObjectMemUsage_t osRtxMessageQueueMemUsage;
- 
- 
-//  ==== OS API definitions ====
- 
-// Object Limits definitions
-#define osRtxThreadFlagsLimit    31U    ///< number of Thread Flags available per thread
-#define osRtxEventFlagsLimit     31U    ///< number of Event Flags available per object
-#define osRtxMutexLockLimit      255U   ///< maximum number of recursive mutex locks
-#define osRtxSemaphoreTokenLimit 65535U ///< maximum number of tokens per semaphore
- 
-// Control Block sizes
-#define osRtxThreadCbSize        sizeof(osRtxThread_t)
-#define osRtxTimerCbSize         sizeof(osRtxTimer_t)
-#define osRtxEventFlagsCbSize    sizeof(osRtxEventFlags_t)
-#define osRtxMutexCbSize         sizeof(osRtxMutex_t)
-#define osRtxSemaphoreCbSize     sizeof(osRtxSemaphore_t)
-#define osRtxMemoryPoolCbSize    sizeof(osRtxMemoryPool_t)
-#define osRtxMessageQueueCbSize  sizeof(osRtxMessageQueue_t)
- 
-/// Memory size in bytes for Memory Pool storage.
-/// \param         block_count   maximum number of memory blocks in memory pool.
-/// \param         block_size    memory block size in bytes.
-#define osRtxMemoryPoolMemSize(block_count, block_size) \
-  (4*(block_count)*(((block_size)+3)/4))
- 
-/// Memory size in bytes for Message Queue storage.
-/// \param         msg_count     maximum number of messages in queue.
-/// \param         msg_size      maximum message size in bytes.
-#define osRtxMessageQueueMemSize(msg_count, msg_size) \
-  (4*(msg_count)*(3+(((msg_size)+3)/4)))
- 
- 
-//  ==== OS External Functions ====
- 
-// OS Error Codes
-#define osRtxErrorStackUnderflow        1U  ///< Stack overflow, i.e. stack pointer below its lower memory limit for descending stacks.
-#define osRtxErrorISRQueueOverflow      2U  ///< ISR Queue overflow detected when inserting object.
-#define osRtxErrorTimerQueueOverflow    3U  ///< User Timer Callback Queue overflow detected for timer.
-#define osRtxErrorClibSpace             4U  ///< Standard C/C++ library libspace not available: increase \c OS_THREAD_LIBSPACE_NUM.
-#define osRtxErrorClibMutex             5U  ///< Standard C/C++ library mutex initialization failed.
- 
-/// OS Error Callback function
-extern uint32_t osRtxErrorNotify (uint32_t code, void *object_id);
- 
-/// OS Idle Thread
-extern void osRtxIdleThread (void *argument);
- 
-/// OS Exception handlers
-extern void SVC_Handler     (void);
-extern void PendSV_Handler  (void);
-extern void SysTick_Handler (void);
- 
-/// OS Trusted Firmware M Extension
-#ifdef RTX_TF_M_EXTENSION
-extern uint32_t osRtxTzGetModuleId (void);
-#endif
- 
- 
-//  ==== OS External Configuration ====
- 
-/// OS Configuration flags
-#define osRtxConfigPrivilegedMode   (1UL<<0)    ///< Threads in Privileged mode
-#define osRtxConfigStackCheck       (1UL<<1)    ///< Stack overrun checking
-#define osRtxConfigStackWatermark   (1UL<<2)    ///< Stack usage Watermark
- 
-/// OS Configuration structure
-typedef struct {
-  uint32_t                             flags;   ///< OS Configuration Flags
-  uint32_t                         tick_freq;   ///< Kernel Tick Frequency
-  uint32_t                     robin_timeout;   ///< Round Robin Timeout Tick
-  struct {                                      ///< ISR Post Processing Queue
-    void                              **data;   ///< Queue Data
-    uint16_t                             max;   ///< Maximum Items
-    uint16_t                         padding;
-  } isr_queue;
-  struct {                                      ///< Memory Pools (Variable Block Size)
-    void                         *stack_addr;   ///< Stack Memory Address
-    uint32_t                      stack_size;   ///< Stack Memory Size
-    void                       *mp_data_addr;   ///< Memory Pool Memory Address
-    uint32_t                    mp_data_size;   ///< Memory Pool Memory Size
-    void                       *mq_data_addr;   ///< Message Queue Data Memory Address
-    uint32_t                    mq_data_size;   ///< Message Queue Data Memory Size
-    void                        *common_addr;   ///< Common Memory Address
-    uint32_t                     common_size;   ///< Common Memory Size
-  } mem;
-  struct {                                      ///< Memory Pools (Fixed Block Size)
-    osRtxMpInfo_t                     *stack;   ///< Stack for Threads
-    osRtxMpInfo_t                    *thread;   ///< Thread Control Blocks
-    osRtxMpInfo_t                     *timer;   ///< Timer Control Blocks
-    osRtxMpInfo_t               *event_flags;   ///< Event Flags Control Blocks
-    osRtxMpInfo_t                     *mutex;   ///< Mutex Control Blocks
-    osRtxMpInfo_t                 *semaphore;   ///< Semaphore Control Blocks
-    osRtxMpInfo_t               *memory_pool;   ///< Memory Pool Control Blocks
-    osRtxMpInfo_t             *message_queue;   ///< Message Queue Control Blocks
-  } mpi;
-  uint32_t                 thread_stack_size;   ///< Default Thread Stack Size
-  const 
-  osThreadAttr_t           *idle_thread_attr;   ///< Idle Thread Attributes
-  const
-  osThreadAttr_t          *timer_thread_attr;   ///< Timer Thread Attributes
-  const
-  osMessageQueueAttr_t        *timer_mq_attr;   ///< Timer Message Queue Attributes
-  uint32_t                     timer_mq_mcnt;   ///< Timer Message Queue maximum Messages
-} osRtxConfig_t;
- 
-extern const osRtxConfig_t osRtxConfig;         ///< OS Configuration
- 
- 
-#ifdef  __cplusplus
-}
-#endif
- 
-#endif  // RTX_OS_H_
diff --git a/app_broker/CMSIS/RTOS2/RTX/Include/tz_context.h b/app_broker/CMSIS/RTOS2/RTX/Include/tz_context.h
deleted file mode 100644
index cd6d8ab..0000000
--- a/app_broker/CMSIS/RTOS2/RTX/Include/tz_context.h
+++ /dev/null
@@ -1,69 +0,0 @@
-/*
- * Copyright (c) 2015-2016 ARM Limited. All rights reserved.
- *
- * SPDX-License-Identifier: Apache-2.0
- *
- * Licensed under the Apache License, Version 2.0 (the License); you may
- * not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an AS IS BASIS, WITHOUT
- * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- * ----------------------------------------------------------------------------
- *
- * $Date:        21. September 2016
- * $Revision:    V1.0
- *
- * Project:      TrustZone for ARMv8-M
- * Title:        Context Management for ARMv8-M TrustZone
- *
- * Version 1.0
- *    Initial Release
- *---------------------------------------------------------------------------*/
-
-#ifndef TZ_CONTEXT_H
-#define TZ_CONTEXT_H
-
-#include <stdint.h>
-
-#ifndef TZ_MODULEID_T
-#define TZ_MODULEID_T
-/// \details Data type that identifies secure software modules called by a process.
-typedef uint32_t TZ_ModuleId_t;
-#endif
-
-/// \details TZ Memory ID identifies an allocated memory slot.
-typedef uint32_t TZ_MemoryId_t;
-
-/// Initialize secure context memory system
-/// \return execution status (1: success, 0: error)
-uint32_t TZ_InitContextSystem_S (void);
-
-/// Allocate context memory for calling secure software modules in TrustZone
-/// \param[in]  module   identifies software modules called from non-secure mode
-/// \return value != 0 id TrustZone memory slot identifier
-/// \return value 0    no memory available or internal error
-TZ_MemoryId_t TZ_AllocModuleContext_S (TZ_ModuleId_t module);
-
-/// Free context memory that was previously allocated with \ref TZ_AllocModuleContext_S
-/// \param[in]  id  TrustZone memory slot identifier
-/// \return execution status (1: success, 0: error)
-uint32_t TZ_FreeModuleContext_S (TZ_MemoryId_t id);
-
-/// Load secure context (called on RTOS thread context switch)
-/// \param[in]  id  TrustZone memory slot identifier
-/// \return execution status (1: success, 0: error)
-uint32_t TZ_LoadContext_S (TZ_MemoryId_t id);
-
-/// Store secure context (called on RTOS thread context switch)
-/// \param[in]  id  TrustZone memory slot identifier
-/// \return execution status (1: success, 0: error)
-uint32_t TZ_StoreContext_S (TZ_MemoryId_t id);
-
-#endif  // TZ_CONTEXT_H
diff --git a/app_broker/CMSIS/RTOS2/RTX/Library/ARM/RTX_CM0.lib b/app_broker/CMSIS/RTOS2/RTX/Library/ARM/RTX_CM0.lib
deleted file mode 100644
index 9ef5797..0000000
--- a/app_broker/CMSIS/RTOS2/RTX/Library/ARM/RTX_CM0.lib
+++ /dev/null
Binary files differ
diff --git a/app_broker/CMSIS/RTOS2/RTX/Library/ARM/RTX_CM3.lib b/app_broker/CMSIS/RTOS2/RTX/Library/ARM/RTX_CM3.lib
deleted file mode 100644
index fc46aa4..0000000
--- a/app_broker/CMSIS/RTOS2/RTX/Library/ARM/RTX_CM3.lib
+++ /dev/null
Binary files differ
diff --git a/app_broker/CMSIS/RTOS2/RTX/Library/ARM/RTX_CM4F.lib b/app_broker/CMSIS/RTOS2/RTX/Library/ARM/RTX_CM4F.lib
deleted file mode 100644
index 0e12dc9..0000000
--- a/app_broker/CMSIS/RTOS2/RTX/Library/ARM/RTX_CM4F.lib
+++ /dev/null
Binary files differ
diff --git a/app_broker/CMSIS/RTOS2/RTX/Library/ARM/RTX_V8MB.lib b/app_broker/CMSIS/RTOS2/RTX/Library/ARM/RTX_V8MB.lib
deleted file mode 100644
index 899642c..0000000
--- a/app_broker/CMSIS/RTOS2/RTX/Library/ARM/RTX_V8MB.lib
+++ /dev/null
Binary files differ
diff --git a/app_broker/CMSIS/RTOS2/RTX/Library/ARM/RTX_V8MBN.lib b/app_broker/CMSIS/RTOS2/RTX/Library/ARM/RTX_V8MBN.lib
deleted file mode 100644
index 318dc0d..0000000
--- a/app_broker/CMSIS/RTOS2/RTX/Library/ARM/RTX_V8MBN.lib
+++ /dev/null
Binary files differ
diff --git a/app_broker/CMSIS/RTOS2/RTX/Library/ARM/RTX_V8MM.lib b/app_broker/CMSIS/RTOS2/RTX/Library/ARM/RTX_V8MM.lib
deleted file mode 100644
index ddb1042..0000000
--- a/app_broker/CMSIS/RTOS2/RTX/Library/ARM/RTX_V8MM.lib
+++ /dev/null
Binary files differ
diff --git a/app_broker/CMSIS/RTOS2/RTX/Library/ARM/RTX_V8MMF.lib b/app_broker/CMSIS/RTOS2/RTX/Library/ARM/RTX_V8MMF.lib
deleted file mode 100644
index 5a61f40..0000000
--- a/app_broker/CMSIS/RTOS2/RTX/Library/ARM/RTX_V8MMF.lib
+++ /dev/null
Binary files differ
diff --git a/app_broker/CMSIS/RTOS2/RTX/Library/ARM/RTX_V8MMFN.lib b/app_broker/CMSIS/RTOS2/RTX/Library/ARM/RTX_V8MMFN.lib
deleted file mode 100644
index de8c6cf..0000000
--- a/app_broker/CMSIS/RTOS2/RTX/Library/ARM/RTX_V8MMFN.lib
+++ /dev/null
Binary files differ
diff --git a/app_broker/CMSIS/RTOS2/RTX/Library/ARM/RTX_V8MMN.lib b/app_broker/CMSIS/RTOS2/RTX/Library/ARM/RTX_V8MMN.lib
deleted file mode 100644
index 9e99e4c..0000000
--- a/app_broker/CMSIS/RTOS2/RTX/Library/ARM/RTX_V8MMN.lib
+++ /dev/null
Binary files differ
diff --git a/app_broker/CMSIS/RTOS2/RTX/Library/GCC/libRTX_CM0.a b/app_broker/CMSIS/RTOS2/RTX/Library/GCC/libRTX_CM0.a
deleted file mode 100644
index ac2f09c..0000000
--- a/app_broker/CMSIS/RTOS2/RTX/Library/GCC/libRTX_CM0.a
+++ /dev/null
Binary files differ
diff --git a/app_broker/CMSIS/RTOS2/RTX/Library/GCC/libRTX_CM3.a b/app_broker/CMSIS/RTOS2/RTX/Library/GCC/libRTX_CM3.a
deleted file mode 100644
index 5352de2..0000000
--- a/app_broker/CMSIS/RTOS2/RTX/Library/GCC/libRTX_CM3.a
+++ /dev/null
Binary files differ
diff --git a/app_broker/CMSIS/RTOS2/RTX/Library/GCC/libRTX_CM4F.a b/app_broker/CMSIS/RTOS2/RTX/Library/GCC/libRTX_CM4F.a
deleted file mode 100644
index 58aa906..0000000
--- a/app_broker/CMSIS/RTOS2/RTX/Library/GCC/libRTX_CM4F.a
+++ /dev/null
Binary files differ
diff --git a/app_broker/CMSIS/RTOS2/RTX/Library/GCC/libRTX_V8MB.a b/app_broker/CMSIS/RTOS2/RTX/Library/GCC/libRTX_V8MB.a
deleted file mode 100644
index 087da47..0000000
--- a/app_broker/CMSIS/RTOS2/RTX/Library/GCC/libRTX_V8MB.a
+++ /dev/null
Binary files differ
diff --git a/app_broker/CMSIS/RTOS2/RTX/Library/GCC/libRTX_V8MBN.a b/app_broker/CMSIS/RTOS2/RTX/Library/GCC/libRTX_V8MBN.a
deleted file mode 100644
index 8907f98..0000000
--- a/app_broker/CMSIS/RTOS2/RTX/Library/GCC/libRTX_V8MBN.a
+++ /dev/null
Binary files differ
diff --git a/app_broker/CMSIS/RTOS2/RTX/Library/GCC/libRTX_V8MM.a b/app_broker/CMSIS/RTOS2/RTX/Library/GCC/libRTX_V8MM.a
deleted file mode 100644
index 4281030..0000000
--- a/app_broker/CMSIS/RTOS2/RTX/Library/GCC/libRTX_V8MM.a
+++ /dev/null
Binary files differ
diff --git a/app_broker/CMSIS/RTOS2/RTX/Library/GCC/libRTX_V8MMF.a b/app_broker/CMSIS/RTOS2/RTX/Library/GCC/libRTX_V8MMF.a
deleted file mode 100644
index ed4de5e..0000000
--- a/app_broker/CMSIS/RTOS2/RTX/Library/GCC/libRTX_V8MMF.a
+++ /dev/null
Binary files differ
diff --git a/app_broker/CMSIS/RTOS2/RTX/Library/GCC/libRTX_V8MMFN.a b/app_broker/CMSIS/RTOS2/RTX/Library/GCC/libRTX_V8MMFN.a
deleted file mode 100644
index 6f9d158..0000000
--- a/app_broker/CMSIS/RTOS2/RTX/Library/GCC/libRTX_V8MMFN.a
+++ /dev/null
Binary files differ
diff --git a/app_broker/CMSIS/RTOS2/RTX/Library/GCC/libRTX_V8MMN.a b/app_broker/CMSIS/RTOS2/RTX/Library/GCC/libRTX_V8MMN.a
deleted file mode 100644
index 27b1f23..0000000
--- a/app_broker/CMSIS/RTOS2/RTX/Library/GCC/libRTX_V8MMN.a
+++ /dev/null
Binary files differ
diff --git a/app_broker/CMSIS/RTOS2/RTX/Library/IAR/RTX_CM0.a b/app_broker/CMSIS/RTOS2/RTX/Library/IAR/RTX_CM0.a
deleted file mode 100644
index 804cc6d..0000000
--- a/app_broker/CMSIS/RTOS2/RTX/Library/IAR/RTX_CM0.a
+++ /dev/null
Binary files differ
diff --git a/app_broker/CMSIS/RTOS2/RTX/Library/IAR/RTX_CM3.a b/app_broker/CMSIS/RTOS2/RTX/Library/IAR/RTX_CM3.a
deleted file mode 100644
index 18a826a..0000000
--- a/app_broker/CMSIS/RTOS2/RTX/Library/IAR/RTX_CM3.a
+++ /dev/null
Binary files differ
diff --git a/app_broker/CMSIS/RTOS2/RTX/Library/IAR/RTX_CM4F.a b/app_broker/CMSIS/RTOS2/RTX/Library/IAR/RTX_CM4F.a
deleted file mode 100644
index 07c4096..0000000
--- a/app_broker/CMSIS/RTOS2/RTX/Library/IAR/RTX_CM4F.a
+++ /dev/null
Binary files differ
diff --git a/app_broker/CMSIS/RTOS2/RTX/Library/IAR/RTX_V81MMN.a b/app_broker/CMSIS/RTOS2/RTX/Library/IAR/RTX_V81MMN.a
deleted file mode 100644
index 0496401..0000000
--- a/app_broker/CMSIS/RTOS2/RTX/Library/IAR/RTX_V81MMN.a
+++ /dev/null
Binary files differ
diff --git a/app_broker/CMSIS/RTOS2/RTX/Library/IAR/RTX_V8MB.a b/app_broker/CMSIS/RTOS2/RTX/Library/IAR/RTX_V8MB.a
deleted file mode 100644
index d8b5db9..0000000
--- a/app_broker/CMSIS/RTOS2/RTX/Library/IAR/RTX_V8MB.a
+++ /dev/null
Binary files differ
diff --git a/app_broker/CMSIS/RTOS2/RTX/Library/IAR/RTX_V8MBN.a b/app_broker/CMSIS/RTOS2/RTX/Library/IAR/RTX_V8MBN.a
deleted file mode 100644
index f1a68db..0000000
--- a/app_broker/CMSIS/RTOS2/RTX/Library/IAR/RTX_V8MBN.a
+++ /dev/null
Binary files differ
diff --git a/app_broker/CMSIS/RTOS2/RTX/Library/IAR/RTX_V8MM.a b/app_broker/CMSIS/RTOS2/RTX/Library/IAR/RTX_V8MM.a
deleted file mode 100644
index 7959b1d..0000000
--- a/app_broker/CMSIS/RTOS2/RTX/Library/IAR/RTX_V8MM.a
+++ /dev/null
Binary files differ
diff --git a/app_broker/CMSIS/RTOS2/RTX/Library/IAR/RTX_V8MMF.a b/app_broker/CMSIS/RTOS2/RTX/Library/IAR/RTX_V8MMF.a
deleted file mode 100644
index c9d84b1..0000000
--- a/app_broker/CMSIS/RTOS2/RTX/Library/IAR/RTX_V8MMF.a
+++ /dev/null
Binary files differ
diff --git a/app_broker/CMSIS/RTOS2/RTX/Library/IAR/RTX_V8MMFN.a b/app_broker/CMSIS/RTOS2/RTX/Library/IAR/RTX_V8MMFN.a
deleted file mode 100644
index 2d8f67d..0000000
--- a/app_broker/CMSIS/RTOS2/RTX/Library/IAR/RTX_V8MMFN.a
+++ /dev/null
Binary files differ
diff --git a/app_broker/CMSIS/RTOS2/RTX/Library/IAR/RTX_V8MMN.a b/app_broker/CMSIS/RTOS2/RTX/Library/IAR/RTX_V8MMN.a
deleted file mode 100644
index 85a9c17..0000000
--- a/app_broker/CMSIS/RTOS2/RTX/Library/IAR/RTX_V8MMN.a
+++ /dev/null
Binary files differ
diff --git a/app_broker/CMSIS/RTOS2/RTX/Source/rtx_lib.c b/app_broker/CMSIS/RTOS2/RTX/Source/rtx_lib.c
deleted file mode 100644
index 257b0c1..0000000
--- a/app_broker/CMSIS/RTOS2/RTX/Source/rtx_lib.c
+++ /dev/null
@@ -1,822 +0,0 @@
-/*
- * Copyright (c) 2013-2019 Arm Limited. All rights reserved.
- *
- * SPDX-License-Identifier: Apache-2.0
- *
- * Licensed under the Apache License, Version 2.0 (the License); you may
- * not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an AS IS BASIS, WITHOUT
- * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- * -----------------------------------------------------------------------------
- *
- * Project:     CMSIS-RTOS RTX
- * Title:       RTX Library Configuration
- *
- * -----------------------------------------------------------------------------
- */
-
-#include "cmsis_compiler.h"
-#include "RTX_Config.h"
-#include "rtx_os.h"
-
-#ifdef    RTE_Compiler_EventRecorder
-#include "EventRecorder.h"
-#include "EventRecorderConf.h"
-#endif
-#include "rtx_evr.h"
-
-
-// System Configuration
-// ====================
-
-// Dynamic Memory
-#if (OS_DYNAMIC_MEM_SIZE != 0)
-#if ((OS_DYNAMIC_MEM_SIZE % 8) != 0)
-#error "Invalid Dynamic Memory size!"
-#endif
-static uint64_t os_mem[OS_DYNAMIC_MEM_SIZE/8] \
-__attribute__((section(".bss.os")));
-#endif
-
-// Kernel Tick Frequency
-#if (OS_TICK_FREQ < 1)
-#error "Invalid Kernel Tick Frequency!"
-#endif
-
-// ISR FIFO Queue
-#if (OS_ISR_FIFO_QUEUE < 4)
-#error "Invalid ISR FIFO Queue size!"
-#endif
-static void *os_isr_queue[OS_ISR_FIFO_QUEUE] \
-__attribute__((section(".bss.os")));
-
-
-// Thread Configuration
-// ====================
-
-#if (((OS_STACK_SIZE % 8) != 0) || (OS_STACK_SIZE < 72))
-#error "Invalid default Thread Stack size!"
-#endif
-
-#if (((OS_IDLE_THREAD_STACK_SIZE % 8) != 0) || (OS_IDLE_THREAD_STACK_SIZE < 72))
-#error "Invalid Idle Thread Stack size!"
-#endif
-
-
-#if (OS_THREAD_OBJ_MEM != 0)
-
-#if (OS_THREAD_NUM == 0)
-#error "Invalid number of user Threads!"
-#endif
-
-#if ((OS_THREAD_USER_STACK_SIZE != 0) && ((OS_THREAD_USER_STACK_SIZE % 8) != 0))
-#error "Invalid total Stack size!"
-#endif
-
-// Thread Control Blocks
-static osRtxThread_t os_thread_cb[OS_THREAD_NUM] \
-__attribute__((section(".bss.os.thread.cb")));
-
-// Thread Default Stack
-#if (OS_THREAD_DEF_STACK_NUM != 0)
-static uint64_t os_thread_def_stack[OS_THREAD_DEF_STACK_NUM*(OS_STACK_SIZE/8)] \
-__attribute__((section(".bss.os.thread.stack")));
-#endif
-
-// Memory Pool for Thread Control Blocks
-static osRtxMpInfo_t os_mpi_thread \
-__attribute__((section(".data.os.thread.mpi"))) =
-{ (uint32_t)OS_THREAD_NUM, 0U, (uint32_t)osRtxThreadCbSize, &os_thread_cb[0], NULL, NULL };
-
-// Memory Pool for Thread Default Stack
-#if (OS_THREAD_DEF_STACK_NUM != 0)
-static osRtxMpInfo_t os_mpi_def_stack \
-__attribute__((section(".data.os.thread.mpi"))) =
-{ (uint32_t)OS_THREAD_DEF_STACK_NUM, 0U, (uint32_t)OS_STACK_SIZE, &os_thread_def_stack[0], NULL, NULL };
-#endif
-
-// Memory Pool for Thread Stack
-#if (OS_THREAD_USER_STACK_SIZE != 0)
-static uint64_t os_thread_stack[2 + OS_THREAD_NUM + (OS_THREAD_USER_STACK_SIZE/8)] \
-__attribute__((section(".bss.os.thread.stack")));
-#endif
-
-#endif  // (OS_THREAD_OBJ_MEM != 0)
-
-
-// Stack overrun checking
-#if (OS_STACK_CHECK == 0)
-// Override library function
-extern void osRtxThreadStackCheck (void);
-       void osRtxThreadStackCheck (void) {}
-#endif
-
-
-// Idle Thread Control Block
-static osRtxThread_t os_idle_thread_cb \
-__attribute__((section(".bss.os.thread.cb")));
-
-// Idle Thread Stack
-static uint64_t os_idle_thread_stack[OS_IDLE_THREAD_STACK_SIZE/8] \
-__attribute__((section(".bss.os.thread.stack")));
-
-// Idle Thread Attributes
-static const osThreadAttr_t os_idle_thread_attr = {
-#if defined(OS_IDLE_THREAD_NAME)
-  OS_IDLE_THREAD_NAME,
-#else
-  NULL,
-#endif
-  osThreadDetached,
-  &os_idle_thread_cb,
-  (uint32_t)sizeof(os_idle_thread_cb),
-  &os_idle_thread_stack[0],
-  (uint32_t)sizeof(os_idle_thread_stack),
-  osPriorityIdle,
-#if defined(OS_IDLE_THREAD_TZ_MOD_ID)
-  (uint32_t)OS_IDLE_THREAD_TZ_MOD_ID,
-#else
-  0U,
-#endif
-  0U
-};
-
-
-// Timer Configuration
-// ===================
-
-#if (OS_TIMER_OBJ_MEM != 0)
-
-#if (OS_TIMER_NUM == 0)
-#error "Invalid number of Timer objects!"
-#endif
-
-// Timer Control Blocks
-static osRtxTimer_t os_timer_cb[OS_TIMER_NUM] \
-__attribute__((section(".bss.os.timer.cb")));
-
-// Memory Pool for Timer Control Blocks
-static osRtxMpInfo_t os_mpi_timer \
-__attribute__((section(".data.os.timer.mpi"))) =
-{ (uint32_t)OS_TIMER_NUM, 0U, (uint32_t)osRtxTimerCbSize, &os_timer_cb[0], NULL, NULL };
-
-#endif  // (OS_TIMER_OBJ_MEM != 0)
-
-
-#if ((OS_TIMER_THREAD_STACK_SIZE != 0) && (OS_TIMER_CB_QUEUE != 0))
-
-#if (((OS_TIMER_THREAD_STACK_SIZE % 8) != 0) || (OS_TIMER_THREAD_STACK_SIZE < 96))
-#error "Invalid Timer Thread Stack size!"
-#endif
-
-// Timer Thread Control Block
-static osRtxThread_t os_timer_thread_cb \
-__attribute__((section(".bss.os.thread.cb")));
-
-// Timer Thread Stack
-static uint64_t os_timer_thread_stack[OS_TIMER_THREAD_STACK_SIZE/8] \
-__attribute__((section(".bss.os.thread.stack")));
-
-// Timer Thread Attributes
-static const osThreadAttr_t os_timer_thread_attr = {
-#if defined(OS_TIMER_THREAD_NAME)
-  OS_TIMER_THREAD_NAME,
-#else
-  NULL,
-#endif
-  osThreadDetached,
-  &os_timer_thread_cb,
-  (uint32_t)sizeof(os_timer_thread_cb),
-  &os_timer_thread_stack[0],
-  (uint32_t)sizeof(os_timer_thread_stack),
-  //lint -e{9030} -e{9034} "cast from signed to enum"
-  (osPriority_t)OS_TIMER_THREAD_PRIO,
-#if defined(OS_TIMER_THREAD_TZ_MOD_ID)
-  (uint32_t)OS_TIMER_THREAD_TZ_MOD_ID,
-#else
-  0U,
-#endif
-  0U
-};
-
-// Timer Message Queue Control Block
-static osRtxMessageQueue_t os_timer_mq_cb \
-__attribute__((section(".bss.os.msgqueue.cb")));
-
-// Timer Message Queue Data
-static uint32_t os_timer_mq_data[osRtxMessageQueueMemSize(OS_TIMER_CB_QUEUE,8)/4] \
-__attribute__((section(".bss.os.msgqueue.mem")));
-
-// Timer Message Queue Attributes
-static const osMessageQueueAttr_t os_timer_mq_attr = {
-  NULL,
-  0U,
-  &os_timer_mq_cb,
-  (uint32_t)sizeof(os_timer_mq_cb),
-  &os_timer_mq_data[0],
-  (uint32_t)sizeof(os_timer_mq_data)
-};
-
-#else
-
-extern void osRtxTimerThread (void *argument);
-       void osRtxTimerThread (void *argument) { (void)argument; }
-
-#endif  // ((OS_TIMER_THREAD_STACK_SIZE != 0) && (OS_TIMER_CB_QUEUE != 0))
-
-
-// Event Flags Configuration
-// =========================
-
-#if (OS_EVFLAGS_OBJ_MEM != 0)
-
-#if (OS_EVFLAGS_NUM == 0)
-#error "Invalid number of Event Flags objects!"
-#endif
-
-// Event Flags Control Blocks
-static osRtxEventFlags_t os_ef_cb[OS_EVFLAGS_NUM] \
-__attribute__((section(".bss.os.evflags.cb")));
-
-// Memory Pool for Event Flags Control Blocks
-static osRtxMpInfo_t os_mpi_ef \
-__attribute__((section(".data.os.evflags.mpi"))) =
-{ (uint32_t)OS_EVFLAGS_NUM, 0U, (uint32_t)osRtxEventFlagsCbSize, &os_ef_cb[0], NULL, NULL };
-
-#endif  // (OS_EVFLAGS_OBJ_MEM != 0)
-
-
-// Mutex Configuration
-// ===================
-
-#if (OS_MUTEX_OBJ_MEM != 0)
-
-#if (OS_MUTEX_NUM == 0)
-#error "Invalid number of Mutex objects!"
-#endif
-
-// Mutex Control Blocks
-static osRtxMutex_t os_mutex_cb[OS_MUTEX_NUM] \
-__attribute__((section(".bss.os.mutex.cb")));
-
-// Memory Pool for Mutex Control Blocks
-static osRtxMpInfo_t os_mpi_mutex \
-__attribute__((section(".data.os.mutex.mpi"))) =
-{ (uint32_t)OS_MUTEX_NUM, 0U, (uint32_t)osRtxMutexCbSize, &os_mutex_cb[0], NULL, NULL };
-
-#endif  // (OS_MUTEX_OBJ_MEM != 0)
-
-
-// Semaphore Configuration
-// =======================
-
-#if (OS_SEMAPHORE_OBJ_MEM != 0)
-
-#if (OS_SEMAPHORE_NUM == 0)
-#error "Invalid number of Semaphore objects!"
-#endif
-
-// Semaphore Control Blocks
-static osRtxSemaphore_t os_semaphore_cb[OS_SEMAPHORE_NUM] \
-__attribute__((section(".bss.os.semaphore.cb")));
-
-// Memory Pool for Semaphore Control Blocks
-static osRtxMpInfo_t os_mpi_semaphore \
-__attribute__((section(".data.os.semaphore.mpi"))) =
-{ (uint32_t)OS_SEMAPHORE_NUM, 0U, (uint32_t)osRtxSemaphoreCbSize, &os_semaphore_cb[0], NULL, NULL };
-
-#endif  // (OS_SEMAPHORE_OBJ_MEM != 0)
-
-
-// Memory Pool Configuration
-// =========================
-
-#if (OS_MEMPOOL_OBJ_MEM != 0)
-
-#if (OS_MEMPOOL_NUM == 0)
-#error "Invalid number of Memory Pool objects!"
-#endif
-
-// Memory Pool Control Blocks
-static osRtxMemoryPool_t os_mp_cb[OS_MEMPOOL_NUM] \
-__attribute__((section(".bss.os.mempool.cb")));
-
-// Memory Pool for Memory Pool Control Blocks
-static osRtxMpInfo_t os_mpi_mp \
-__attribute__((section(".data.os.mempool.mpi"))) =
-{ (uint32_t)OS_MEMPOOL_NUM, 0U, (uint32_t)osRtxMemoryPoolCbSize, &os_mp_cb[0], NULL, NULL };
-
-// Memory Pool for Memory Pool Data Storage
-#if (OS_MEMPOOL_DATA_SIZE != 0)
-#if ((OS_MEMPOOL_DATA_SIZE % 8) != 0)
-#error "Invalid Data Memory size for Memory Pools!"
-#endif
-static uint64_t os_mp_data[2 + OS_MEMPOOL_NUM + (OS_MEMPOOL_DATA_SIZE/8)] \
-__attribute__((section(".bss.os.mempool.mem")));
-#endif
-
-#endif  // (OS_MEMPOOL_OBJ_MEM != 0)
-
-
-// Message Queue Configuration
-// ===========================
-
-#if (OS_MSGQUEUE_OBJ_MEM != 0)
-
-#if (OS_MSGQUEUE_NUM == 0)
-#error "Invalid number of Message Queue objects!"
-#endif
-
-// Message Queue Control Blocks
-static osRtxMessageQueue_t os_mq_cb[OS_MSGQUEUE_NUM] \
-__attribute__((section(".bss.os.msgqueue.cb")));
-
-// Memory Pool for Message Queue Control Blocks
-static osRtxMpInfo_t os_mpi_mq \
-__attribute__((section(".data.os.msgqueue.mpi"))) =
-{ (uint32_t)OS_MSGQUEUE_NUM, 0U, (uint32_t)osRtxMessageQueueCbSize, &os_mq_cb[0], NULL, NULL };
-
-// Memory Pool for Message Queue Data Storage
-#if (OS_MSGQUEUE_DATA_SIZE != 0)
-#if ((OS_MSGQUEUE_DATA_SIZE % 8) != 0)
-#error "Invalid Data Memory size for Message Queues!"
-#endif
-static uint64_t os_mq_data[2 + OS_MSGQUEUE_NUM + (OS_MSGQUEUE_DATA_SIZE/8)] \
-__attribute__((section(".bss.os.msgqueue.mem")));
-#endif
-
-#endif  // (OS_MSGQUEUE_OBJ_MEM != 0)
-
-
-// Event Recorder Configuration
-// ============================
-
-#if (defined(OS_EVR_INIT) && (OS_EVR_INIT != 0))
-
-// Initial Thread configuration covered also Thread Flags and Generic Wait
-#if  defined(OS_EVR_THREAD_FILTER)
-#if !defined(OS_EVR_THFLAGS_FILTER)
-#define OS_EVR_THFLAGS_FILTER   OS_EVR_THREAD_FILTER
-#endif
-#if !defined(OS_EVR_WAIT_FILTER)
-#define OS_EVR_WAIT_FILTER      OS_EVR_THREAD_FILTER
-#endif
-#endif
-
-// Migrate initial filter configuration
-#if  defined(OS_EVR_MEMORY_FILTER)
-#define OS_EVR_MEMORY_LEVEL     (((OS_EVR_MEMORY_FILTER    & 0x80U) != 0U) ? (OS_EVR_MEMORY_FILTER    & 0x0FU) : 0U)
-#endif
-#if  defined(OS_EVR_KERNEL_FILTER)
-#define OS_EVR_KERNEL_LEVEL     (((OS_EVR_KERNEL_FILTER    & 0x80U) != 0U) ? (OS_EVR_KERNEL_FILTER    & 0x0FU) : 0U)
-#endif
-#if  defined(OS_EVR_THREAD_FILTER)
-#define OS_EVR_THREAD_LEVEL     (((OS_EVR_THREAD_FILTER    & 0x80U) != 0U) ? (OS_EVR_THREAD_FILTER    & 0x0FU) : 0U)
-#endif
-#if  defined(OS_EVR_WAIT_FILTER)
-#define OS_EVR_WAIT_LEVEL       (((OS_EVR_WAIT_FILTER      & 0x80U) != 0U) ? (OS_EVR_WAIT_FILTER      & 0x0FU) : 0U)
-#endif
-#if  defined(OS_EVR_THFLAGS_FILTER)
-#define OS_EVR_THFLAGS_LEVEL    (((OS_EVR_THFLAGS_FILTER   & 0x80U) != 0U) ? (OS_EVR_THFLAGS_FILTER   & 0x0FU) : 0U)
-#endif
-#if  defined(OS_EVR_EVFLAGS_FILTER)
-#define OS_EVR_EVFLAGS_LEVEL    (((OS_EVR_EVFLAGS_FILTER   & 0x80U) != 0U) ? (OS_EVR_EVFLAGS_FILTER   & 0x0FU) : 0U)
-#endif
-#if  defined(OS_EVR_TIMER_FILTER)
-#define OS_EVR_TIMER_LEVEL      (((OS_EVR_TIMER_FILTER     & 0x80U) != 0U) ? (OS_EVR_TIMER_FILTER     & 0x0FU) : 0U)
-#endif
-#if  defined(OS_EVR_MUTEX_FILTER)
-#define OS_EVR_MUTEX_LEVEL      (((OS_EVR_MUTEX_FILTER     & 0x80U) != 0U) ? (OS_EVR_MUTEX_FILTER     & 0x0FU) : 0U)
-#endif
-#if  defined(OS_EVR_SEMAPHORE_FILTER)
-#define OS_EVR_SEMAPHORE_LEVEL  (((OS_EVR_SEMAPHORE_FILTER & 0x80U) != 0U) ? (OS_EVR_SEMAPHORE_FILTER & 0x0FU) : 0U)
-#endif
-#if  defined(OS_EVR_MEMPOOL_FILTER)
-#define OS_EVR_MEMPOOL_LEVEL    (((OS_EVR_MEMPOOL_FILTER   & 0x80U) != 0U) ? (OS_EVR_MEMPOOL_FILTER   & 0x0FU) : 0U)
-#endif
-#if  defined(OS_EVR_MSGQUEUE_FILTER)
-#define OS_EVR_MSGQUEUE_LEVEL   (((OS_EVR_MSGQUEUE_FILTER  & 0x80U) != 0U) ? (OS_EVR_MSGQUEUE_FILTER  & 0x0FU) : 0U)
-#endif
-
-#if  defined(RTE_Compiler_EventRecorder)
-
-// Event Recorder Initialize
-__STATIC_INLINE void evr_initialize (void) {
-
-  (void)EventRecorderInitialize(OS_EVR_LEVEL, (uint32_t)OS_EVR_START);
-
-  (void)EventRecorderEnable(OS_EVR_MEMORY_LEVEL,    EvtRtxMemoryNo,       EvtRtxMemoryNo);
-  (void)EventRecorderEnable(OS_EVR_KERNEL_LEVEL,    EvtRtxKernelNo,       EvtRtxKernelNo);
-  (void)EventRecorderEnable(OS_EVR_THREAD_LEVEL,    EvtRtxThreadNo,       EvtRtxThreadNo);
-  (void)EventRecorderEnable(OS_EVR_WAIT_LEVEL,      EvtRtxWaitNo,         EvtRtxWaitNo);
-  (void)EventRecorderEnable(OS_EVR_THFLAGS_LEVEL,   EvtRtxThreadFlagsNo,  EvtRtxThreadFlagsNo);
-  (void)EventRecorderEnable(OS_EVR_EVFLAGS_LEVEL,   EvtRtxEventFlagsNo,   EvtRtxEventFlagsNo);
-  (void)EventRecorderEnable(OS_EVR_TIMER_LEVEL,     EvtRtxTimerNo,        EvtRtxTimerNo);
-  (void)EventRecorderEnable(OS_EVR_MUTEX_LEVEL,     EvtRtxMutexNo,        EvtRtxMutexNo);
-  (void)EventRecorderEnable(OS_EVR_SEMAPHORE_LEVEL, EvtRtxSemaphoreNo,    EvtRtxSemaphoreNo);
-  (void)EventRecorderEnable(OS_EVR_MEMPOOL_LEVEL,   EvtRtxMemoryPoolNo,   EvtRtxMemoryPoolNo);
-  (void)EventRecorderEnable(OS_EVR_MSGQUEUE_LEVEL,  EvtRtxMessageQueueNo, EvtRtxMessageQueueNo);
-}
-
-#else
-#warning "Event Recorder cannot be initialized (Event Recorder component is not selected)!"
-#define evr_initialize()
-#endif
-
-#endif  // (OS_EVR_INIT != 0)
-
-
-// OS Configuration
-// ================
-
-
-const osRtxConfig_t osRtxConfig \
-__USED \
-__attribute__((section(".rodata"))) =
-{
-  //lint -e{835} "Zero argument to operator"
-  0U   // Flags
-#if (OS_PRIVILEGE_MODE != 0)
-  | osRtxConfigPrivilegedMode
-#endif
-#if (OS_STACK_CHECK != 0)
-  | osRtxConfigStackCheck
-#endif
-#if (OS_STACK_WATERMARK != 0)
-  | osRtxConfigStackWatermark
-#endif
-  ,
-  (uint32_t)OS_TICK_FREQ,
-#if (OS_ROBIN_ENABLE != 0)
-  (uint32_t)OS_ROBIN_TIMEOUT,
-#else
-  0U,
-#endif
-  { &os_isr_queue[0], (uint16_t)(sizeof(os_isr_queue)/sizeof(void *)), 0U },
-  { 
-    // Memory Pools (Variable Block Size)
-#if ((OS_THREAD_OBJ_MEM != 0) && (OS_THREAD_USER_STACK_SIZE != 0))
-    &os_thread_stack[0], sizeof(os_thread_stack),
-#else
-    NULL, 0U,
-#endif
-#if ((OS_MEMPOOL_OBJ_MEM != 0) && (OS_MEMPOOL_DATA_SIZE != 0))
-    &os_mp_data[0], sizeof(os_mp_data),
-#else
-    NULL, 0U,
-#endif
-#if ((OS_MSGQUEUE_OBJ_MEM != 0) && (OS_MSGQUEUE_DATA_SIZE != 0))
-    &os_mq_data[0], sizeof(os_mq_data),
-#else
-    NULL, 0U,
-#endif
-#if (OS_DYNAMIC_MEM_SIZE != 0)
-    &os_mem[0], (uint32_t)OS_DYNAMIC_MEM_SIZE,
-#else
-    NULL, 0U
-#endif
-  },
-  {
-    // Memory Pools (Fixed Block Size)
-#if (OS_THREAD_OBJ_MEM != 0)
-#if (OS_THREAD_DEF_STACK_NUM != 0)
-    &os_mpi_def_stack,
-#else
-    NULL,
-#endif
-    &os_mpi_thread,
-#else
-    NULL, 
-    NULL,
-#endif
-#if (OS_TIMER_OBJ_MEM != 0)
-    &os_mpi_timer,
-#else
-    NULL,
-#endif
-#if (OS_EVFLAGS_OBJ_MEM != 0)
-    &os_mpi_ef,
-#else
-    NULL,
-#endif
-#if (OS_MUTEX_OBJ_MEM != 0)
-    &os_mpi_mutex,
-#else
-    NULL,
-#endif
-#if (OS_SEMAPHORE_OBJ_MEM != 0)
-    &os_mpi_semaphore,
-#else
-    NULL,
-#endif
-#if (OS_MEMPOOL_OBJ_MEM != 0)
-    &os_mpi_mp,
-#else
-    NULL,
-#endif
-#if (OS_MSGQUEUE_OBJ_MEM != 0)
-    &os_mpi_mq,
-#else
-    NULL,
-#endif
-  },
-  (uint32_t)OS_STACK_SIZE,
-  &os_idle_thread_attr,
-#if ((OS_TIMER_THREAD_STACK_SIZE != 0) && (OS_TIMER_CB_QUEUE != 0))
-  &os_timer_thread_attr,
-  &os_timer_mq_attr,
-  (uint32_t)OS_TIMER_CB_QUEUE
-#else
-  NULL,
-  NULL,
-  0U
-#endif
-};
-
-
-// Non weak reference to library irq module
-//lint -esym(526,irqRtxLib)    "Defined by Exception handlers"
-//lint -esym(714,irqRtxLibRef) "Non weak reference"
-//lint -esym(765,irqRtxLibRef) "Global scope"
-extern       uint8_t  irqRtxLib;
-extern const uint8_t *irqRtxLibRef;
-       const uint8_t *irqRtxLibRef = &irqRtxLib;
-
-// Default User SVC Table
-//lint -esym(714,osRtxUserSVC) "Referenced by Exception handlers"
-//lint -esym(765,osRtxUserSVC) "Global scope"
-//lint -e{9067} "extern array declared without size"
-extern void * const osRtxUserSVC[];
-__WEAK void * const osRtxUserSVC[1] = { (void *)0 };
-
-
-// OS Sections
-// ===========
-
-#if defined(__CC_ARM)
-__asm void os_cb_sections_wrapper (void) {
-                EXTERN  ||.bss.os.thread.cb$$Base||     [WEAK]
-                EXTERN  ||.bss.os.thread.cb$$Limit||    [WEAK]
-                EXTERN  ||.bss.os.timer.cb$$Base||      [WEAK]
-                EXTERN  ||.bss.os.timer.cb$$Limit||     [WEAK]
-                EXTERN  ||.bss.os.evflags.cb$$Base||    [WEAK]
-                EXTERN  ||.bss.os.evflags.cb$$Limit||   [WEAK]
-                EXTERN  ||.bss.os.mutex.cb$$Base||      [WEAK]
-                EXTERN  ||.bss.os.mutex.cb$$Limit||     [WEAK]
-                EXTERN  ||.bss.os.semaphore.cb$$Base||  [WEAK]
-                EXTERN  ||.bss.os.semaphore.cb$$Limit|| [WEAK]
-                EXTERN  ||.bss.os.mempool.cb$$Base||    [WEAK]
-                EXTERN  ||.bss.os.mempool.cb$$Limit||   [WEAK]
-                EXTERN  ||.bss.os.msgqueue.cb$$Base||   [WEAK]
-                EXTERN  ||.bss.os.msgqueue.cb$$Limit||  [WEAK]
-  
-                AREA    ||.rodata||, DATA, READONLY
-                EXPORT  os_cb_sections
-os_cb_sections
-                DCD     ||.bss.os.thread.cb$$Base||
-                DCD     ||.bss.os.thread.cb$$Limit||
-                DCD     ||.bss.os.timer.cb$$Base||
-                DCD     ||.bss.os.timer.cb$$Limit||
-                DCD     ||.bss.os.evflags.cb$$Base||
-                DCD     ||.bss.os.evflags.cb$$Limit||
-                DCD     ||.bss.os.mutex.cb$$Base||
-                DCD     ||.bss.os.mutex.cb$$Limit||
-                DCD     ||.bss.os.semaphore.cb$$Base||
-                DCD     ||.bss.os.semaphore.cb$$Limit||
-                DCD     ||.bss.os.mempool.cb$$Base||
-                DCD     ||.bss.os.mempool.cb$$Limit||
-                DCD     ||.bss.os.msgqueue.cb$$Base||
-                DCD     ||.bss.os.msgqueue.cb$$Limit||
-
-                AREA    ||.emb_text||, CODE
-};
-#endif
-
-#if (defined(__ARMCC_VERSION) && (__ARMCC_VERSION >= 6010050))
-//lint -e{19} "Linker symbols"
-__asm (
-  ".weakref __os_thread_cb_start__,    .bss.os.thread.cb$$Base\n\t"
-  ".weakref __os_thread_cb_end__,      .bss.os.thread.cb$$Limit\n\t"
-  ".weakref __os_timer_cb_start__,     .bss.os.timer.cb$$Base\n\t"
-  ".weakref __os_timer_cb_end__,       .bss.os.timer.cb$$Limit\n\t"
-  ".weakref __os_evflags_cb_start__,   .bss.os.evflags.cb$$Base\n\t"
-  ".weakref __os_evflags_cb_end__,     .bss.os.evflags.cb$$Limit\n\t"
-  ".weakref __os_mutex_cb_start__,     .bss.os.mutex.cb$$Base\n\t"
-  ".weakref __os_mutex_cb_end__,       .bss.os.mutex.cb$$Limit\n\t"
-  ".weakref __os_semaphore_cb_start__, .bss.os.semaphore.cb$$Base\n\t"
-  ".weakref __os_semaphore_cb_end__,   .bss.os.semaphore.cb$$Limit\n\t"
-  ".weakref __os_mempool_cb_start__,   .bss.os.mempool.cb$$Base\n\t"
-  ".weakref __os_mempool_cb_end__,     .bss.os.mempool.cb$$Limit\n\t"
-  ".weakref __os_msgqueue_cb_start__,  .bss.os.msgqueue.cb$$Base\n\t"
-  ".weakref __os_msgqueue_cb_end__,    .bss.os.msgqueue.cb$$Limit\n\t"
-);
-#endif
-
-#if (defined(__ARMCC_VERSION) && (__ARMCC_VERSION >= 6010050)) || \
-    (defined(__GNUC__) && !defined(__CC_ARM))
-
-extern __attribute__((weak)) uint32_t __os_thread_cb_start__;    //lint -esym(526,__os_thread_cb_start__)
-extern __attribute__((weak)) uint32_t __os_thread_cb_end__;      //lint -esym(526,__os_thread_cb_end__)
-extern __attribute__((weak)) uint32_t __os_timer_cb_start__;     //lint -esym(526,__os_timer_cb_start__)
-extern __attribute__((weak)) uint32_t __os_timer_cb_end__;       //lint -esym(526,__os_timer_cb_end__)
-extern __attribute__((weak)) uint32_t __os_evflags_cb_start__;   //lint -esym(526,__os_evflags_cb_start__)
-extern __attribute__((weak)) uint32_t __os_evflags_cb_end__;     //lint -esym(526,__os_evflags_cb_end__)
-extern __attribute__((weak)) uint32_t __os_mutex_cb_start__;     //lint -esym(526,__os_mutex_cb_start__)
-extern __attribute__((weak)) uint32_t __os_mutex_cb_end__;       //lint -esym(526,__os_mutex_cb_end__)
-extern __attribute__((weak)) uint32_t __os_semaphore_cb_start__; //lint -esym(526,__os_semaphore_cb_start__)
-extern __attribute__((weak)) uint32_t __os_semaphore_cb_end__;   //lint -esym(526,__os_semaphore_cb_end__)
-extern __attribute__((weak)) uint32_t __os_mempool_cb_start__;   //lint -esym(526,__os_mempool_cb_start__)
-extern __attribute__((weak)) uint32_t __os_mempool_cb_end__;     //lint -esym(526,__os_mempool_cb_end__)
-extern __attribute__((weak)) uint32_t __os_msgqueue_cb_start__;  //lint -esym(526,__os_msgqueue_cb_start__)
-extern __attribute__((weak)) uint32_t __os_msgqueue_cb_end__;    //lint -esym(526,__os_msgqueue_cb_end__)
-
-//lint -e{19} "Global symbol"
-__asm (".global os_cb_sections");
-
-//lint -e{9067} "extern array declared without size"
-extern const uint32_t os_cb_sections[];
-
-//lint -esym(714,os_cb_sections) "Referenced by debugger"
-//lint -esym(765,os_cb_sections) "Global scope"
-//lint -e{923} -e{9078} "cast from pointer to unsigned int"
-const uint32_t os_cb_sections[] \
-__attribute__((section(".rodata"))) =
-{
-  (uint32_t)&__os_thread_cb_start__,
-  (uint32_t)&__os_thread_cb_end__,
-  (uint32_t)&__os_timer_cb_start__,
-  (uint32_t)&__os_timer_cb_end__,
-  (uint32_t)&__os_evflags_cb_start__,
-  (uint32_t)&__os_evflags_cb_end__,
-  (uint32_t)&__os_mutex_cb_start__,
-  (uint32_t)&__os_mutex_cb_end__,
-  (uint32_t)&__os_semaphore_cb_start__,
-  (uint32_t)&__os_semaphore_cb_end__,
-  (uint32_t)&__os_mempool_cb_start__,
-  (uint32_t)&__os_mempool_cb_end__,
-  (uint32_t)&__os_msgqueue_cb_start__,
-  (uint32_t)&__os_msgqueue_cb_end__
-};
-
-#endif
-
-
-// OS Initialization
-// =================
-
-#if  defined(__CC_ARM) || \
-    (defined(__ARMCC_VERSION) && (__ARMCC_VERSION >= 6010050))
-
-#ifndef __MICROLIB
-//lint -esym(714,_platform_post_stackheap_init) "Referenced by C library"
-//lint -esym(765,_platform_post_stackheap_init) "Global scope"
-extern void _platform_post_stackheap_init (void);
-__WEAK void _platform_post_stackheap_init (void) {
-  (void)osKernelInitialize();
-}
-#endif
-
-#elif defined(__GNUC__)
-
-extern void software_init_hook (void);
-__WEAK void software_init_hook (void) {
-  (void)osKernelInitialize();
-}
-
-#endif
-
-
-// OS Hooks
-// ========
-
-// RTOS Kernel Pre-Initialization Hook
-#if (defined(OS_EVR_INIT) && (OS_EVR_INIT != 0))
-void osRtxKernelPreInit (void);
-void osRtxKernelPreInit (void) {
-  if (osKernelGetState() == osKernelInactive) {
-    evr_initialize();
-  }
-}
-#endif
-
-
-// C/C++ Standard Library Multithreading Interface
-// ===============================================
-
-#if ( !defined(RTX_NO_MULTITHREAD_CLIB) && \
-     ( defined(__CC_ARM) || \
-      (defined(__ARMCC_VERSION) && (__ARMCC_VERSION >= 6010050))) && \
-      !defined(__MICROLIB))
-
-#define LIBSPACE_SIZE 96
-
-//lint -esym(714,__user_perthread_libspace,_mutex_*) "Referenced by C library"
-//lint -esym(765,__user_perthread_libspace,_mutex_*) "Global scope"
-//lint -esym(9003, os_libspace*) "variables 'os_libspace*' defined at module scope"
-
-// Memory for libspace
-static uint32_t os_libspace[OS_THREAD_LIBSPACE_NUM+1][LIBSPACE_SIZE/4] \
-__attribute__((section(".bss.os.libspace")));
-
-// Thread IDs for libspace
-static osThreadId_t os_libspace_id[OS_THREAD_LIBSPACE_NUM] \
-__attribute__((section(".bss.os.libspace")));
-
-// Check if Kernel has been started
-static uint32_t os_kernel_is_active (void) {
-  static uint8_t os_kernel_active = 0U;
-
-  if (os_kernel_active == 0U) {
-    if (osKernelGetState() > osKernelReady) {
-      os_kernel_active = 1U;
-    }
-  }
-  return (uint32_t)os_kernel_active;
-}
-
-// Provide libspace for current thread
-void *__user_perthread_libspace (void);
-void *__user_perthread_libspace (void) {
-  osThreadId_t id;
-  uint32_t     n;
-
-  if (os_kernel_is_active() != 0U) {
-    id = osThreadGetId();
-    for (n = 0U; n < (uint32_t)OS_THREAD_LIBSPACE_NUM; n++) {
-      if (os_libspace_id[n] == NULL) {
-        os_libspace_id[n] = id;
-      }
-      if (os_libspace_id[n] == id) {
-        break;
-      }
-    }
-    if (n == (uint32_t)OS_THREAD_LIBSPACE_NUM) {
-      (void)osRtxErrorNotify(osRtxErrorClibSpace, id);
-    }
-  } else {
-    n = OS_THREAD_LIBSPACE_NUM;
-  }
-
-  //lint -e{9087} "cast between pointers to different object types"
-  return (void *)&os_libspace[n][0];
-}
-
-// Mutex identifier
-typedef void *mutex;
-
-//lint -save "Function prototypes defined in C library"
-//lint -e970 "Use of 'int' outside of a typedef"
-//lint -e818 "Pointer 'm' could be declared as pointing to const"
-
-// Initialize mutex
-__USED
-int _mutex_initialize(mutex *m);
-int _mutex_initialize(mutex *m) {
-  int result;
-
-  *m = osMutexNew(NULL);
-  if (*m != NULL) {
-    result = 1;
-  } else {
-    result = 0;
-    (void)osRtxErrorNotify(osRtxErrorClibMutex, m);
-  }
-  return result;
-}
-
-// Acquire mutex
-__USED
-void _mutex_acquire(mutex *m);
-void _mutex_acquire(mutex *m) {
-  if (os_kernel_is_active() != 0U) {
-    (void)osMutexAcquire(*m, osWaitForever);
-  }
-}
-
-// Release mutex
-__USED
-void _mutex_release(mutex *m);
-void _mutex_release(mutex *m) {
-  if (os_kernel_is_active() != 0U) {
-    (void)osMutexRelease(*m);
-  }
-}
-
-// Free mutex
-__USED
-void _mutex_free(mutex *m);
-void _mutex_free(mutex *m) {
-  (void)osMutexDelete(*m);
-}
-
-//lint -restore
-
-#endif
diff --git a/app_broker/CMakeLists.txt b/app_broker/CMakeLists.txt
index cc6622c..2933833 100644
--- a/app_broker/CMakeLists.txt
+++ b/app_broker/CMakeLists.txt
@@ -14,27 +14,158 @@
 # brings configuration from TF-M build
 add_subdirectory(${CONFIG_SPE_PATH} ${CMAKE_BINARY_DIR}/spe)
 
-add_subdirectory(log)
-add_subdirectory(CMSIS)
-add_subdirectory(os_wrapper)
+####################### NS application libraries #######################
 
-add_library(tfm_test_broker STATIC
-    main_ns.c
+# Build all the NS application libraries here under app_broker
+# Those NS libraries depend on each other. It is more convenient to sort out the dependencies here.
+#
+# Those NS libraries also link to libraries exported from TF-M secure build. Specify all the
+# dependencies on TF-M exported libraries here, rather than under each NS library folder.
+# Therefore, NS library can be shared and re-used in other downstream projects, without specially
+# handling the differences of dependencies and paths in NS builds.
+
+# Interface files exported from TF-M secure build
+set(SPE_INSTALL_INTERFACE_SRC    ${CONFIG_SPE_PATH}/interface/src)
+set(SPE_INSTALL_INTERFACE_INC    ${CONFIG_SPE_PATH}/interface/include)
+# lib parth
+set(APP_LIB_DIR                  ${CMAKE_CURRENT_LIST_DIR}/../lib)
+
+# TF-M logging
+add_subdirectory(${APP_LIB_DIR}/log    ${CMAKE_CURRENT_BINARY_DIR}/lib/log)
+
+# OS wrapper library consists of the wrapper layer of RTOSes, such as RTX
+add_library(os_wrapper STATIC)
+
+target_sources(os_wrapper
+    PRIVATE
+        ${CMAKE_CURRENT_LIST_DIR}/os_wrapper_cmsis_rtos_v2.c
 )
 
-target_include_directories(tfm_test_broker PUBLIC .)
+target_include_directories(os_wrapper
+    PUBLIC
+        ${CMAKE_CURRENT_LIST_DIR}/../lib/os_wrapper
+        # Some NS files include "os_wrapper/xxx.h" instead
+        ${CMAKE_CURRENT_LIST_DIR}/../lib
+        # Some OS wrapper header files are exported from TF-M secure build
+        ${SPE_INSTALL_INTERFACE_INC}
+)
+
+target_link_libraries(os_wrapper
+    PRIVATE
+        RTX_OS
+        tfm_nsid_manager
+)
+
+# NSID manager
+add_library(tfm_nsid_manager INTERFACE)
+
+target_include_directories(tfm_nsid_manager
+    INTERFACE
+        ${APP_LIB_DIR}/nsid_manager
+)
+
+target_sources(tfm_nsid_manager
+    INTERFACE
+        $<$<BOOL:${TFM_NS_MANAGE_NSID}>:${APP_LIB_DIR}/nsid_manager/tfm_nsid_manager.c>
+)
+
+target_compile_definitions(tfm_nsid_manager
+    INTERFACE
+        $<$<BOOL:${TFM_NS_MANAGE_NSID}>:TFM_NS_MANAGE_NSID>
+        $<$<BOOL:${TEST_NS_MANAGE_NSID}>:TEST_NS_MANAGE_NSID>
+)
+
+# Provide TZ context management stub to RTOS if protected by Trustzone
+target_sources(RTX_OS
+    INTERFACE
+        $<$<BOOL:${CONFIG_TFM_USE_TRUSTZONE}>:${APP_LIB_DIR}/nsid_manager/tz_shim_layer.c>
+)
+
+target_link_libraries(RTX_OS
+    INTERFACE
+        tfm_nsid_manager
+)
+
+# Multi-core library
+if(TFM_PARTITION_NS_AGENT_MAILBOX)
+    add_library(ns_multi_core STATIC)
+
+    target_sources(ns_multi_core
+        PRIVATE
+            $<$<NOT:$<BOOL:${TFM_MULTI_CORE_NS_OS_MAILBOX_THREAD}>>:${SPE_INSTALL_INTERFACE_SRC}/multi_core/tfm_ns_mailbox.c>
+            $<$<BOOL:${TFM_MULTI_CORE_NS_OS_MAILBOX_THREAD}>:${SPE_INSTALL_INTERFACE_SRC}/multi_core/tfm_ns_mailbox_thread.c>
+            # NS RTOS specific implementation of NS mailbox
+            ${APP_LIB_DIR}/multi_core/tfm_ns_mailbox_rtos_api.c
+            $<$<BOOL:${TEST_NS_MULTI_CORE}>:${APP_LIB_DIR}/multi_core/tfm_ns_mailbox_test.c>
+    )
+
+    target_compile_definitions(ns_multi_core
+        PUBLIC
+            $<$<BOOL:${TFM_MULTI_CORE_NS_OS_MAILBOX_THREAD}>:TFM_MULTI_CORE_NS_OS_MAILBOX_THREAD>
+            TFM_MULTI_CORE_NS_OS
+    )
+
+    target_link_libraries(ns_multi_core
+        PRIVATE
+            platform_ns
+            tfm_api_ns
+            os_wrapper
+    )
+endif()
+
+################## Update plaform_ns with NS settings #################
+
+target_include_directories(platform_ns
+    PUBLIC
+        $<$<BOOL:${TFM_PARTITION_NS_AGENT_MAILBOX}>:${SPE_INSTALL_INTERFACE_INC}/multi_core>
+        ${SPE_INSTALL_INTERFACE_INC}
+)
+
+target_compile_definitions(platform_ns
+    PUBLIC
+        $<$<BOOL:${TFM_PARTITION_NS_AGENT_MAILBOX}>:TFM_MULTI_CORE_NS_OS>
+)
+
+################# Update NS interface with NS settings ################
+
+target_sources(tfm_api_ns
+    PRIVATE
+        # NS specific implementation of NS interface dispatcher
+        $<$<BOOL:${CONFIG_TFM_USE_TRUSTZONE}>:${SPE_INSTALL_INTERFACE_SRC}/os_wrapper/tfm_ns_interface_rtos.c>
+)
+
+target_compile_definitions(tfm_api_ns
+    PUBLIC
+        $<$<BOOL:${TEST_NS_MULTI_CORE}>:TFM_MULTI_CORE_TEST>
+)
+
+target_link_libraries(tfm_api_ns
+    PRIVATE
+        $<$<BOOL:${CONFIG_TFM_USE_TRUSTZONE}>:os_wrapper>
+)
+
+######################## NS application broker ########################
+
+add_library(tfm_test_broker STATIC)
+
+target_sources(tfm_test_broker
+    PRIVATE
+        main_ns.c
+        $<$<BOOL:${TFM_NS_MANAGE_NSID}>:${CMAKE_CURRENT_LIST_DIR}/tfm_nsid_map_table.c>
+)
+
+target_include_directories(tfm_test_broker
+    PUBLIC
+        .
+)
 
 target_link_libraries(tfm_test_broker
+    PRIVATE
+        os_wrapper
+        tfm_nsid_manager
     PUBLIC
+        RTX_OS
         tfm_api_ns
         tfm_log
-        os_wrapper
+        $<$<BOOL:${TFM_PARTITION_NS_AGENT_MAILBOX}>:ns_multi_core>
 )
-
-add_subdirectory(nsid_manager)
-target_link_libraries(tfm_test_broker PUBLIC tfm_nsid_manager)
-
-if (TFM_PARTITION_NS_AGENT_MAILBOX)
-    add_subdirectory(multi_core)
-    target_link_libraries(tfm_test_broker PUBLIC ns_multi_core)
-endif()
diff --git a/app_broker/log/CMakeLists.txt b/app_broker/log/CMakeLists.txt
deleted file mode 100644
index 3612435..0000000
--- a/app_broker/log/CMakeLists.txt
+++ /dev/null
@@ -1,24 +0,0 @@
-#-------------------------------------------------------------------------------
-# Copyright (c) 2020-2022, Arm Limited. All rights reserved.
-#
-# SPDX-License-Identifier: BSD-3-Clause
-#
-#-------------------------------------------------------------------------------
-
-############################# Ns Log ###########################################
-add_library(tfm_log STATIC)
-
-target_sources(tfm_log
-    PRIVATE
-        tfm_log_raw.c
-)
-
-target_include_directories(tfm_log
-    PUBLIC
-        ${CMAKE_CURRENT_SOURCE_DIR}
-)
-
-target_link_libraries(tfm_log
-    PUBLIC
-        platform_ns
-)
diff --git a/app_broker/log/tfm_log.h b/app_broker/log/tfm_log.h
deleted file mode 100644
index 5563434..0000000
--- a/app_broker/log/tfm_log.h
+++ /dev/null
@@ -1,17 +0,0 @@
-/*
- * Copyright (c) 2019-2020, Arm Limited. All rights reserved.
- *
- * SPDX-License-Identifier: BSD-3-Clause
- *
- */
-
-#ifndef __TFM_LOG_H__
-#define __TFM_LOG_H__
-
-#include "tfm_log_raw.h"
-
-/* Functions and macros in this file is for 'thread mode' usage. */
-
-#define LOG_MSG(...) tfm_log_printf(__VA_ARGS__)
-
-#endif /* __TFM_LOG_H__ */
diff --git a/app_broker/log/tfm_log_raw.c b/app_broker/log/tfm_log_raw.c
deleted file mode 100644
index 86cf1c3..0000000
--- a/app_broker/log/tfm_log_raw.c
+++ /dev/null
@@ -1,170 +0,0 @@
-/*
- * Copyright (c) 2019-2020, Arm Limited. All rights reserved.
- *
- * SPDX-License-Identifier: BSD-3-Clause
- *
- */
-
-#include <stdarg.h>
-#include <stddef.h>
-#include <stdint.h>
-#include "uart_stdout.h"
-
-#define PRINT_BUFF_SIZE 32
-#define NUM_BUFF_SIZE 12
-
-struct formatted_buffer_t {
-    size_t pos;
-    uint8_t buf[PRINT_BUFF_SIZE];
-};
-
-const char hex_digits_lo[] = {'0', '1', '2', '3', '4', '5', '6', '7',
-                              '8', '9', 'a', 'b', 'c', 'd', 'e', 'f'};
-const char hex_digits_up[] = {'0', '1', '2', '3', '4', '5', '6', '7',
-                              '8', '9', 'A', 'B', 'C', 'D', 'E', 'F'};
-
-static void _tfm_flush_formatted_buffer(struct formatted_buffer_t *pb,
-                                        uint8_t data)
-{
-    pb->buf[pb->pos++] = data;
-    if (pb->pos >= PRINT_BUFF_SIZE) {
-        pb->pos = 0;
-        /* uart flush and print here. */
-        stdio_output_string(pb->buf, PRINT_BUFF_SIZE);
-    }
-}
-
-static int _tfm_string_output(struct formatted_buffer_t *pb,
-                              const char *str)
-{
-    int count = 0;
-
-    while (*str) {
-        _tfm_flush_formatted_buffer(pb, *str++);
-        count++;
-    }
-
-    return count;
-}
-
-static int _tfm_dec_num_output(struct formatted_buffer_t *pb,
-                               int32_t num, uint8_t sign)
-{
-    int count = 0;
-    uint8_t num_buff[NUM_BUFF_SIZE] = {0};
-    uint32_t number = (uint32_t)num;
-    uint32_t k = 0;
-
-    if (sign == 'd' && num < 0) {
-        _tfm_flush_formatted_buffer(pb, '-');
-        count++;
-        number = -num;
-    }
-
-    do {
-        num_buff[k++] = '0' + number % 10;
-        number /= 10;
-    } while (number);
-
-    while (k) {
-        _tfm_flush_formatted_buffer(pb, num_buff[--k]);
-        count++;
-    }
-
-    return count;
-}
-
-static int _tfm_hex_num_output(struct formatted_buffer_t *pb, uint32_t num,
-                               const char *hex_digits)
-{
-    int count = 0;
-    uint8_t num_buff[NUM_BUFF_SIZE] = {0};
-    uint32_t k = 0;
-
-    do {
-        num_buff[k++] = hex_digits[num & 0x0f];
-        num >>= 4;
-    } while (num);
-
-    while (k) {
-        _tfm_flush_formatted_buffer(pb, num_buff[--k]);
-        count++;
-    }
-
-    return count;
-}
-
-static int _tfm_log_vprintf(const char *fmt, va_list ap)
-{
-    int count = 0;
-    struct formatted_buffer_t outputbuf;
-
-    outputbuf.pos = 0;
-
-    while (*fmt) {
-        if (*fmt == '%') {
-            switch (*(++fmt)) {
-            case 'd':
-            case 'i':
-                count += _tfm_dec_num_output(&outputbuf,
-                                             va_arg(ap, int32_t), 'd');
-                break;
-            case 'u':
-                count += _tfm_dec_num_output(&outputbuf,
-                                             va_arg(ap, int32_t), 'u');
-                break;
-            case 'x':
-                count += _tfm_hex_num_output(&outputbuf, va_arg(ap, uint32_t),
-                                             hex_digits_lo);
-                break;
-            case 'X':
-                count += _tfm_hex_num_output(&outputbuf, va_arg(ap, uint32_t),
-                                             hex_digits_up);
-                break;
-            case 'p':
-                count += _tfm_string_output(&outputbuf, "0x");
-                count += _tfm_hex_num_output(&outputbuf, va_arg(ap, uint32_t),
-                                             hex_digits_lo);
-                break;
-            case 's':
-                count += _tfm_string_output(&outputbuf, va_arg(ap, char*));
-                break;
-            case 'c':
-                _tfm_flush_formatted_buffer(&outputbuf,
-                                            (uint8_t)va_arg(ap, int32_t));
-                count++;
-                break;
-            case '%':
-                _tfm_flush_formatted_buffer(&outputbuf, '%');
-                count++;
-                break;
-            default:
-                count += _tfm_string_output(&outputbuf, "[Unsupported Tag]");
-                continue;
-            }
-            fmt++;
-        } else {
-            _tfm_flush_formatted_buffer(&outputbuf, *fmt++);
-            count++;
-        }
-    }
-
-    /* End of printf, flush buf */
-    if (outputbuf.pos) {
-        count += stdio_output_string(outputbuf.buf, outputbuf.pos);
-    }
-
-    return count;
-}
-
-int tfm_log_printf(const char *fmt, ...)
-{
-    int count = 0;
-    va_list ap;
-
-    va_start(ap, fmt);
-    count = _tfm_log_vprintf(fmt, ap);
-    va_end(ap);
-
-    return count;
-}
diff --git a/app_broker/log/tfm_log_raw.h b/app_broker/log/tfm_log_raw.h
deleted file mode 100644
index 7a5a942..0000000
--- a/app_broker/log/tfm_log_raw.h
+++ /dev/null
@@ -1,44 +0,0 @@
-/*
- * Copyright (c) 2019, Arm Limited. All rights reserved.
- *
- * SPDX-License-Identifier: BSD-3-Clause
- *
- */
-
-#ifndef __TFM_LOG_RAW_H__
-#define __TFM_LOG_RAW_H__
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/**
- * \brief Prints log messages
- *
- * \param[in]   fmt     Formatted string
- * \param[in]   ...     Viriable length argument
- *
- * \return              Number of chars printed
- *
- * \note                This function has the similar input argument format as
- *                      the 'printf' function. But it supports only some basic
- *                      formats like 'sdicpuxX' and '%'. It will output
- *                      "[Unsupported Tag]" when none of the above formats match
- *
- * \details             The following output formats are supported.
- *                      %s - string
- *                      %d - decimal signed integer (same for %i)
- *                      %u - decimal unsigned integer
- *                      %x - hex in lowercase
- *                      %X - hex in uppercase
- *                      %p - hex address of a pointer in lowercase
- *                      %c - character
- *                      %% - the '%' symbol
- */
-int tfm_log_printf(const char *fmt, ...);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* __TFM_LOG_RAW_H__ */
diff --git a/app_broker/multi_core/CMakeLists.txt b/app_broker/multi_core/CMakeLists.txt
deleted file mode 100644
index 5780624..0000000
--- a/app_broker/multi_core/CMakeLists.txt
+++ /dev/null
@@ -1,28 +0,0 @@
-#-------------------------------------------------------------------------------
-# Copyright (c) 2023, Arm Limited. All rights reserved.
-#
-# SPDX-License-Identifier: BSD-3-Clause
-#
-#-------------------------------------------------------------------------------
-#
-# This CMake script used in a split build only. In the legacy 'sinlge' build
-# this file is ignoed. Please don't be confused.
-#
-cmake_minimum_required(VERSION 3.15)
-
-add_library(ns_multi_core STATIC
-    PRIVATE
-        tfm_multi_core_ns_api.c
-        tfm_multi_core_psa_ns_api.c
-        $<$<NOT:$<BOOL:${TFM_MULTI_CORE_NS_OS_MAILBOX_THREAD}>>:tfm_ns_mailbox.c>
-        $<$<AND:$<BOOL:${TFM_MULTI_CORE_TOPOLOGY}>,$<BOOL:${TFM_MULTI_CORE_NS_OS_MAILBOX_THREAD}>>:tfm_ns_mailbox_thread.c>
-        # NS RTOS specific implementation of NS mailbox
-        $<$<BOOL:${TFM_MULTI_CORE_TOPOLOGY}>:tfm_ns_mailbox_rtos_api.c>
-        $<$<BOOL:${TEST_NS_MULTI_CORE}>:tfm_ns_mailbox_test.c>
-)
-
-target_compile_definitions(ns_multi_core
-    PUBLIC
-        $<$<BOOL:${TFM_PARTITION_NS_AGENT_MAILBOX}>:TFM_PARTITION_NS_AGENT_MAILBOX>
-        $<$<AND:$<BOOL:${TFM_MULTI_CORE_NS_OS_MAILBOX_THREAD}>,$<BOOL:${TFM_MULTI_CORE_TOPOLOGY}>>:TFM_MULTI_CORE_NS_OS_MAILBOX_THREAD>
-)
diff --git a/app_broker/multi_core/tfm_ns_mailbox_rtos_api.c b/app_broker/multi_core/tfm_ns_mailbox_rtos_api.c
deleted file mode 100644
index 32fbedf..0000000
--- a/app_broker/multi_core/tfm_ns_mailbox_rtos_api.c
+++ /dev/null
@@ -1,136 +0,0 @@
-/*
- * Copyright (c) 2020-2021, Arm Limited. All rights reserved.
- *
- * SPDX-License-Identifier: BSD-3-Clause
- *
- */
-
-/*
- * This file is a reference implementation of Non-secure mailbox RTOS API.
- * This reference implementation is based on TF-M ROTS wrapper API.
- * It can be replaced by RTOS specific implementation.
- */
-
-#include "cmsis_compiler.h"
-
-#ifdef TFM_MULTI_CORE_NS_OS_MAILBOX_THREAD
-#include "os_wrapper/msg_queue.h"
-#else
-#include "os_wrapper/semaphore.h"
-#endif
-#include "os_wrapper/thread.h"
-
-#include "tfm_ns_mailbox.h"
-
-/*
- * Thread flag to manage wait/wake mechanism in mailbox.、
- * Thread flag can be RTOS specific.
- * The following example definition also covers the rule of CMSIS-RTOS2, which
- * requires the MSB of thread flags must be 0b0.
- */
-#define MAILBOX_THREAD_FLAG            0x5FCA0000
-
-#ifndef TFM_MULTI_CORE_NS_OS_MAILBOX_THREAD
-#define MAX_SEMAPHORE_COUNT            NUM_MAILBOX_QUEUE_SLOT
-
-static void *ns_lock_handle = NULL;
-#endif
-
-const void *tfm_ns_mailbox_os_get_task_handle(void)
-{
-    return os_wrapper_thread_get_handle();
-}
-
-void tfm_ns_mailbox_os_wait_reply(void)
-{
-    os_wrapper_thread_wait_flag(MAILBOX_THREAD_FLAG, OS_WRAPPER_WAIT_FOREVER);
-}
-
-void tfm_ns_mailbox_os_wake_task_isr(const void *task_handle)
-{
-    os_wrapper_thread_set_flag_isr((void *)task_handle, MAILBOX_THREAD_FLAG);
-}
-
-/*
- * When NSPE mailbox only covers a single non-secure core, spinlock only
- * requires to disable IRQ.
- */
-void tfm_ns_mailbox_os_spin_lock(void)
-{
-    __disable_irq();
-}
-
-/*
- * It is assumed that IRQ is always enabled when spinlock is acquired.
- * Otherwise, the waiting thread won't be woken up.
- */
-void tfm_ns_mailbox_os_spin_unlock(void)
-{
-    __enable_irq();
-}
-
-#ifdef TFM_MULTI_CORE_NS_OS_MAILBOX_THREAD
-void *tfm_ns_mailbox_os_mq_create(size_t msg_size, uint8_t msg_count)
-{
-    return os_wrapper_msg_queue_create(msg_size, msg_count);
-}
-
-int32_t tfm_ns_mailbox_os_mq_send(void *mq_handle, const void *msg_ptr)
-{
-    int32_t ret;
-
-    if (!mq_handle || !msg_ptr) {
-        return MAILBOX_INVAL_PARAMS;
-    }
-
-    while (1) {
-        ret = os_wrapper_msg_queue_send(mq_handle, msg_ptr);
-        if (ret == OS_WRAPPER_SUCCESS) {
-            return MAILBOX_SUCCESS;
-        }
-    }
-
-    return MAILBOX_GENERIC_ERROR;
-}
-
-int32_t tfm_ns_mailbox_os_mq_receive(void *mq_handle, void *msg_ptr)
-{
-    int32_t ret;
-
-    if (!mq_handle || !msg_ptr) {
-        return MAILBOX_INVAL_PARAMS;
-    }
-
-    while (1) {
-        ret = os_wrapper_msg_queue_receive(mq_handle, msg_ptr);
-        if (ret == OS_WRAPPER_SUCCESS) {
-            return MAILBOX_SUCCESS;
-        }
-    }
-
-    return MAILBOX_GENERIC_ERROR;
-}
-#else /* TFM_MULTI_CORE_NS_OS_MAILBOX_THREAD */
-int32_t tfm_ns_mailbox_os_lock_init(void)
-{
-    ns_lock_handle = os_wrapper_semaphore_create(MAX_SEMAPHORE_COUNT,
-                                                 MAX_SEMAPHORE_COUNT,
-                                                 NULL);
-    if (!ns_lock_handle) {
-        return MAILBOX_GENERIC_ERROR;
-    }
-
-    return MAILBOX_SUCCESS;
-}
-
-int32_t tfm_ns_mailbox_os_lock_acquire(void)
-{
-    return os_wrapper_semaphore_acquire(ns_lock_handle,
-                                        OS_WRAPPER_WAIT_FOREVER);
-}
-
-int32_t tfm_ns_mailbox_os_lock_release(void)
-{
-    return os_wrapper_semaphore_release(ns_lock_handle);
-}
-#endif /* TFM_MULTI_CORE_NS_OS_MAILBOX_THREAD */
diff --git a/app_broker/multi_core/tfm_ns_mailbox_test.c b/app_broker/multi_core/tfm_ns_mailbox_test.c
deleted file mode 100644
index f3a9d50..0000000
--- a/app_broker/multi_core/tfm_ns_mailbox_test.c
+++ /dev/null
@@ -1,79 +0,0 @@
-/*
- * Copyright (c) 2020-2021, Arm Limited. All rights reserved.
- *
- * SPDX-License-Identifier: BSD-3-Clause
- *
- */
-
-#include "tfm_ns_mailbox.h"
-#include "tfm_ns_mailbox_test.h"
-
-static struct ns_mailbox_queue_t *stats_queue_ptr = NULL;
-
-void tfm_ns_mailbox_tx_stats_init(struct ns_mailbox_queue_t *ns_queue)
-{
-    if (!ns_queue) {
-        return;
-    }
-
-    ns_queue->nr_tx = 0;
-    ns_queue->nr_used_slots = 0;
-
-    stats_queue_ptr = ns_queue;
-}
-
-int32_t tfm_ns_mailbox_tx_stats_reinit(void)
-{
-    if (!stats_queue_ptr) {
-        return MAILBOX_INVAL_PARAMS;
-    }
-
-    stats_queue_ptr->nr_tx = 0;
-    stats_queue_ptr->nr_used_slots = 0;
-
-    return MAILBOX_SUCCESS;
-}
-
-void tfm_ns_mailbox_tx_stats_update(void)
-{
-    mailbox_queue_status_t empty_status;
-    uint8_t idx, nr_empty = 0;
-
-    if (!stats_queue_ptr) {
-        return;
-    }
-
-    tfm_ns_mailbox_os_spin_lock();
-    /* Count the number of used slots when this tx arrives */
-    empty_status = stats_queue_ptr->empty_slots;
-    tfm_ns_mailbox_os_spin_unlock();
-
-    if (empty_status) {
-        for (idx = 0; idx < NUM_MAILBOX_QUEUE_SLOT; idx++) {
-            if (empty_status & (0x1UL << idx)) {
-                nr_empty++;
-            }
-        }
-    }
-
-    tfm_ns_mailbox_os_spin_lock();
-    stats_queue_ptr->nr_used_slots += (NUM_MAILBOX_QUEUE_SLOT - nr_empty);
-    stats_queue_ptr->nr_tx++;
-    tfm_ns_mailbox_os_spin_unlock();
-}
-
-void tfm_ns_mailbox_stats_avg_slot(struct ns_mailbox_stats_res_t *stats_res)
-{
-    uint32_t nr_used_slots, nr_tx;
-
-    if (!stats_queue_ptr || !stats_res) {
-        return;
-    }
-
-    nr_used_slots = stats_queue_ptr->nr_used_slots;
-    nr_tx = stats_queue_ptr->nr_tx;
-
-    stats_res->avg_nr_slots = nr_used_slots / nr_tx;
-    nr_used_slots %= nr_tx;
-    stats_res->avg_nr_slots_tenths = nr_used_slots * 10 / nr_tx;
-}
diff --git a/app_broker/nsid_manager/CMakeLists.txt b/app_broker/nsid_manager/CMakeLists.txt
deleted file mode 100644
index 24c5d9e..0000000
--- a/app_broker/nsid_manager/CMakeLists.txt
+++ /dev/null
@@ -1,34 +0,0 @@
-#-------------------------------------------------------------------------------
-# Copyright (c) 2023, Arm Limited. All rights reserved.
-#
-# SPDX-License-Identifier: BSD-3-Clause
-#
-#-------------------------------------------------------------------------------
-
-cmake_minimum_required(VERSION 3.15)
-
-add_library(tfm_nsid_manager STATIC)
-
-target_include_directories(tfm_nsid_manager PUBLIC .)
-
-target_link_libraries(tfm_nsid_manager PRIVATE RTX_OS)
-
-if(TFM_NS_MANAGE_NSID)
-    target_sources(tfm_nsid_manager
-        PUBLIC
-            tfm_nsid_manager.c
-            tfm_nsid_map_table.c
-            tz_shim_layer.c
-    )
-
-    target_compile_definitions(tfm_nsid_manager
-        PUBLIC
-            TFM_NS_MANAGE_NSID
-            $<$<BOOL:${TEST_NS_MANAGE_NSID}>:TEST_NS_MANAGE_NSID>
-    )
-else()
-    target_sources(tfm_nsid_manager
-        PUBLIC
-            tz_stub.c
-    )
-endif()
diff --git a/app_broker/nsid_manager/tfm_nsid_manager.c b/app_broker/nsid_manager/tfm_nsid_manager.c
deleted file mode 100755
index 00b38f3..0000000
--- a/app_broker/nsid_manager/tfm_nsid_manager.c
+++ /dev/null
@@ -1,97 +0,0 @@
-/*
- * Copyright (c) 2021, Arm Limited. All rights reserved.
- *
- * SPDX-License-Identifier: BSD-3-Clause
- *
- */
-
-#include "tfm_ns_client_ext.h"
-#include "tfm_nsid_manager.h"
-
-/* Max number of threads could be customised by RTOS */
-#ifndef THREAD_NUM_MAX
-#define THREAD_NUM_MAX          10
-#endif
-
-/* Map table of token and NSIDs */
-struct nsid_token_pair {
-    uint32_t token;
-    int32_t  nsid;
-};
-
-static struct nsid_token_pair test_ns_token_table[THREAD_NUM_MAX];
-
-uint8_t nsid_mgr_init(void)
-{
-    uint32_t i;
-
-    for (i = 0; i < THREAD_NUM_MAX; i++) {
-        test_ns_token_table[i].token = TFM_NS_CLIENT_INVALID_TOKEN;
-        test_ns_token_table[i].nsid = TFM_INVALID_NSID_MIN;
-    }
-
-    return NSID_MGR_ERR_SUCCESS;
-}
-
-uint8_t nsid_mgr_add_entry(int32_t nsid, uint32_t token)
-{
-    uint32_t i;
-
-    if (nsid >= TFM_INVALID_NSID_MIN) {
-        return NSID_MGR_ERR_INVALID_NSID;
-    }
-
-    if (token == TFM_NS_CLIENT_INVALID_TOKEN) {
-        return NSID_MGR_ERR_INVALID_TOKEN;
-    }
-
-    for (i = 0; i < THREAD_NUM_MAX; i++) {
-        if (test_ns_token_table[i].token == TFM_NS_CLIENT_INVALID_TOKEN) {
-            test_ns_token_table[i].token = token;
-            test_ns_token_table[i].nsid = nsid;
-            return NSID_MGR_ERR_SUCCESS;
-        }
-    }
-
-    /* No free entry for new token, return error */
-    return NSID_MGR_ERR_NO_FREE_ENTRY;
-}
-
-uint8_t nsid_mgr_remove_entry(uint32_t token)
-{
-    uint32_t i;
-
-    if (token == TFM_NS_CLIENT_INVALID_TOKEN) {
-        return NSID_MGR_ERR_INVALID_TOKEN;
-    }
-
-    for (i = 0; i < THREAD_NUM_MAX; i++) {
-        if (test_ns_token_table[i].token == token) {
-            test_ns_token_table[i].token = TFM_NS_CLIENT_INVALID_TOKEN;
-            test_ns_token_table[i].nsid = TFM_INVALID_NSID_MIN;
-            return NSID_MGR_ERR_SUCCESS;
-        }
-    }
-
-    /* Token not found in the table, return error */
-    return NSID_MGR_ERR_INVALID_TOKEN;
-}
-
-int32_t nsid_mgr_query_nsid(uint32_t token)
-{
-    uint32_t i;
-
-    /* Return invalid NSID if token is invalid */
-    if (token == TFM_NS_CLIENT_INVALID_TOKEN) {
-        return TFM_INVALID_NSID_MIN;
-    }
-
-    for (i = 0; i < THREAD_NUM_MAX; i++) {
-        if (test_ns_token_table[i].token == token) {
-            return test_ns_token_table[i].nsid;
-        }
-    }
-
-    /* Token not found in the table, return invalid NSID */
-    return TFM_INVALID_NSID_MIN;
-}
diff --git a/app_broker/nsid_manager/tfm_nsid_manager.h b/app_broker/nsid_manager/tfm_nsid_manager.h
deleted file mode 100755
index b42311a..0000000
--- a/app_broker/nsid_manager/tfm_nsid_manager.h
+++ /dev/null
@@ -1,75 +0,0 @@
-/*
- * Copyright (c) 2021, Arm Limited. All rights reserved.
- *
- * SPDX-License-Identifier: BSD-3-Clause
- *
- */
-
-/*
- * This is a simple implementaton for reference to manage NSID from NS side.
- * Developers can design the management according to RTOS and usage scenarios.
- */
-
-#ifndef __TFM_NSID_MANAGER_H__
-#define __TFM_NSID_MANAGER_H__
-
-#include <stdint.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#ifndef ARRAY_SIZE
-#define ARRAY_SIZE(arr) (sizeof(arr)/sizeof(arr[0]))
-#endif
-
-#define TFM_DEFAULT_GID         0x00
-#define TFM_DEFAULT_NSID        ((int32_t)-1)
-/* Non-secure client ID needs to be negative */
-#define TFM_INVALID_NSID_MIN    ((int32_t)0)
-
-/* NSID Manager Error Code */
-#define NSID_MGR_ERR_SUCCESS          0x00
-#define NSID_MGR_ERR_INVALID_NSID     0x01
-#define NSID_MGR_ERR_INVALID_TOKEN    0x02
-#define NSID_MGR_ERR_NO_FREE_ENTRY    0x03
-
-/*
- * Current active NSID token needs to be manually save and reload
- * before and after calling NS client ext directly from SVC in NSID test suite.
- */
-#ifdef TEST_NS_MANAGE_NSID
-extern uint32_t current_active_token;
-#endif
-
-/*
- * Initialize the table to map token and nsid.
- * This function should be called before any other NSID manager APIs.
- */
-uint8_t nsid_mgr_init(void);
-
-/*
- * Add a new nsid-token map entry to the table.
- * This function should be called once a new token
- * has been successfully assigned by ns_client_ext.
- */
-uint8_t nsid_mgr_add_entry(int32_t nsid, uint32_t token);
-
-/*
- * Delete a nsid-token map entry from the table.
- * This function should be called once an existing token
- * has been successfully released by ns_client_ext.
- */
-uint8_t nsid_mgr_remove_entry(uint32_t token);
-
-/*
- * Query NSID from the map table with token.
- * This function is to get NSID assigned by RTOS with token of a NS thread.
- */
-int32_t nsid_mgr_query_nsid(uint32_t token);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* __TFM_NSID_MANAGER_H__ */
diff --git a/app_broker/nsid_manager/tz_shim_layer.c b/app_broker/nsid_manager/tz_shim_layer.c
deleted file mode 100755
index 74a12ec..0000000
--- a/app_broker/nsid_manager/tz_shim_layer.c
+++ /dev/null
@@ -1,188 +0,0 @@
-/*
- * Copyright (c) 2021, Arm Limited. All rights reserved.
- *
- * SPDX-License-Identifier: BSD-3-Clause
- *
- */
-
-/*
- * This is a simple example implementaton for reference
- * to make TZ APIs co-work with TF-M NSCE module.
- *
- * Developers can implement according to different RTOS and usage scenarios.
- */
-
-#include "tz_context.h"
-
-#include "tfm_ns_client_ext.h"
-#include "tfm_nsid_manager.h"
-
-#ifdef TFM_NS_MANAGE_NSID
-#define NSID_MGR_THREAD_ID_MAX       0xFF
-#define NSID_MGR_GROUP_ID_DEFAULT    0X00
-/*
- * 0 is reserved for thread ID in NSID manager to avoid token being set as 0.
- * TZ_MemoryID_t is used to record the token value.
- * Scheduler of the RTOS would be disabled if TZ_MemoryID_t is 0.
- */
-static uint8_t nsid_mgr_thread_id = 1;
-#endif
-
-#ifdef TEST_NS_MANAGE_NSID
-uint32_t current_active_token;
-#endif
-
-/*
- * TF-M shim layer of the CMSIS TZ RTOS thread context management API
- */
-
-/*
- * Initialize token-nsid map table in tfm nsid manager
- * Return execution status (1: success, 0: error)
- */
-uint32_t TZ_InitContextSystem_S(void)
-{
-#ifdef TFM_NS_MANAGE_NSID
-    /* Initialize the ns client ext */
-    if (tfm_nsce_init(0) == 0) {
-        return 0U;    /* Error */
-    }
-
-    /* Initialize the nsid manager */
-    if (nsid_mgr_init() == NSID_MGR_ERR_SUCCESS) {
-#ifdef TEST_NS_MANAGE_NSID
-        current_active_token = TFM_NS_CLIENT_INVALID_TOKEN;
-#endif
-        return 1U;    /* Success */
-    } else {
-        return 0U;    /* Error */
-    }
-#else /* TFM_NS_MANAGE_NSID */
-    return 1U;    /* Success */
-#endif /* TFM_NS_MANAGE_NSID */
-}
-
-/*
- * Allocate context memory from Secure side
- * Param: TZ_ModuleId_t (NSID if TFM_NS_MANAGE_NSID is enabled)
- * Return token if TFM_NS_MANAGE_NSID is enabled
- * Return 0 if no memory available or internal error
- */
-TZ_MemoryId_t TZ_AllocModuleContext_S(TZ_ModuleId_t module)
-{
-#ifdef TFM_NS_MANAGE_NSID
-    int32_t nsid;
-    uint32_t token;
-
-    /* TZ_ModuleID_t is used to record NSID */
-    nsid = (int32_t)module;
-
-    /* New thread ID not available, return error */
-    if (nsid_mgr_thread_id >= NSID_MGR_THREAD_ID_MAX) {
-        return 0U;    /* Error */
-    }
-
-    token = tfm_nsce_acquire_ctx(NSID_MGR_GROUP_ID_DEFAULT, nsid_mgr_thread_id++);
-
-    if (nsid_mgr_add_entry(nsid, token) == NSID_MGR_ERR_SUCCESS) {
-        return token;    /* Success: return token as TZ_MemoryId_t */
-    } else {
-        return 0U;    /* Error */
-    }
-#else /* TFM_NS_MANAGE_NSID */
-    return 1U;    /* Success */
-#endif /* TFM_NS_MANAGE_NSID */
-}
-
-/*
- * Free context memory that was previously allocated with TZ_AllocModuleContext_S
- * Param: TZ_MemoryId_t (token if TFM_NS_MANAGE_NSID is enabled)
- * Return execution status (1: success, 0: error)
- */
-uint32_t TZ_FreeModuleContext_S(TZ_MemoryId_t id)
-{
-#ifdef TFM_NS_MANAGE_NSID
-    uint32_t token;
-
-    /* TZ_MemoryId_t is used to record token */
-    token = (uint32_t)id;
-
-    if (nsid_mgr_remove_entry(token) != NSID_MGR_ERR_SUCCESS) {
-        return 0U;    /* Error */
-    }
-
-    if (tfm_nsce_release_ctx(token) == TFM_NS_CLIENT_ERR_SUCCESS) {
-#ifdef TEST_NS_MANAGE_NSID
-        if (current_active_token != TFM_NS_CLIENT_INVALID_TOKEN) {
-            current_active_token = TFM_NS_CLIENT_INVALID_TOKEN;
-        }
-#endif
-        return 1U;    /* Success */
-    } else {
-        return 0U;    /* Error */
-    }
-#else /* TFM_NS_MANAGE_NSID */
-    return 1U;    /* Success */
-#endif /* TFM_NS_MANAGE_NSID */
-}
-
-/*
- * Load secure context (called on RTOS thread context switch)
- * Param: TZ_MemoryId_t (token if TFM_NS_MANAGE_NSID is enabled)
- * Return execution status (1: success, 0: error)
- */
-uint32_t TZ_LoadContext_S(TZ_MemoryId_t id)
-{
-#ifdef TFM_NS_MANAGE_NSID
-    int32_t nsid;
-    uint32_t token;
-
-    /* TZ_MemoryId_t is used to record token */
-    token = (uint32_t)id;
-
-    nsid = nsid_mgr_query_nsid(token);
-
-    if (nsid >= TFM_INVALID_NSID_MIN) {
-        return 0U;    /* Error */
-    }
-
-    if (tfm_nsce_load_ctx(token, nsid) == TFM_NS_CLIENT_ERR_SUCCESS) {
-#ifdef TEST_NS_MANAGE_NSID
-        current_active_token = token;
-#endif
-        return 1U;    /* Success */
-    } else {
-        return 0U;    /* Error */
-    }
-#else /* TFM_NS_MANAGE_NSID */
-    return 1U;    /* Success */
-#endif /* TFM_NS_MANAGE_NSID */
-}
-
-/*
- * Store secure context (called on RTOS thread context switch)
- * Param: TZ_MemoryId_t (token if TFM_NS_MANAGE_NSID is enabled)
- * Return execution status (1: success, 0: error)
- */
-uint32_t TZ_StoreContext_S(TZ_MemoryId_t id)
-{
-#ifdef TFM_NS_MANAGE_NSID
-    uint32_t token;
-
-    /* TZ_MemoryId_t is used to record token */
-    token = (uint32_t)id;
-
-    if (tfm_nsce_save_ctx(token) == TFM_NS_CLIENT_ERR_SUCCESS) {
-#ifdef TEST_NS_MANAGE_NSID
-        if (current_active_token != TFM_NS_CLIENT_INVALID_TOKEN) {
-            current_active_token = TFM_NS_CLIENT_INVALID_TOKEN;
-        }
-#endif
-        return 1U;    /* Success */
-    } else {
-        return 0U;    /* Error */
-    }
-#else /* TFM_NS_MANAGE_NSID */
-    return 1U;    /* Success */
-#endif /* TFM_NS_MANAGE_NSID */
-}
diff --git a/app_broker/nsid_manager/tz_stub.c b/app_broker/nsid_manager/tz_stub.c
deleted file mode 100644
index 306112d..0000000
--- a/app_broker/nsid_manager/tz_stub.c
+++ /dev/null
@@ -1,66 +0,0 @@
-/*
- * Copyright (c) 2023, Arm Limited. All rights reserved.
- *
- * SPDX-License-Identifier: BSD-3-Clause
- *
- */
-
-/*
- * This is a stub functoins for TF-M shim layer of TZ APIs
- *
- */
-
-#include "tz_context.h"
-/*
- * TF-M shim layer of the CMSIS TZ RTOS thread context management API
- */
-
-/*
- * Initialize token-nsid map table in tfm nsid manager
- * Return execution status (1: success, 0: error)
- */
-uint32_t TZ_InitContextSystem_S(void)
-{
-    return 1U;    /* Success */
-}
-
-/*
- * Allocate context memory from Secure side
- * Param: TZ_ModuleId_t (NSID if TFM_NS_MANAGE_NSID is enabled)
- * Return token if TFM_NS_MANAGE_NSID is enabled
- * Return 0 if no memory available or internal error
- */
-TZ_MemoryId_t TZ_AllocModuleContext_S(TZ_ModuleId_t module)
-{
-    return 1U;    /* Success */
-}
-
-/*
- * Free context memory that was previously allocated with TZ_AllocModuleContext_S
- * Param: TZ_MemoryId_t (token if TFM_NS_MANAGE_NSID is enabled)
- * Return execution status (1: success, 0: error)
- */
-uint32_t TZ_FreeModuleContext_S(TZ_MemoryId_t id)
-{
-    return 1U;    /* Success */
-}
-
-/*
- * Load secure context (called on RTOS thread context switch)
- * Param: TZ_MemoryId_t (token if TFM_NS_MANAGE_NSID is enabled)
- * Return execution status (1: success, 0: error)
- */
-uint32_t TZ_LoadContext_S(TZ_MemoryId_t id)
-{
-    return 1U;    /* Success */
-}
-
-/*
- * Store secure context (called on RTOS thread context switch)
- * Param: TZ_MemoryId_t (token if TFM_NS_MANAGE_NSID is enabled)
- * Return execution status (1: success, 0: error)
- */
-uint32_t TZ_StoreContext_S(TZ_MemoryId_t id)
-{
-    return 1U;    /* Success */
-}
diff --git a/app_broker/os_wrapper/CMakeLists.txt b/app_broker/os_wrapper/CMakeLists.txt
deleted file mode 100644
index d7f043e..0000000
--- a/app_broker/os_wrapper/CMakeLists.txt
+++ /dev/null
@@ -1,25 +0,0 @@
-#-------------------------------------------------------------------------------
-# Copyright (c) 2020-2023, Arm Limited. All rights reserved.
-#
-# SPDX-License-Identifier: BSD-3-Clause
-#
-#-------------------------------------------------------------------------------
-
-cmake_minimum_required(VERSION 3.13)
-
-add_library(os_wrapper STATIC)
-
-target_sources(os_wrapper
-    PUBLIC
-        os_wrapper_cmsis_rtos_v2.c
-)
-
-target_include_directories(os_wrapper PUBLIC .)
-
-target_link_libraries(os_wrapper
-    PRIVATE
-        psa_interface
-    PUBLIC
-        tfm_nsid_manager
-        RTX_OS
-)
diff --git a/app_broker/os_wrapper/delay.h b/app_broker/os_wrapper/delay.h
deleted file mode 100644
index 7e73459..0000000
--- a/app_broker/os_wrapper/delay.h
+++ /dev/null
@@ -1,31 +0,0 @@
-/*
- * Copyright (c) 2022, Arm Limited. All rights reserved.
- * Copyright (c) 2023 Cypress Semiconductor Corporation (an Infineon company)
- * or an affiliate of Cypress Semiconductor Corporation. All rights reserved.
- *
- * SPDX-License-Identifier: BSD-3-Clause
- *
- */
-
-#ifndef __OS_WRAPPER_DELAY_H__
-#define __OS_WRAPPER_DELAY_H__
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#include "os_wrapper/common.h"
-
-/**
- * \brief Waits for a time period specified in kernel ticks.
- *
- * \return \ref OS_WRAPPER_SUCCESS if the time delay is executed, or
- *         \ref OS_WRAPPER_ERROR in case of error
- */
-int32_t os_wrapper_delay(uint32_t ticks);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* __OS_WRAPPER_DELAY_H__ */
diff --git a/app_broker/os_wrapper/msg_queue.h b/app_broker/os_wrapper/msg_queue.h
deleted file mode 100644
index 4c9e362..0000000
--- a/app_broker/os_wrapper/msg_queue.h
+++ /dev/null
@@ -1,72 +0,0 @@
-/*
- * Copyright (c) 2020-2021, Arm Limited. All rights reserved.
- * Copyright (c) 2023 Cypress Semiconductor Corporation (an Infineon company)
- * or an affiliate of Cypress Semiconductor Corporation. All rights reserved.
- *
- * SPDX-License-Identifier: BSD-3-Clause
- *
- */
-
-#ifndef __OS_WRAPPER_MSG_QUEUE_H__
-#define __OS_WRAPPER_MSG_QUEUE_H__
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#include <stddef.h>
-
-#include "os_wrapper/common.h"
-
-/**
- * \brief Create and initialize a message queue
- *
- * \param[in] msg_size        The maximum message size in bytes
- * \param[in] msg_count       The maximum number of messages in queue
- *
- * \return Returns handle of the message queue created, or NULL in case of error
- */
-void *os_wrapper_msg_queue_create(size_t msg_size, uint8_t msg_count);
-
-/**
- * \brief Send a message via message queue
- *
- * \param[in] mq_handle       The handle of message queue
- * \param[in] msg_ptr         The pointer to the message to be sent
- *
- * \return \ref OS_WRAPPER_SUCCESS if the message is successfully sent, or
- *         \ref OS_WRAPPER_ERROR in case of error
- *
- * \note The message size must be the same as the value set in
- *       \ref os_wrapper_msg_queue_create.
- *
- * \note Time out value is not specified here. Whether the function is blocked
- *       or returns instantly depends on the actual implementation and usage
- *       scenario.
- */
-int32_t os_wrapper_msg_queue_send(void *mq_handle,
-                                  const void *msg_ptr);
-
-/**
- * \brief Receive a message from message queue
- *
- * \param[in] mq_handle       The handle of message queue
- * \param[in] msg_ptr         The pointer to buffer for message to be received
- *
- * \return \ref OS_WRAPPER_SUCCESS if the message is successfully received, or
- *         \ref OS_WRAPPER_ERROR in case of error
- *
- * \note The message size is the same as the value set in
- *       \ref os_wrapper_msg_queue_create.
- *
- * \note The function should be blocked until a message is received from message
- *       queue, unless an error occurs.
- */
-int32_t os_wrapper_msg_queue_receive(void *mq_handle,
-                                     void *msg_ptr);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* __OS_WRAPPER_MSG_QUEUE_H__ */
diff --git a/app_broker/os_wrapper/semaphore.h b/app_broker/os_wrapper/semaphore.h
deleted file mode 100644
index ce5aa04..0000000
--- a/app_broker/os_wrapper/semaphore.h
+++ /dev/null
@@ -1,66 +0,0 @@
-/*
- * Copyright (c) 2017-2020, Arm Limited. All rights reserved.
- * Copyright (c) 2023 Cypress Semiconductor Corporation (an Infineon company)
- * or an affiliate of Cypress Semiconductor Corporation. All rights reserved.
- *
- * SPDX-License-Identifier: BSD-3-Clause
- *
- */
-
-#ifndef __OS_WRAPPER_SEMAPHORE_H__
-#define __OS_WRAPPER_SEMAPHORE_H__
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#include "os_wrapper/common.h"
-
-/**
- * \brief Creates a new semaphore
- *
- * \param[in] max_count       Highest count of the semaphore
- * \param[in] initial_count   Starting count of the available semaphore
- * \param[in] name            Name of the semaphore
- *
- * \return Returns handle of the semaphore created, or NULL in case of error
- */
-void *os_wrapper_semaphore_create(uint32_t max_count, uint32_t initial_count,
-                                  const char *name);
-
-/**
- * \brief Acquires the semaphore
- *
- * \param[in] hanlde  Semaphore handle
- * \param[in] timeout Timeout value
- *
- * \return \ref OS_WRAPPER_SUCCESS in case of successful acquision, or
- *         \ref OS_WRAPPER_ERROR in case of error
- */
-uint32_t os_wrapper_semaphore_acquire(void *handle, uint32_t timeout);
-
-/**
- * \brief Releases the semaphore
- *
- * \param[in] hanlde Semaphore handle
- *
- * \return \ref OS_WRAPPER_SUCCESS in case of successful release, or
- *         \ref OS_WRAPPER_ERROR in case of error
- */
-uint32_t os_wrapper_semaphore_release(void *handle);
-
-/**
- * \brief Deletes the semaphore
- *
- * \param[in] handle Semaphore handle
- *
- * \return \ref OS_WRAPPER_SUCCESS in case of successful release, or
- *         \ref OS_WRAPPER_ERROR in case of error
- */
-uint32_t os_wrapper_semaphore_delete(void *handle);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* __OS_WRAPPER_SEMAPHORE_H__ */
diff --git a/app_broker/os_wrapper/thread.h b/app_broker/os_wrapper/thread.h
deleted file mode 100644
index 83633a6..0000000
--- a/app_broker/os_wrapper/thread.h
+++ /dev/null
@@ -1,105 +0,0 @@
-/*
- * Copyright (c) 2017-2020, Arm Limited. All rights reserved.
- * Copyright (c) 2023 Cypress Semiconductor Corporation (an Infineon company)
- * or an affiliate of Cypress Semiconductor Corporation. All rights reserved.
- *
- * SPDX-License-Identifier: BSD-3-Clause
- *
- */
-
-#ifndef __OS_WRAPPER_THREAD_H__
-#define __OS_WRAPPER_THREAD_H__
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#include "os_wrapper/common.h"
-
-/* prototype for the thread entry function */
-typedef void (*os_wrapper_thread_func) (void *argument);
-
-/**
- * \brief Creates a new thread
- *
- * \param[in] name        Name of the thread
- * \param[in] stack_size  Size of stack to be allocated for this thread. It can
- *                        be \ref OS_WRAPPER_DEFAULT_STACK_SIZE to use the
- *                        default value provided by the underlying RTOS
- * \param[in] func        Pointer to the function invoked by thread
- * \param[in] arg         Argument to pass to the function invoked by thread
- * \param[in] priority    Initial thread priority
- *
- * \return Returns the thread handle created, or NULL in case of error
- */
-void *os_wrapper_thread_new(const char *name, int32_t stack_size,
-                            os_wrapper_thread_func func, void *arg,
-                            uint32_t priority);
-/**
- * \brief Gets current thread handle
- *
- * \return Returns the thread handle, or NULL in case of error
- */
-void *os_wrapper_thread_get_handle(void);
-
-/**
- * \brief Gets thread priority
- *
- * \param[in]  handle   Thread handle
- * \param[out] priority The priority of the thread
- *
- * \return Returns \ref OS_WRAPPER_SUCCESS on success, or \ref OS_WRAPPER_ERROR
- *                 in case of error
- */
-uint32_t os_wrapper_thread_get_priority(void *handle, uint32_t *priority);
-
-/**
- * \brief Exits the calling thread
- */
-void os_wrapper_thread_exit(void);
-
-/**
- * \brief Set the event flags for synchronizing a thread specified by handle.
- *
- * \note This function may not be allowed to be called from Interrupt Service
- *       Routines.
- *
- * \param[in] handle    Thread handle to be notified
- * \param[in] flags     Event flags value
- *
- * \return Returns \ref OS_WRAPPER_SUCCESS on success, or \ref OS_WRAPPER_ERROR
- *         in case of error
- */
-uint32_t os_wrapper_thread_set_flag(void *handle, uint32_t flags);
-
-/**
- * \brief Set the event flags in an interrupt handler for synchronizing a thread
- *        specified by handle.
- *
- * \param[in] handle    Thread handle to be notified
- * \param[in] flags     Event flags value
- *
- * \return Returns \ref OS_WRAPPER_SUCCESS on success, or \ref OS_WRAPPER_ERROR
- *         in case of error
- */
-uint32_t os_wrapper_thread_set_flag_isr(void *handle, uint32_t flags);
-
-/**
- * \brief Wait for the event flags for synchronizing threads.
- *
- * \note This function may not be allowed to be called from Interrupt Service
- *       Routines.
- *
- * \param[in] flags     Specify the flags to wait for
- * \param[in] timeout   Timeout value
- *
- * \return Returns \ref OS_WRAPPER_SUCCESS on success, or \ref OS_WRAPPER_ERROR
- *         in case of error
- */
-uint32_t os_wrapper_thread_wait_flag(uint32_t flags, uint32_t timeout);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* __OS_WRAPPER_THREAD_H__ */
diff --git a/app_broker/os_wrapper/tick.h b/app_broker/os_wrapper/tick.h
deleted file mode 100644
index de7d2f5..0000000
--- a/app_broker/os_wrapper/tick.h
+++ /dev/null
@@ -1,30 +0,0 @@
-/*
- * Copyright (c) 2020, Arm Limited. All rights reserved.
- * Copyright (c) 2023 Cypress Semiconductor Corporation (an Infineon company)
- * or an affiliate of Cypress Semiconductor Corporation. All rights reserved.
- *
- * SPDX-License-Identifier: BSD-3-Clause
- *
- */
-
-#ifndef __OS_WRAPPER_TICK_H__
-#define __OS_WRAPPER_TICK_H__
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#include "os_wrapper/common.h"
-
-/**
- * \brief Return RTOS current tick count
- *
- * \return The current tick count
- */
-uint32_t os_wrapper_get_tick(void);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* __OS_WRAPPER_TICK_H__ */
diff --git a/app_broker/os_wrapper/os_wrapper_cmsis_rtos_v2.c b/app_broker/os_wrapper_cmsis_rtos_v2.c
similarity index 100%
rename from app_broker/os_wrapper/os_wrapper_cmsis_rtos_v2.c
rename to app_broker/os_wrapper_cmsis_rtos_v2.c
diff --git a/app_broker/test_app.h b/app_broker/test_app.h
index d60827c..35728ba 100644
--- a/app_broker/test_app.h
+++ b/app_broker/test_app.h
@@ -8,6 +8,8 @@
 #ifndef __TFM_TEST_APP_H__
 #define __TFM_TEST_APP_H__
 
+#include <stdint.h>
+
 #ifdef __cplusplus
 extern "C" {
 #endif
diff --git a/app_broker/nsid_manager/tfm_nsid_map_table.c b/app_broker/tfm_nsid_map_table.c
similarity index 100%
rename from app_broker/nsid_manager/tfm_nsid_map_table.c
rename to app_broker/tfm_nsid_map_table.c
diff --git a/app_broker/nsid_manager/tfm_nsid_map_table.h b/app_broker/tfm_nsid_map_table.h
similarity index 100%
rename from app_broker/nsid_manager/tfm_nsid_map_table.h
rename to app_broker/tfm_nsid_map_table.h