cmvr_head/packages/erpc-1.14.0/mcux/Kconfig

290 lines
11 KiB
Plaintext
Raw Permalink Normal View History

2025-12-30 15:44:41 +08:00
#
# Copyright 2024-2025 NXP
#
# SPDX-License-Identifier: BSD-3-Clause
#
menuconfig MCUX_COMPONENT_middleware.multicore.erpc
bool "embedded Remote Procedure Call (eRPC)"
default n
help
This option will enable embedded Remote Procedure Call Middleware Component
config MCUX_COMPONENT_middleware.multicore.erpc.client
bool "Client"
default n
depends on MCUX_COMPONENT_middleware.multicore.erpc
help
This option enables eRPC Client implementation.
config MCUX_COMPONENT_middleware.multicore.erpc.server
bool "Server"
default n
depends on MCUX_COMPONENT_middleware.multicore.erpc
help
This option enables eRPC Server implementation.
config MCUX_COMPONENT_middleware.multicore.erpc.arbitrator
bool "Arbitrator"
default n
depends on MCUX_COMPONENT_middleware.multicore.erpc
help
This option enables eRPC Arbitrator implementation.
if MCUX_COMPONENT_middleware.multicore.erpc
choice MCUX_COMPONENT_middleware.multicore.erpc.port
prompt "Select eRPC memory allocation porting layer"
depends on MCUX_COMPONENT_middleware.multicore.erpc
config MCUX_COMPONENT_middleware.multicore.erpc.port_stdlib
tristate "stdlib memory allocation"
config MCUX_COMPONENT_middleware.multicore.erpc.port_freertos
tristate "FreeRTOS memory allocation"
endchoice
choice MCUX_COMPONENT_middleware.multicore.erpc.transport
prompt "Select eRPC transport layer"
depends on MCUX_COMPONENT_middleware.multicore.erpc.port_stdlib || MCUX_COMPONENT_middleware.multicore.erpc.port_freertos
config MCUX_COMPONENT_middleware.multicore.erpc.eRPC_mu_transport
tristate "MU"
config MCUX_COMPONENT_middleware.multicore.erpc.eRPC_rpmsg_lite_transport_master
tristate "RPMsg-Lite master"
config MCUX_COMPONENT_middleware.multicore.erpc.eRPC_rpmsg_lite_transport_remote
tristate "RPMsg-Lite remote"
config MCUX_COMPONENT_middleware.multicore.erpc.eRPC_rpmsg_lite_rtos_transport_master
tristate "RPMsg-Lite RTOS master"
config MCUX_COMPONENT_middleware.multicore.erpc.eRPC_rpmsg_lite_rtos_transport_remote
tristate "RPMsg-Lite RTOS remote"
config MCUX_COMPONENT_middleware.multicore.erpc.eRPC_rpmsg_tty_rtos_transport
tristate "RPMsg-Lite TTY RTOS"
config MCUX_COMPONENT_middleware.multicore.erpc.eRPC_uart_cmsis_transport
tristate "UART CMSIS"
config MCUX_COMPONENT_middleware.multicore.erpc.eRPC_dspi_master_transport
tristate "DSPI master"
config MCUX_COMPONENT_middleware.multicore.erpc.eRPC_dspi_slave_transport
tristate "DSPI slave"
config MCUX_COMPONENT_middleware.multicore.erpc.eRPC_spi_master_transport
tristate "SPI master"
config MCUX_COMPONENT_middleware.multicore.erpc.eRPC_spi_slave_transport
tristate "SPI slave"
config MCUX_COMPONENT_middleware.multicore.erpc.eRPC_lpspi_slave_transport
tristate "LPSPI slave"
config MCUX_COMPONENT_middleware.multicore.erpc.eRPC_i2c_slave_transport
tristate "I2C slave"
config MCUX_COMPONENT_middleware.multicore.erpc.eRPC_lpi2c_slave_transport
tristate "LPI2C slave"
endchoice
config MCUX_PRJSEG_middleware.multicore.erpc.generated_config
bool "Generate eRPC configuration header"
depends on MCUX_COMPONENT_middleware.multicore.erpc
default y
help
Generate the erpc_config_gen.h, otherwise users need to provide their
own erpc_config.h.
if MCUX_PRJSEG_middleware.multicore.erpc.generated_config
menu "eRPC Configuration(erpc_config_gen.h)"
choice ERPC_ALLOCATION_POLICY_CONFIG
prompt "Choice ERPC_ALLOCATION_POLICY_STATIC"
help
Choose which allocation policy should be used.
Set ERPC_ALLOCATION_POLICY_DYNAMIC if dynamic allocations should be used.
Set ERPC_ALLOCATION_POLICY_STATIC if static allocations should be used.
config ERPC_ALLOCATION_POLICY_DYNAMIC
bool "ERPC_ALLOCATION_POLICY_DYNAMIC"
help
type unsigned
config ERPC_ALLOCATION_POLICY_STATIC
bool "ERPC_ALLOCATION_POLICY_STATIC"
help
type unsigned
endchoice
config ERPC_ALLOCATION_POLICY
string
default "(ERPC_ALLOCATION_POLICY_DYNAMIC)" if ERPC_ALLOCATION_POLICY_DYNAMIC
default "(ERPC_ALLOCATION_POLICY_STATIC)" if ERPC_ALLOCATION_POLICY_STATIC
help
No prefix in generated macro
config ERPC_CODEC_COUNT
int "ERPC_CODEC_COUNT"
default 2
help
No prefix in generated macro
Set amount of codecs objects used simultaneously in case of ERPC_ALLOCATION_POLICY is set to
ERPC_ALLOCATION_POLICY_STATIC. For example if client or server is used in one thread then 1. If both are used in one
thread per each then 2, ... Default value 2
type unsigned
config ERPC_MESSAGE_LOGGERS_COUNT
int "ERPC_MESSAGE_LOGGERS_COUNT"
default 0
help
No prefix in generated macro
Set amount of message loggers objects used simultaneously in case of ERPC_ALLOCATION_POLICY is set to ERPC_ALLOCATION_POLICY_STATIC.
For example if client or server is used in one thread then 1. If both are used in one thread per each then 2, ... For arbitrated client 1 is enough.
type unsigned
config ERPC_CLIENTS_THREADS_AMOUNT
int "ERPC_CLIENTS_THREADS_AMOUNT"
default 1
help
No prefix in generated macro
Set amount of client threads objects used in case of ERPC_ALLOCATION_POLICY is set to ERPC_ALLOCATION_POLICY_STATIC
type unsigned
choice ERPC_THREADS_CONFIG
prompt "Choice ERPC_THREADS"
help
Select threading model
config ERPC_THREADS_NONE
bool "ERPC_THREADS_NONE"
help
type unsigned
config ERPC_THREADS_PTHREADS
bool "ERPC_THREADS_PTHREADS"
help
type unsigned
config ERPC_THREADS_FREERTOS
bool "ERPC_THREADS_FREERTOS"
help
type unsigned
config ERPC_THREADS_ZEPHYR
bool "ERPC_THREADS_ZEPHYR"
help
type unsigned
config ERPC_THREADS_MBED
bool "ERPC_THREADS_MBED"
help
type unsigned
config ERPC_THREADS_WIN32
bool "ERPC_THREADS_WIN32"
help
type unsigned
config ERPC_THREADS_THREADX
bool "ERPC_THREADS_THREADX"
help
type unsigned
endchoice
config ERPC_THREADS
string
default "(ERPC_THREADS_NONE)" if ERPC_THREADS_NONE
default "(ERPC_THREADS_PTHREADS)" if ERPC_THREADS_PTHREADS
default "(ERPC_THREADS_FREERTOS)" if ERPC_THREADS_FREERTOS
default "(ERPC_THREADS_ZEPHYR)" if ERPC_THREADS_ZEPHYR
default "(ERPC_THREADS_MBED)" if ERPC_THREADS_MBED
default "(ERPC_THREADS_WIN32)" if ERPC_THREADS_WIN32
default "(ERPC_THREADS_THREADX)" if ERPC_THREADS_THREADX
help
No prefix in generated macro
config ERPC_DEFAULT_BUFFER_SIZE
int "ERPC_DEFAULT_BUFFER_SIZE"
default 256
help
No prefix in generated macro
Set the size of buffers allocated by one of MessageBufferFactory.
For RPMsg transport layer, ERPC_DEFAULT_BUFFER_SIZE must be 2^n - 16.
type unsigned
config ERPC_DEFAULT_BUFFERS_COUNT
int "ERPC_DEFAULT_BUFFERS_COUNT"
default 2
help
No prefix in generated macro
Set the count of buffers allocated by one of statically allocated messages
type unsigned
config ERPC_NOEXCEPT
bool "ERPC_NOEXCEPT"
default n
help
No prefix in generated macro
Disable/enable noexcept support
type unsigned
config ERPC_NESTED_CALLS
bool "ERPC_NESTED_CALLS"
default n
help
No prefix in generated macro
Disable/enable nested calls. Enable this option when callbacks or other eRPC functions are called
from server implementation of another eRPC call. Nested functions need to be marked as @nested in IDL.
type unsigned
config ERPC_NESTED_CALLS_DETECTION
bool "ERPC_NESTED_CALLS_DETECTION"
default n
help
No prefix in generated macro
This serve for locating nested calls in code. Nested calls are calls where inside eRPC function
on server side is called another eRPC function (like callbacks). Code need be a bit changed
to support nested calls. See ERPC_NESTED_CALLS macro.
type unsigned
config ERPC_MESSAGE_LOGGING
bool "ERPC_MESSAGE_LOGGING"
default n
help
No prefix in generated macro
Enable eRPC message logging code through the eRPC. Take look into "erpc_message_loggers.h". Can be used for base
printing messages, or sending data to another system for data analysis.
type unsigned
config ERPC_TRANSPORT_MU_USE_MCMGR
bool "ERPC_TRANSPORT_MU_USE_MCMGR"
default n
help
No prefix in generated macro
MU transport layer configuration. MU transport layer could leverage the Multicore Manager (MCMGR) component for Inter-Core
interrupts / MU interrupts management or the Inter-Core interrupts can be managed by itself (MUX_IRQHandler
overloading). By default, ERPC_TRANSPORT_MU_USE_MCMGR is set to ERPC_TRANSPORT_MU_USE_MCMGR_ENABLED when mcmgr.h
is part of the project, otherwise the ERPC_TRANSPORT_MU_USE_MCMGR_DISABLED option is used. Do not forget
to add the MCMGR library into your project when ERPC_TRANSPORT_MU_USE_MCMGR_ENABLED option is used! See the
erpc_mu_transport.h for additional MU settings.
type unsigned
config ERPC_PRE_POST_ACTION
bool "ERPC_PRE_POST_ACTION"
default n
help
No prefix in generated macro
Enable eRPC pre and post callback functions shim code. Take look into "erpc_pre_post_action.h". Can be used for
detection of eRPC call freeze, ...
type unsigned
config ERPC_PRE_POST_ACTION_DEFAULT
bool "ERPC_PRE_POST_ACTION_DEFAULT"
default n
help
No prefix in generated macro
Enable eRPC pre and post default callback functions. Take look into "erpc_setup_extensions.h". Can be used for
detection of eRPC call freeze, ...
type unsigned
endmenu
endif
menu "eRPC examples sources"
rsource "../examples/MCUXPRESSO_SDK/Kconfig"
endmenu
endif