/*!
@page middleware_log Middleware Change Log

@section multicore Multicore SDK
  The current version of Multicore SDK is 2.12.0.
  - 2.12.0
    - Multicore SDK component versions:
      - embedded Remote Procedure Call (eRPC) v1.9.1
      - eRPC generator (erpcgen) v.1.9.1
      - Multicore Manager (MCMgr) v4.1.2
      - RPMsg-Lite v4.0.0
    - New features:
      - eRPC: Construct the USB CDC transport, rather than a client, GitHub PR #220.
      - eRPC: Fix premature import of package, causing failure when attempting installation of Python library in a clean environment, GitHub PR #38, #226.
      - eRPC: Improve python detection in make, GitHub PR #225.
      - eRPC: Fix several warnings with deprecated call in pytest, GitHub PR #227.
      - eRPC: Fix freeing union members when only default need be freed, GitHub PR #228.
      - eRPC: Fix making test under Linux, GitHub PR #229.
      - eRPC: Assert costumizing, GitHub PR #148.
      - eRPC: Fix corrupt clientList bug in TransportArbitrator, GitHub PR #199.
      - eRPC: Fix build issue when invoking g++ with -Wno-error=free-nonheap-object, GitHub PR #233.
      - eRPC: Fix inout cases, GitHub PR #237.
      - eRPC: Remove ERPC_PRE_POST_ACTION dependency on return type, GitHub PR #238.
      - eRPC: Adding NULL to ptr when codec function failed, fixing memcpy when fail is present during deserialization, GitHub PR #253.
      - eRPC: MessageBuffer usage improvement, GitHub PR #258.
      - eRPC: Get rid for serial and enum34 dependency (enum34 is in python3 since 3.4 (from 2014)), GitHub PR #247.
      - eRPC: Several MISRA violations addressed.
      - eRPC: Fix timeout for Freertos semaphore, GitHub PR #251.
      - eRPC: Use of rpmsg_lite_wait_for_link_up() in rpmsg_lite based transports, GitHub PR #223.
      - eRPC: Fix codec nullptr dereferencing, GitHub PR #264.
      - erpcgen: Fix two syntax errors in erpcgen Python output related to non-encapsulated unions, improved test for union, GitHub PR #206, #224.
      - erpcgen: Fix serialization of list/binary types, GitHub PR #240.
      - erpcgen: Fix empty list parsing, GitHub PR #72.
      - erpcgen: Fix templates for malloc errors, GitHub PR #110.
      - erpcgen: Get rid of encapsulated union declarations in global scale, improve enum usage in unions, GitHub PR #249, #250.
      - erpcgen: Fix compile error:UniqueIdChecker.cpp:156:104:'sort' was not declared, GitHub PR #265.
      - MCMgr: Update mcmgr_stop_core_internal() implementations to set core state to kMCMGR_ResetCoreState.
      - RPMsg-Lite: Introduce new rpmsg_lite_wait_for_link_up() API function - this allows to avoid using busy loops in rtos environments, GitHub PR #21.
      - RPMsg-Lite: Adjust rpmsg_lite_is_link_up() to return RL_TRUE/RL_FALSE.
  - 2.11.1
    - Multicore SDK component versions:
      - embedded Remote Procedure Call (eRPC) v1.9.0
      - eRPC generator (erpcgen) v.1.9.0
      - Multicore Manager (MCMgr) v4.1.1
      - RPMsg-Lite v3.2.1
    - New features:
      - RPMsg-Lite: Add support for custom shared memory arangement per the RPMsg_Lite instance.
  - 2.11.0
    - Multicore SDK component versions:
      - embedded Remote Procedure Call (eRPC) v1.9.0
      - eRPC generator (erpcgen) v.1.9.0
      - Multicore Manager (MCMgr) v4.1.1
      - RPMsg-Lite v3.2.0
    - New features:
      - eRPC: Improving template usage, GitHub PR #153.
      - eRPC: run_clang_format.py cleanup, GitHub PR #177.
      - eRPC: Build TCP transport setup code into liberpc, GitHub PR #179.
      - eRPC: Fix multiple definitions of g_client error, GitHub PR #180.
      - eRPC: Fix memset past end of buffer in erpc_setup_mbf_static.cpp, GitHub PR #184.
      - eRPC: Fix deprecated error with newer pytest version, GitHub PR #203.
      - eRPC: Allow used LIBUSBSIO device index being specified from the Python command line argument.
      - eRPC, erpcgen: Static allocation support and usage of rpmsg static FreeRTOSs related APi, GitHub PR #168, #169.
      - erpcgen: Remove redundant module imports in erpcgen, GitHub PR #196.
      - RPMsg-Lite: Improve static allocations - allow OS-specific objects being allocated statically, GitHub PR #14.
      - RPMsg-Lite: Minor Misra and typo corrections, GitHub PR #19, #20.
  - 2.10.0
    - Multicore SDK component versions:
      - embedded Remote Procedure Call (eRPC) v1.8.1
      - eRPC generator (erpcgen) v.1.8.1
      - Multicore Manager (MCMgr) v4.1.1
      - RPMsg-Lite v3.1.2
    - New features:
      - eRPC: Fix misra erpc c, GitHub PR #158.
      - eRPC: Allow conditional compilation of message_loggers and pre_post_action.
      - eRPC: New i2c_slave_transport trasnport introduced.
      - eRPC: (D)SPI slave transports updated to avoid busy loops in rtos environments.
      - erpcgen: Re-implement EnumMember::hasValue(), GitHub PR #159.
      - erpcgen: Fixing several misra issues in shim code, erpcgen and unit tests updated, GitHub PR #156.
      - erpcgen: Fix bison file, GitHub PR #156. 
      - RPMsg-Lite: Fixed incorrect description of the rpmsg_lite_get_endpoint_from_addr function.
      - RPMsg-Lite: Updated RL_BUFFER_COUNT documentation.
      - RPMsg-Lite: env_print macro adjusted to address MISRA 21.6 rule in MCUXpressoSDK projects.
  - 2.9.0
    - Multicore SDK component versions:
      - embedded Remote Procedure Call (eRPC) v1.8.0
      - eRPC generator (erpcgen) v.1.8.0
      - Multicore Manager (MCMgr) v4.1.1
      - RPMsg-Lite v3.1.1
    - New features:
      - eRPC: Support win32 thread, GitHub PR #108.
      - eRPC: Add mbed support for malloc() and free(), GitHub PR #92.
      - eRPC: Update makefile.
      - eRPC: Fixed warnings and error with using MessageLoggers, GitHub PR #127.
      - eRPC: Extend error msg for python server service handle function, GitHub PR #132.
      - eRPC: Update CMSIS UART transport layer to avoid busy loops in rtos environments, introduce semaphores.  
      - eRPC: Introduced pre and post callbacks for eRPC call, GitHub PR #131.
      - eRPC: Introduced new USB CDC transport.
      - eRPC: Introduced new Linux spidev-based transport.
      - eRPC: SPI transport update to allow usage without handshaking GPIO. 
      - eRPC: Native _WIN32 erpc serial transport and threading. 
      - eRPC: Arbitrator deadlock fix, TCP transport updated, TCP setup functions introduced, GitHub PR #121.
      - eRPC: Update of matrix_multiply.py example: Add --serial and --baud argument, GitHub PR #137.
      - eRPC: Added formatting extension for VSC, GitHub PR #134.
      - eRPC: Update of .clang-format, GitHub PR #140.
      - eRPC: Update of erpc_framed_transport.cpp: return error if received message has zero length, GitHub PR #141.
      - eRPC, erpcgen: Fixed error messages produced by -Wall -Wextra -Wshadow -pedantic-errors compiler flags, GitHub PR #136, #139.
      - eRPC, erpcgen: Core re-formatted using Clang version 10.
      - erpcgen: Enable deallocation in server shim code when callback/function pointer used as out parameter in IDL.
      - erpcgen: Removed '$' character from generated symbol name in '_$union' suffix, GitHub PR #103.
      - erpcgen: Resolved mismatch between C++ and Python for callback index type, GitHub PR #111.
      - erpcgen: Python generator improvements, GitHub PR #100, #118.
      - erpcgen: Fixed error messages produced by -Wall -Wextra -Wshadow -pedantic-errors compiler flags, GitHub PR #136.
      - erpcgen: Introduce ustring type for unsigned char and force cast to char*, GitHub PR #125. 
      - RPMsg-Lite: Introduced RL_ALLOW_CONSUMED_BUFFERS_NOTIFICATION config option to allow opposite side notification sending 
        each time received buffers are consumed and put into the queue of available buffers.
      - RPMsg-Lite: Added environment layers for Threadx.
  - 2.8.0
    - Multicore SDK component versions:
      - embedded Remote Procedure Call (eRPC) v1.7.4
      - eRPC generator (erpcgen) v.1.7.4
      - Multicore Manager (MCMgr) v4.1.0
      - RPMsg-Lite v3.1.0
    - New features:
      - eRPC: Unit test code updated to handle service add and remove operations.
      - eRPC: Several MISRA issues in rpmsg-based transports addressed.
      - eRPC: Support MU transport unit testing.
      - eRPC: Adding mbed os support.
      - eRPC: Fixed Linux/TCP acceptance tests in release target.
      - eRPC: Minor documentation updates, code formatting. 
      - erpcgen: Whitespace removed from C common header template.
      - RPMsg-Lite: MISRA C-2012 violations fixed (7.4).
      - RPMsg-Lite: Fix missing lock in rpmsg_lite_rx_callback() for QNX env.
      - RPMsg-Lite: Correction of rpmsg_lite_instance structure members description.
      - RPMsg-Lite: Address -Waddress-of-packed-member warnings in GCC9.
      - RPMsg-Lite: Clang update to v10.0.0, code re-formatted.
  - 2.7.0
    - Multicore SDK component versions:
      - embedded Remote Procedure Call (eRPC) v1.7.3
      - eRPC generator (erpcgen) v.1.7.3
      - Multicore Manager (MCMgr) v4.1.0
      - RPMsg-Lite v3.0.0
    - New features:
      - eRPC: Improved the test_callbacks logic to be more understandable and to allow requested callback execution on the server side.
      - eRPC: TransportArbitrator::prepareClientReceive modified to avoid incorrect return value type.
      - eRPC: The ClientManager and the ArbitratedClientManager updated to avoid performing client requests when the previous serialization phase fails.
      - erpcgen: Generate the shim code for destroy of statically allocated services.
      - MCMgr: Code adjustments to address MISRA C-2012 Rules
      - RPMsg-Lite: MISRA C-2012 violations fixed, incl. data types consolidation.
      - RPMsg-Lite: Code formatted
  - 2.6.0
    - Multicore SDK component versions:
      - embedded Remote Procedure Call (eRPC) v1.7.2
      - eRPC generator (erpcgen) v.1.7.2
      - Multicore Manager (MCMgr) v4.0.3
      - RPMsg-Lite v2.2.0
    - New features:
      - eRPC: Improved support of const types.
      - eRPC: Fixed Mac build.
      - eRPC: Fixed serializing python list.
      - eRPC: Documentation update.
      - eRPC: Add missing doxygen comments for transports.
      - RPMsg-Lite: Added configuration macro RL_DEBUG_CHECK_BUFFERS.
      - RPMsg-Lite: Several MISRA violations fixed.
      - RPMsg-Lite: Added environment layers for QNX and Zephyr.
      - RPMsg-Lite: Allow environment context required for some environments (controlled by the RL_USE_ENVIRONMENT_CONTEXT configuration macro). 
      - RPMsg-Lite: Data types consolidation. 
      - MCMgr: Documentation updated to describe handshaking in a graphic form.
      - MCMgr: Minor code adjustments based on static analysis tool findings
  - 2.5.0
    - Multicore SDK component versions:
      - embedded Remote Procedure Call (eRPC) v1.7.1
      - eRPC generator (erpcgen) v.1.7.1
      - Multicore Manager (MCMgr) v4.0.2
      - RPMsg-Lite v2.0.2
    - New features:
      - RPMsg-Lite, MCMgr: Align porting layers to the updated MCUXpressoSDK feature files.
      - eRPC: Fixed semaphore in static message buffer factory.
      - erpcgen: Fixed MU received error flag.
      - erpcgen: Fixed tcp transport.
  - 2.4.0
    - Multicore SDK component versions:
      - embedded Remote Procedure Call (eRPC) v1.7.0
      - eRPC generator (erpcgen) v.1.7.0
      - Multicore Manager (MCMgr) v4.0.1
      - RPMsg-Lite v2.0.1
    - New features:
      - eRPC: Improved code size of generated code.
      - eRPC: Generating crc value is optional.
      - eRPC: Fixed CMSIS Uart driver. Removed dependency on KSDK.
      - eRPC: List names are based on their types. Names are more deterministic.
      - eRPC: Service objects are as a default created as global static objects.
      - eRPC: Added missing doxygen comments.
      - eRPC: Forbid users use reserved words.
      - eRPC: Removed outByref for function parameters.
      - eRPC: Added support for 64bit numbers.
      - eRPC: Added support of program language specific annotations.
      - eRPC: Optimized code style of callback functions.
      - RPMsg-Lite: New API rpmsg_queue_get_current_size()
      - RPMsg-Lite: Fixed bug in interrupt handling for lpc5411x, lpc5410x
      - RPMsg-Lite: Code adjustments based on static analysis tool findings

  - 2.3.1
    - Multicore SDK component versions:
      - embedded Remote Procedure Call (eRPC) v1.6.0
      - eRPC generator (erpcgen) v.1.6.0
      - Multicore Manager (MCMgr) v4.0.0
      - RPMsg-Lite v1.2.0
    - New features:
      - eRPC: Improved code size of generated code.
      - eRPC: Improved eRPC nested calls.
      - eRPC: Improved eRPC list length variable serialization.
      - eRPC: Added \@nullable support for scalar types.
      - MCMgr: Added new MCMGR_TriggerEventForce() API.

  - 2.3.0
    - Multicore SDK component versions:
      - embedded Remote Procedure Call (eRPC) v1.5.0
      - eRPC generator (erpcgen) v.1.5.0
      - Multicore Manager (MCMgr) v3.0.0
      - RPMsg-Lite v1.2.0
    - New features:
      - eRPC: Added support for unions type non-wrapped by structure.
      - eRPC: Added callbacks support.
      - eRPC: Added support \@external annotation for functions.
      - eRPC: Added support \@name annotation.
      - eRPC: Added Messaging Unit transport layer.
      - eRPC: Added RPMSG Lite RTOS TTY transport layer.
      - eRPC: Added version verification and IDL version verification between eRPC code and eRPC generated shim code.
      - eRPC: Added support of shared memory pointer.
      - eRPC: Added annotation to forbid generating const keyword for function parameters.
      - eRPC: Added python matrix multiply example.
      - eRPC: Added nested call support.
      - eRPC: Added struct member "byref" option support.
      - eRPC: Added support of forward declarations of structures
      - eRPC: Added Python RPMsg Multiendpoint kernel module support
      - eRPC: Added eRPC sniffer tool
      - MCMgr: Unused API removed
      - MCMgr: Added the ability for remote core monitoring and event handling
      - RPMsg-Lite: Several source files renamed to avoid conflicts with other middleware sw components
      - RPMsg-Lite: Added the ability to use Multicore Manager (MCMGR) as the IPC interrupts router

  - 2.2.0
    - Multicore SDK component versions:
      - embedded Remote Procedure Call (eRPC) v1.4.0
      - eRPC generator (erpcgen) v.1.4.0
      - Multicore Manager (MCMgr) v2.0.1
      - RPMsg-Lite v1.1.0
    - New features:
      - eRPC: win_flex_bison.zip for windows updated.
      - eRPC: Use one codec (instead of inCodec outCodec).
      - eRPC: New RPMsg-Lite Zero Copy (RPMsgZC) transport layer.
      - MCMgr: code updated to be Misra compliant.
      - RPMsg-Lite: Added macros for packed structures (compiler.h).
      - RPMsg-Lite: Improved interrupt handling in platform layer.
      - RPMsg-Lite: Changed RL_BUFFER_SIZE definition.
      - RPMsg-Lite: Fix of double initialization of vring shared data structure.
      - RPMsg-Lite: Support for the multi-instance.

  - 2.1.0
    - Multicore SDK component versions:
      - embedded Remote Procedure Call (eRPC) v1.3.0
      - eRPC generator (erpcgen) v.1.3.0
    - New features:
      - eRPC: New annotation types introduced (\@length, \@max_length, ...).
      - eRPC: Support for running both erpc client and erpc server on one side.
      - eRPC: New transport layers for (LP)UART, (D)SPI.
      - eRPC: Error handling support.

  - 2.0.0
    - Multicore SDK component versions:
      - embedded Remote Procedure Call (eRPC) v1.2.0
      - eRPC generator (erpcgen) v.1.2.0
      - Multicore Manager (MCMgr) v2.0.0
      - RPMsg-Lite v1.0.0
    - New features:
      - Multicore SDK support for lpcxpresso54114 board added.
      - RPMsg component of the Open-AMP framework re-implemented and the RPMsg-Lite version introduced.
      - eRPC source directory organization changed.
      - Many eRPC improvements.

  - 1.1.0
    - Multicore SDK component versions:
      - embedded Remote Procedure Call (eRPC) v1.1.0
      - Multicore Manager (MCMgr) v1.1.0
      - Open-AMP / RPMsg based on SHA1 ID 44b5f3c0a6458f3cf80 rev01
    - New features:
      - Multicore SDK 1.1.0 ported to KSDK 2.0.0.
      - Python support added into eRPC.

  - 1.0.0
    - Multicore SDK component versions:
      - embedded Remote Procedure Call (eRPC) v1.0.0
      - Multicore Manager (MCMgr) v1.0.0
      - Open-AMP / RPMsg based on SHA1 ID 44b5f3c0a6458f3cf80 rev00

*/
