/*! @page middleware_log Middleware Change Log @section multicore Multicore SDK The current version of Multicore SDK is 2.16.0 - 2.16.0 - Multicore SDK component versions: - embedded Remote Procedure Call (eRPC) v1.13.0 - eRPC generator (erpcgen) v.1.13.0 - Multicore Manager (MCMgr) v4.1.5 - RPMsg-Lite v5.1.2 - New features: - eRPC,erpcgen: Fixing/improving markdown files, GitHub PR #395. - eRPC: Fix Python client TCPTransports not being able to close, GitHub PR #390. - eRPC,erpcgen: Align switch brackets, GitHub PR #396. - eRPC,erpcgen: Remove cstbool library, GitHub PR #403. - erpc: Fix zephyr uart transport, GitHub PR #410. - erpc: Add BSD-3 license to endianness agnostic files, GitHub PR #417. - erpc: UART ZEPHYR Transport stop to work after a few transactions when using USB-CDC resolved, GitHub PR #420. - eRPC: Add new Zephyr-related transports (zephyr_uart, zephyr_mbox). - eRPC: Add new Zephyr-related examples. - RPMsg-Lite: Zephyr-related changes. - RPMsg-Lite: Minor Misra corrections. - 2.15.0 - Multicore SDK component versions: - embedded Remote Procedure Call (eRPC) v1.12.0 - eRPC generator (erpcgen) v.1.12.0 - Multicore Manager (MCMgr) v4.1.5 - RPMsg-Lite v5.1.1 - New features: - eRPC: Add dynamic/static option for transport init, GitHub PR #361. - eRPC: Fix receive error value for spidev, GitHub PR #363. - eRPC: UartTransport::init adaptation to changed driver. - eRPC: Fix typo in assert, GitHub PR #371. - eRPC,erpcgen: Move enums to enum classes, GitHub PR #379. - eRPC: Fixed rpmsg tty transport to work with serial transport, GitHub PR #373. - eRPC,erpcgen: Winsock2 support, GitHub PR #365. - eRPC,erpcgen: Feature/support multiple clients, GitHub PR #271. - eRPC,erpcgen: Feature/buffer head - Framed transport header data stored in MessageBuffer, GitHub PR #378. - eRPC,erpcgen: Add experimental Java support. - MCMgr: Added notification into MCMGR_EarlyInit and mcmgr_early_init_internal functions to avoid using uninitialized data in their implementations. - RPMsg-Lite: Minor changes in platform and env. layers, minor test code updates. - 2.14.0 - Multicore SDK component versions: - embedded Remote Procedure Call (eRPC) v1.11.0 - eRPC generator (erpcgen) v.1.11.0 - Multicore Manager (MCMgr) v4.1.4 - RPMsg-Lite v5.1.0 - New features: - eRPC: Makefiles update, GitHub PR #301. - eRPC: Resolving warnings in Python, GitHub PR #325. - eRPC: Python3.8 is not ready for usage of typing.Any type, GitHub PR #325. - eRPC: Improved codec function to use reference instead of address, GitHub PR #324. - eRPC: Fix NULL check for pending client creation, GitHub PR #341. - eRPC: Replace sprintf with snprintf, GitHub PR #343. - eRPC: Use MU_SendMsg blocking call in MU transport. - eRPC: New LPSPI and LPI2C transport layers. - eRPC: Freeing static objects, GitHub PR #353. - eRPC: Fixed casting in deinit functions, GitHub PR #354. - eRPC: Align LIBUSBSIO.GetNumPorts API use with libusbsio python module v. 2.1.11. - erpcgen: Renamed temp variable to more generic one, GitHub PR #321. - erpcgen: Add check that string read is not more than max length, GitHub PR #328. - erpcgen: Move to g++ in pytest, GitHub PR #335. - erpcgen: Use build=release for make, GitHub PR #334. - erpcgen: Removed boost dependency, GitHub PR #346. - erpcgen: Mingw support, GitHub PR #344. - erpcgen: VS build update, GitHub PR #347. - erpcgen: Modified name for common types macro scope, GitHub PR #337. - erpcgen: Fixed memcpy for template, GitHub PR #352. - eRPC,erpcgen: Change default build target to release + adding artefacts, GitHub PR #334. - eRPC,erpcgen: Remove redundant includes, GitHub PR #338. - eRPC,erpcgen: Many minor code improvements, GitHub PR #323. - MCMgr: Avoid calling tx isr callbacks when respective Messaging Unit Transmit Interrupt Enable flag is not set in the CR/TCR register. - MCMgr: Messaging Unit RX and status registers are cleared after the initialization. - RPMsg-Lite: Resolved issues in ThreadX env. layer implementation. - RPMsg-Lite: Added aarch64 support. - RPMsg-Lite: Increased the queue size to (2 * RL_BUFFER_COUNT) to cover zero copy cases. - 2.13.0_imxrt1180a0 - Multicore SDK component versions: - embedded Remote Procedure Call (eRPC) v1.10.0 - eRPC generator (erpcgen) v.1.10.0 - Multicore Manager (MCMgr) v4.1.3 - RPMsg-Lite v5.0.0 - New features: - MCMgr, RPMsg-Lite: Added porting layers for imxrt1180. - MCMgr: mu_isr() updated to avoid calling tx isr callbacks when respective Transmit Interrupt Enable flag is not set in the CR/TCR register. - RPMsg-Lite, eRPC: RPMsg_Lite queue size adjusted. - eRPC: MU transport layer switched to blocking MU_SendMsg() API use. - 2.13.0 - Multicore SDK component versions: - embedded Remote Procedure Call (eRPC) v1.10.0 - eRPC generator (erpcgen) v.1.10.0 - Multicore Manager (MCMgr) v4.1.3 - RPMsg-Lite v5.0.0 - New features: - eRPC: MUTransport adaptation to new supported SoCs. - eRPC: Simplifying CI with installing dependencies using shell script, GitHub PR #267. - eRPC: Using event for waiting for sock connection in TCP python server, formatting python code, C specific includes, GitHub PR #269. - eRPC: Endianness agnostic update, GitHub PR #276. - eRPC: Assertion added for functions which are returning status on freeing memory, GitHub PR #277. - eRPC: Fixed closing arbitrator server in unit tests, GitHub PR #293. - eRPC: Makefile updated to reflect the correct header names, GitHub PR #295. - eRPC: Compare value length to used length() in reading data from message buffer, GitHub PR #297. - eRPC: Add TCP_NODELAY option to python, GitHub PR #298. - eRPC: Replace EXPECT_TRUE with EXPECT_EQ in unit tests, GitHub PR #318. - eRPC: Adapt rpmsg_lite based transports to changed rpmsg_lite_wait_for_link_up() API parameters. - eRPC, erpcgen: Better distuingish which file can and cannot by linked by C linker, GitHub PR #266. - eRPC, erpcgen: Stop checking if pointer is NULL before sending it to the erpc_free function, GitHub PR #275. - eRPC, erpcgen: Changed api to count with more interfaces, GitHub PR #304. - erpcgen: Check before reading from heap the buffer boundaries, GitHub PR #287. - erpcgen: Several fixes for tests and CI, GitHub PR #289. - erpcgen: Refactoring erpcgen code, GitHub PR #302. - erpcgen: Fixed assigning const value to enum, GitHub PR #309. - erpcgen: Enable runTesttest_enumErrorCode_allDirection, serialize enums as int32 instead of uint32. - MCMgr: mcmgr_mu_internal.c code adaptation to new supported SoCs. - RPMsg-Lite: Improveed debug check buffers implementation - instead of checking the pointer fits into shared memory check the presence in the VirtIO ring descriptors list. - RPMsg-Lite: Timeout parameter added to rpmsg_lite_wait_for_link_up API function. - RPMsg-Lite: VRING_SIZE is set based on number of used buffers now (as calculated in vring_init) - updated for all platforms that are not communicating to Linux rpmsg counterpart. - RPMsg-Lite: Fixed wrong RL_VRING_OVERHEAD macro comment in platform.h files. - RPMsg-Lite: Misra corrections. - 2.12.0_imx93 - 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.1 - New features: - RPMsg-Lite: Added porting layers for i.mx93 device. - 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 */