diff --git a/drivers/serial/uart_rtt.c b/drivers/serial/uart_rtt.c index 59044d87e60cb9a..10cabbcb8c969e7 100644 --- a/drivers/serial/uart_rtt.c +++ b/drivers/serial/uart_rtt.c @@ -100,21 +100,8 @@ static int uart_rtt_tx(const struct device *dev, ARG_UNUSED(timeout); - /* RTT mutex cannot be claimed in ISRs */ - if (k_is_in_isr()) { - return -ENOTSUP; - } - - /* Claim the RTT lock */ - if (k_mutex_lock(&rtt_term_mutex, K_NO_WAIT) != 0) { - return -EBUSY; - } - /* Output the buffer */ - SEGGER_RTT_WriteNoLock(ch, buf, len); - - /* Return RTT lock */ - SEGGER_RTT_UNLOCK(); + SEGGER_RTT_Write(ch, buf, len); /* Send the TX complete callback */ if (data->callback) { diff --git a/modules/segger/Kconfig b/modules/segger/Kconfig index fd04ac99b0f82cf..597b4ab9f32ce58 100644 --- a/modules/segger/Kconfig +++ b/modules/segger/Kconfig @@ -23,7 +23,7 @@ if USE_SEGGER_RTT config SEGGER_RTT_CUSTOM_LOCKING bool "Custom locking" help - Enable custom locking using a mutex. + Enable custom locking using Zephyr APIs. config SEGGER_RTT_MAX_NUM_UP_BUFFERS int "Maximum number of up-buffers" diff --git a/modules/segger/SEGGER_RTT_zephyr.c b/modules/segger/SEGGER_RTT_zephyr.c index b7b8e83e4abcb11..a673f15d3d69e2d 100644 --- a/modules/segger/SEGGER_RTT_zephyr.c +++ b/modules/segger/SEGGER_RTT_zephyr.c @@ -9,41 +9,13 @@ #include #include "SEGGER_RTT.h" -/* - * Common mutex for locking access to terminal buffer. - * Note that SEGGER uses same lock macros for both SEGGER_RTT_Write and - * SEGGER_RTT_Read functions. Because of this we are not able generally - * separate up and down access using two mutexes until SEGGER library fix - * this. - * - * If sharing access cause performance problems, consider using another - * non terminal buffers. - */ - -K_MUTEX_DEFINE(rtt_term_mutex); - static int rtt_init(void) { - SEGGER_RTT_Init(); return 0; } -#ifdef CONFIG_MULTITHREADING - -void zephyr_rtt_mutex_lock(void) -{ - k_mutex_lock(&rtt_term_mutex, K_FOREVER); -} - -void zephyr_rtt_mutex_unlock(void) -{ - k_mutex_unlock(&rtt_term_mutex); -} - -#endif /* CONFIG_MULTITHREADING */ - unsigned int zephyr_rtt_irq_lock(void) { return irq_lock(); @@ -54,6 +26,4 @@ void zephyr_rtt_irq_unlock(unsigned int key) irq_unlock(key); } - - SYS_INIT(rtt_init, PRE_KERNEL_1, CONFIG_KERNEL_INIT_PRIORITY_OBJECTS); diff --git a/west.yml b/west.yml index 23d11e10054cef5..3c6281532b7aa8c 100644 --- a/west.yml +++ b/west.yml @@ -317,7 +317,7 @@ manifest: path: modules/lib/picolibc revision: e15656f7682500fc8953e1a2008f7b1ae4f65ce8 - name: segger - revision: b011c45b585e097d95d9cf93edf4f2e01588d3cd + revision: pull/21/head path: modules/debug/segger groups: - debug