| # Copyright (c) 2021 Nordic Semiconductor ASA |
| # SPDX-License-Identifier: Apache-2.0 |
| |
| menu "Misc" |
| |
| config LOG_CMDS |
| bool "Shell commands" |
| depends on SHELL |
| depends on !LOG_MODE_MINIMAL |
| |
| config LOG_TEST_CLEAR_MESSAGE_SPACE |
| bool "Clear message after allocation" |
| default y |
| depends on ZTEST |
| help |
| Used in testing to simplify message comparision if message contains |
| paddings. |
| |
| config LOG_USE_VLA |
| bool "Using variable length arrays" |
| default y if !MISRA_SANE |
| help |
| Using VLA slightly decreases stack usage in some cases it may not be |
| supported. Note that VLA are used for arrays which size is resolved at |
| compile time so at runtime arrays have fixed size. |
| |
| config LOG_SIMPLE_MSG_OPTIMIZE |
| bool "Optimize simple messages for size" |
| depends on !64BIT && !CBPRINTF_PACKAGE_HEADER_STORE_CREATION_FLAGS |
| default y |
| help |
| Dedicated code for handling simple log messages (0-2 32 bit word arguments). |
| Approximately, 70%-80% log messages in the application fit into that category. |
| Depending on the architecture code size reduction is from 0-40% (highest seen on |
| RISCV32) and execution time also up to 40%. |
| |
| config LOG_ALWAYS_RUNTIME |
| bool "Always use runtime message creation (v2)" |
| default y if NO_OPTIMIZATIONS |
| default y if LOG_MODE_IMMEDIATE |
| default y if "$(ZEPHYR_TOOLCHAIN_VARIANT)" = "xcc" |
| help |
| If enabled, runtime method is always used for message creation. Static |
| creation relies on compiler being able to optimize and remove code |
| based on information known at compile time. Runtime only approach must |
| be used when optimization is disabled because some compilers |
| (seen on arm_cortex_m and x86) were using unrealistic amount of stack |
| for dead code. It is also required in immediate mode since it requires |
| less stack than static message creation and speed has lower priority |
| in that mode. |
| |
| config LOG_FMT_SECTION |
| bool "Keep log strings in dedicated section" |
| help |
| When enabled, logs are kept in dedicated memory section. It allows |
| removing strings from final binary and should be used for dictionary |
| logging. |
| |
| config LOG_FMT_SECTION_STRIP |
| bool "Strip log strings from binary" |
| depends on LOG_DICTIONARY_DB |
| depends on LOG_FMT_SECTION |
| depends on LINKER_DEVNULL_SUPPORT |
| depends on !LOG_ALWAYS_RUNTIME |
| depends on !LOG_OUTPUT |
| imply LINKER_DEVNULL_MEMORY |
| imply LOG_FMT_STRING_VALIDATE |
| |
| config LOG_FMT_STRING_VALIDATE |
| bool "Validate logging strings" |
| help |
| Logging strings cannot use %p with character pointers. They should be |
| casted to the pointer of another type (e.g. void *). With this feature |
| enabled, at compile time, the preprocessor detects strings with %p |
| without casting and reports an error at runtime. |
| |
| config LOG_USE_TAGGED_ARGUMENTS |
| bool "Using tagged arguments for packaging" |
| depends on !PICOLIBC |
| select CBPRINTF_PACKAGE_SUPPORT_TAGGED_ARGUMENTS |
| select LOG_ALWAYS_RUNTIME |
| help |
| If enabled, packaging uses tagged arguments. |
| |
| config LOG_MEM_UTILIZATION |
| bool "Tracking maximum memory utilization" |
| depends on LOG_MODE_DEFERRED |
| default y if LOG_CMDS |
| help |
| When enabled, maximum usage of memory used for log messages in deferred |
| mode is tracked. It can be used to trim LOG_BUFFER_SIZE. |
| |
| config LOG_DICTIONARY_DB |
| bool |
| |
| config LOG_DICTIONARY_DB_TARGET |
| bool "Only generated log dictionary database from target" |
| depends on LOG_DICTIONARY_DB |
| help |
| Enable this option to make generating the log dictionary database |
| only done by its own build target. |
| This removes the target from the ALL make target and the target |
| 'log_dict_db_gen' has to be called in addition. |
| |
| config LOG_MSG_APPEND_RO_STRING_LOC |
| bool |
| help |
| Enable this option to force log messages to always append location of |
| read-only string arguments in the package. This should be selected by |
| backends if required. |
| |
| config LOG_FAILURE_REPORT_PERIOD |
| int "Failure report period (in milliseconds)" |
| default 1000 |
| depends on LOG_MODE_DEFERRED |
| help |
| Determines how often failures are reported. Report contains number |
| of dropped messages. It may contain additional information depending |
| on the mode. |
| |
| config LOG_DOMAIN_NAME |
| string "Domain name" |
| default "" |
| |
| if LOG_MULTIDOMAIN |
| |
| config LOG_REMOTE_DOMAIN_MAX_COUNT |
| int "Maximum number of link domains" |
| default 4 |
| help |
| Number of domains that can be handled by a link |
| |
| endif |
| endmenu |