zephyr/subsys/logging
Krzysztof Chruściński 752f8b0176 logging: frontends: stmesp: Add optimized short logs
Add 'turbo' logging feature. When enabled, short logs (no argument
or one numeric, 32 bit argument) are handled in a special way that
is much faster than the default one (5-10x faster). Additionally,
there is an option to remove all other logs from the system which
allows to not include almost any logging framework code in the
binary (~170 bytes of code is needed). It may be especially
valueable for memory constraint targets (ppr, flpr) where with
only 170 byte of code (+code for each log message) we can provide
limited formatted string logging support.

'Turbo' logging is using following to achieve that:
- logging strings are put into a memory section and additional
memory section is created which holds addresses of those strings.
Index in that array is used to identify a string (32 bit address
is encoded into a smaller number, 15 bits is more than enough).
This index is used for a STMESP register set (there are 2^16
available). So STMESP channel encodes string.
- Logging level is stringified and prepended to a string
- Source ID is encoded by using DM16 (so far not used).
- Log without arguments is written as DMTS16
- Log with one argumetn is written as DM16+DMTS32

Signed-off-by: Krzysztof Chruściński <krzysztof.chruscinski@nordicsemi.no>
2024-12-10 11:09:55 +01:00
..
backends logging: remove part for when gmtime_r is not available 2024-12-10 08:06:25 +01:00
frontends logging: frontends: stmesp: Add optimized short logs 2024-12-10 11:09:55 +01:00
mipi_syst
CMakeLists.txt logging: Move frontends to the dedicated directory 2024-09-06 11:31:27 -04:00
Kconfig logging: Move frontends to the dedicated directory 2024-09-06 11:31:27 -04:00
Kconfig.filtering logging: Allow runtime filtering for frontend only case 2024-07-09 14:01:56 +02:00
Kconfig.formatting logging: remove part for when gmtime_r is not available 2024-12-10 08:06:25 +01:00
Kconfig.links
Kconfig.misc logging: log_cmds: Enable log commands for shell with the logging frontend 2024-10-17 10:48:25 -04:00
Kconfig.mode logging: Default to IMMEDIATE mode for native targets 2024-04-26 19:48:49 +01:00
Kconfig.processing posix: timers: deprecate CONFIG_POSIX_CLOCK and TIMER 2024-06-04 16:27:12 -05:00
Kconfig.template.log_config
Kconfig.template.log_config_inherit
Kconfig.template.log_format_config logging: Fix LOG_OUTPUT dependency 2024-10-09 18:37:49 +01:00
log_cache.c logging: log_cache: ensure cache contains an entry 2024-05-13 16:05:18 -04:00
log_cache.h
log_cmds.c logging: log_cmds: Enable log commands for shell with the logging frontend 2024-10-17 10:48:25 -04:00
log_core.c logging: Set frontend filters only when filtering enabled 2024-12-10 11:09:55 +01:00
log_link_ipc_service.c
log_mgmt.c logging: When strings are stripped keep source name pointers 2024-08-13 14:56:14 +02:00
log_minimal.c coding guidelines: comply with MISRA Rule 12.1. 2024-06-03 16:10:33 -04:00
log_msg.c logging: Add log_source_id helper function 2024-10-08 16:57:59 +02:00
log_multidomain_link.c
log_output.c logging: log_output: move partly unused code 2024-12-10 08:06:25 +01:00
log_output_custom.c
log_output_dict.c logging: log_output: Move flushing and writing to the header 2024-10-09 18:37:49 +01:00
log_output_syst.c logging: Add log_source_id helper function 2024-10-08 16:57:59 +02:00