A previous PR merged (to remove runtime observers' dependency with heap) added inconsistencies and compatibility breaks to the zbus. This commit improves that by removing the inconsistencies and still attending to the features requested by the community. Signed-off-by: Rodrigo Peixoto <rodrigopex@gmail.com>
122 lines
3.4 KiB
Text
122 lines
3.4 KiB
Text
# Copyright (c) 2022 Rodrigo Peixoto <rodrigopex@gmail.com>
|
||
# SPDX-License-Identifier: Apache-2.0
|
||
|
||
menuconfig ZBUS
|
||
bool "Zbus support"
|
||
depends on MULTITHREADING
|
||
help
|
||
Enables support for Zephyr message bus.
|
||
|
||
if ZBUS
|
||
|
||
config ZBUS_PREFER_DYNAMIC_ALLOCATION
|
||
bool "Set zbus to work with dynamic allocation using the system heap"
|
||
default y
|
||
|
||
config ZBUS_CHANNELS_SYS_INIT_PRIORITY
|
||
default 5
|
||
int "The priority used during the SYS_INIT procedure."
|
||
|
||
config ZBUS_CHANNEL_NAME
|
||
bool "Channel name field"
|
||
|
||
config ZBUS_CHANNEL_ID
|
||
bool "Channel identifier field"
|
||
|
||
config ZBUS_OBSERVER_NAME
|
||
bool "Observer name field"
|
||
|
||
config ZBUS_CHANNEL_PUBLISH_STATS
|
||
bool "Channel publishing statistics (Timestamp and count)"
|
||
|
||
config ZBUS_MSG_SUBSCRIBER
|
||
select NET_BUF
|
||
bool "Message subscribers will receive all messages in sequence."
|
||
|
||
if ZBUS_MSG_SUBSCRIBER
|
||
|
||
choice ZBUS_MSG_SUBSCRIBER_BUF_ALLOC
|
||
prompt "ZBus msg_subscribers buffer allocation"
|
||
default ZBUS_MSG_SUBSCRIBER_BUF_ALLOC_DYNAMIC if ZBUS_PREFER_DYNAMIC_ALLOCATION
|
||
default ZBUS_MSG_SUBSCRIBER_BUF_ALLOC_STATIC
|
||
|
||
config ZBUS_MSG_SUBSCRIBER_BUF_ALLOC_DYNAMIC
|
||
bool "Use heap to allocate msg_subscriber buffers data"
|
||
|
||
config ZBUS_MSG_SUBSCRIBER_BUF_ALLOC_STATIC
|
||
bool "Use fixed data size for msg_subscriber buffers pool"
|
||
|
||
endchoice
|
||
|
||
config ZBUS_MSG_SUBSCRIBER_NET_BUF_POOL_ISOLATION
|
||
default n
|
||
bool "Use isolated pools instead of only using the global pool."
|
||
|
||
config ZBUS_MSG_SUBSCRIBER_NET_BUF_POOL_SIZE
|
||
default 16
|
||
int "The count of net_buf available to be used simutaneously."
|
||
|
||
if ZBUS_MSG_SUBSCRIBER_BUF_ALLOC_STATIC
|
||
|
||
config ZBUS_MSG_SUBSCRIBER_NET_BUF_STATIC_DATA_SIZE
|
||
int "The size of the biggest message used with ZBus."
|
||
|
||
endif # ZBUS_MSG_SUBSCRIBER_BUF_ALLOC_STATIC
|
||
|
||
endif # ZBUS_MSG_SUBSCRIBER
|
||
|
||
config ZBUS_RUNTIME_OBSERVERS
|
||
bool "Runtime observers support."
|
||
|
||
if ZBUS_RUNTIME_OBSERVERS
|
||
|
||
choice ZBUS_RUNTIME_OBSERVERS_NODE_ALLOC
|
||
prompt "ZBus runtime observers node allocation"
|
||
default ZBUS_RUNTIME_OBSERVERS_NODE_ALLOC_DYNAMIC if ZBUS_PREFER_DYNAMIC_ALLOCATION
|
||
default ZBUS_RUNTIME_OBSERVERS_NODE_ALLOC_STATIC
|
||
|
||
config ZBUS_RUNTIME_OBSERVERS_NODE_ALLOC_DYNAMIC
|
||
bool "Use heap to allocate runtime observers node"
|
||
|
||
config ZBUS_RUNTIME_OBSERVERS_NODE_ALLOC_STATIC
|
||
bool "Use a pool of runtime observers nodes"
|
||
|
||
config ZBUS_RUNTIME_OBSERVERS_NODE_ALLOC_NONE
|
||
bool "Use user-provided runtime observers nodes"
|
||
|
||
endchoice
|
||
|
||
config ZBUS_RUNTIME_OBSERVERS_NODE_POOL_SIZE
|
||
int "Runtime observer pool size"
|
||
depends on ZBUS_RUNTIME_OBSERVERS_NODE_ALLOC_STATIC
|
||
default 8
|
||
|
||
endif # ZBUS_RUNTIME_OBSERVERS
|
||
|
||
config ZBUS_PRIORITY_BOOST
|
||
bool "ZBus priority boost algorithm"
|
||
default y
|
||
help
|
||
ZBus implements the Highest Locker Protocol that relies on the observers’ thread priority
|
||
to determine a temporary publisher priority.
|
||
|
||
config ZBUS_ASSERT_MOCK
|
||
bool "Zbus assert mock for test purposes."
|
||
help
|
||
This configuration enables the developer to change the _ZBUS_ASSERT behavior. When this configuration is
|
||
enabled, _ZBUS_ASSERT returns -EFAULT instead of assert. It makes it more straightforward to test invalid
|
||
parameters.
|
||
|
||
|
||
config HEAP_MEM_POOL_ADD_SIZE_ZBUS
|
||
int
|
||
default 2048 if ZBUS_MSG_SUBSCRIBER_BUF_ALLOC_DYNAMIC && !ZBUS_RUNTIME_OBSERVERS_NODE_ALLOC_DYNAMIC
|
||
default 1024 if !ZBUS_MSG_SUBSCRIBER_BUF_ALLOC_DYNAMIC && ZBUS_RUNTIME_OBSERVERS_NODE_ALLOC_DYNAMIC
|
||
default 3072 if ZBUS_MSG_SUBSCRIBER_BUF_ALLOC_DYNAMIC && ZBUS_RUNTIME_OBSERVERS_NODE_ALLOC_DYNAMIC
|
||
|
||
|
||
module = ZBUS
|
||
module-str = zbus
|
||
source "subsys/logging/Kconfig.template.log_config"
|
||
|
||
endif # ZBUS
|