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

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