/*!
@page middleware_log Middleware Change Log

@section multicore Multicore SDK
  The current version of Multicore SDK is 2.9.0.
  - 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

*/
