Changelog eRPC
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
Unreleased
Added
Fixed
Python code of the eRPC infrastructure was updated to match the proper python code style, add type annotations and improve readability.
1.14.0
Added
Added Cmake/Kconfig support.
Made java code jdk11 compliant, GitHub PR #432.
Added imxrt1186 support into mu transport layer.
erpcgen: Added assert for listType before usage, GitHub PR #406.
Fixed
eRPC: Sources reformatted.
erpc: Fixed typo in semaphore get (mutex -> semaphore), and write it can fail in case of timeout, GitHub PR #446.
erpc: Free the arbitrated client token from client manager, GitHub PR #444.
erpc: Fixed Makefile, install the erpc_simple_server header, GitHub PR #447.
erpc_python: Fixed possible AttributeError and OSError on calling TCPTransport.close(), GitHub PR #438.
Examples and tests consolidated.
1.13.0
Added
erpc: Add BSD-3 license to endianness agnostic files, GitHub PR #417.
eRPC: Add new Zephyr-related transports (zephyr_uart, zephyr_mbox).
eRPC: Add new Zephyr-related examples.
Fixed
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: Fix zephyr uart transport, GitHub PR #410.
erpc: UART ZEPHYR Transport stop to work after a few transactions when using USB-CDC resolved, GitHub PR #420.
Removed
eRPC,erpcgen: Remove cstbool library, GitHub PR #403.
1.12.0
Added
eRPC: Add dynamic/static option for transport init, GitHub PR #361.
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.
Fixed
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.
1.11.0
Fixed
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.
1.10.0
Fixed
eRPC: MU transport layer switched to blocking MU_SendMsg() API use.
1.10.0
Added
eRPC: Add TCP_NODELAY option to python, GitHub PR #298.
Fixed
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: 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.
1.9.1
Fixed
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.
1.9.0
Added
eRPC: Allow used LIBUSBSIO device index being specified from the Python command line argument.
Fixed
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, 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.
1.8.1
Added
eRPC: New i2c_slave_transport trasnport introduced.
Fixed
eRPC: Fix misra erpc c, GitHub PR #158.
eRPC: Allow conditional compilation of message_loggers and pre_post_action.
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.
1.8.0
Added
eRPC: Support win32 thread, GitHub PR #108.
eRPC: Add mbed support for malloc() and free(), GitHub PR #92.
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: Added formatting extension for VSC, GitHub PR #134.
erpcgen: Introduce ustring type for unsigned char and force cast to char*, GitHub PR #125.
Fixed
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: 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: 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.
1.7.4
Added
eRPC: Support MU transport unit testing.
eRPC: Adding mbed os support.
Fixed
eRPC: Unit test code updated to handle service add and remove operations.
eRPC: Several MISRA issues in rpmsg-based transports addressed.
eRPC: Fixed Linux/TCP acceptance tests in release target.
eRPC: Minor documentation updates, code formatting.
erpcgen: Whitespace removed from C common header template.
1.7.3
Fixed
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.
1.7.2
Added
eRPC: Add missing doxygen comments for transports.
Fixed
eRPC: Improved support of const types.
eRPC: Fixed Mac build.
eRPC: Fixed serializing python list.
eRPC: Documentation update.
1.7.1
Fixed
eRPC: Fixed semaphore in static message buffer factory.
erpcgen: Fixed MU received error flag.
erpcgen: Fixed tcp transport.
1.7.0
Added
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: Added support for 64bit numbers.
eRPC: Added support of program language specific annotations.
Fixed
eRPC: Improved code size of generated code.
eRPC: Generating crc value is optional.
eRPC: Fixed CMSIS Uart driver. Removed dependency on KSDK.
eRPC: Forbid users use reserved words.
eRPC: Removed outByref for function parameters.
eRPC: Optimized code style of callback functions.
1.6.0
Added
eRPC: Added @nullable support for scalar types.
Fixed
eRPC: Improved code size of generated code.
eRPC: Improved eRPC nested calls.
eRPC: Improved eRPC list length variable serialization.
1.5.0
Added
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
1.4.0
Added
eRPC: New RPMsg-Lite Zero Copy (RPMsgZC) transport layer.
Fixed
eRPC: win_flex_bison.zip for windows updated.
eRPC: Use one codec (instead of inCodec outCodec).
[1.3.0]
Added
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.
[1.2.0]
Added
eRPC source directory organization changed.
Many eRPC improvements.
[1.1.0]
Added
Multicore SDK 1.1.0 ported to KSDK 2.0.0.
[1.0.0]
Added
Initial Release