diff --git a/drivers/segger/Kconfig b/drivers/segger/Kconfig index cfd052cec79..35b5c4ecdcc 100644 --- a/drivers/segger/Kconfig +++ b/drivers/segger/Kconfig @@ -33,9 +33,16 @@ config SEGGER_RTT_CPU_CACHE_LINE_SIZE ---help--- Largest cache line size (in bytes) in the target system. +config SEGGER_RTT_UNCACHED_OFF_VARIABLE + bool + default n + ---help--- + Converting the macro for Segger RTT uncached offset to variable representation + config SEGGER_RTT_UNCACHED_OFF int "Segger RTT uncached offset" default 0 + depends on !SEGGER_RTT_UNCACHED_OFF_VARIABLE ---help--- Address alias where RTT CB and buffers can be accessed uncached diff --git a/drivers/segger/config/SEGGER_RTT_Conf.h b/drivers/segger/config/SEGGER_RTT_Conf.h index 4856b0ac085..b4bc1f8d674 100644 --- a/drivers/segger/config/SEGGER_RTT_Conf.h +++ b/drivers/segger/config/SEGGER_RTT_Conf.h @@ -41,6 +41,10 @@ extern struct rspinlock_s g_segger_lock; #endif +#ifdef CONFIG_SEGGER_RTT_UNCACHED_OFF_VARIABLE +extern ptrdiff_t g_segger_offset; +#endif + /**************************************************************************** * Pre-processor Definitions ****************************************************************************/ @@ -53,7 +57,11 @@ extern struct rspinlock_s g_segger_lock; /* Address alias where RTT CB and buffers can be accessed uncached */ -#define SEGGER_RTT_UNCACHED_OFF CONFIG_SEGGER_RTT_UNCACHED_OFF +#ifdef CONFIG_SEGGER_RTT_UNCACHED_OFF_VARIABLE +# define SEGGER_RTT_UNCACHED_OFF g_segger_offset +#else +# define SEGGER_RTT_UNCACHED_OFF CONFIG_SEGGER_RTT_UNCACHED_OFF +#endif /* Number of up-buffers (T->H) available on this target */ diff --git a/drivers/segger/segger.c b/drivers/segger/segger.c index 7d71aa96eda..d179bccef15 100644 --- a/drivers/segger/segger.c +++ b/drivers/segger/segger.c @@ -31,6 +31,7 @@ ****************************************************************************/ struct rspinlock_s g_segger_lock = RSPINLOCK_INITIALIZER; +ptrdiff_t g_segger_offset = PTRDIFF_MAX; /**************************************************************************** * Public Functions