Add RT-Thread port and package integration#483
Open
wdfk-prog wants to merge 1 commit into
Open
Conversation
Add native RT-Thread threading, heap, assert, and UART transport support. Add RT-Thread Kconfig and SCons integration for selecting eRPC runtime components. Document RT-Thread package configuration and UART transport usage.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Pull request
Choose Correct
Describe the pull request
Add RT-Thread integration support for the eRPC C/C++ runtime.
This pull request introduces:
Native RT-Thread threading backend support.
RT-Thread heap allocation port using
rt_malloc()andrt_free().RT-Thread assertion mapping through
RT_ASSERT().RT-Thread UART framed transport based on the RT-Thread device API.
RT-Thread UART setup helper:
erpc_transport_rtthread_uart_init()erpc_transport_rtthread_uart_deinit()RT-Thread-specific
erpc_config.hfor package builds.RT-Thread
Kconfigoptions for selecting runtime roles, message buffer factory, feature macros, endianness settings, and transport components.RT-Thread
SConscriptbuild integration for selecting sources according tomenuconfig.Documentation updates in the top-level README and
rtthread/README.md.The integration is intended for MCU targets running RT-Thread, especially projects that use generated eRPC client/server stubs with UART as the transport.
To Reproduce
Without this change, eRPC does not provide a native RT-Thread package integration path.
Typical RT-Thread package usage requires:
Before this PR, the RT-Thread-specific backend, UART transport, configuration header, Kconfig options, and SCons source selection were not available.
Expected behavior
RT-Thread users can enable eRPC through
menuconfig, select the required client/server/runtime components, and build the eRPC runtime with SCons.For UART transport, users can initialize an RT-Thread UART device by name and baud rate, then use it as an eRPC framed transport for client or server communication.
The RT-Thread backend should provide:
Screenshots
N/A
Desktop (please complete the following information):
Steps you didn't forgot to do
Additional context
The RT-Thread UART transport owns the RT-Thread
rx_indicatecallback while active. Applications should not install another receive callback on the same UART device during the transport lifetime.The UART transport uses a fixed registry for mapping UART devices to active transport instances. The registry size is configurable through the RT-Thread package option.
This PR does not build the host-side
erpcgentool for MCU targets. It focuses on the eRPC runtime used by generated client/server stubs in RT-Thread projects.