nuttx/drivers/serial
chao an 87f134cfaa sched/sleep: replace all Signal-based sleep implement to Scheduled sleep
Nuttx currently has 2 types of sleep interfaces:

1. Signal-scheduled sleep: nxsig_sleep() / nxsig_usleep() / nxsig_nanosleep()
Weaknesses:
a. Signal-dependent: The signal-scheduled sleep method is bound to the signal framework, while some driver sleep operations do not depend on signals.
b. Timespec conversion: Signal-scheduled sleep involves timespec conversion, which has a significant impact on performance.

2. Busy sleep: up_mdelay() / up_udelay()
Weaknesses:
a. Does not actively trigger scheduling, occupy the CPU loading.

3. New interfaces: Scheduled sleep: nxsched_sleep() / nxsched_usleep() / nxsched_msleep() / nxsched_ticksleep()
Strengths:
a. Does not depend on the signal framework.
b. Tick-based, without additional computational overhead.

Currently, the Nuttx driver framework extensively uses nxsig_* interfaces. However, the driver does not need to rely on signals or timespec conversion.
Therefore, a new set of APIs is added to reduce dependencies on other modules.

(This PR also aims to make signals optional, further reducing the code size of Nuttx.)

Signed-off-by: chao an <anchao.archer@bytedance.com>
2025-10-17 14:05:02 +08:00
..
CMakeLists.txt cmake(bugfix):add missing driver/serial CMake build source 2024-11-13 02:36:18 +08:00
Kconfig drivers/serial: Fix Kconfig style 2025-06-26 02:30:46 +08:00
Kconfig-16550 drivers/serial: Add 16550_DLF_SIZE option for DesignWare UART. 2024-10-10 02:38:12 +08:00
Kconfig-cmsdk drivers/serial:support arm cmsdk drivers 2024-04-26 18:42:35 -03:00
Kconfig-lpuart Add initial support for NXP S32K3 MCU family 2022-07-25 23:47:05 +08:00
Kconfig-pci drivers/serial: simplify 16550_PCI_UARTx_CLOCK config 2025-01-03 08:52:43 +08:00
Kconfig-pl011 drivers/serial/uart_pl011.c : add the interface about clock and reset control for reducing power consumption. 2024-06-03 21:18:44 +08:00
Kconfig-sci We have ported NuttX on Renesas RX65N Micro-controller. This port includes following interfaces 2019-10-11 23:36:57 +08:00
Kconfig-uart drivers/serial/Kconfig: Split serial Rx/Tx DMA. 2019-12-03 07:06:30 -06:00
Kconfig-usart drivers/serial/serial: prevent race conditions on 8-bit architectures 2025-06-19 10:01:24 -03:00
Make.defs drivers: migrate to SPDX identifier 2024-11-06 18:02:25 +08:00
ptmx.c drivers/serial: fix the issue of the refs count for filep being zeroed out by utilizing dup2 2025-06-26 09:31:14 -03:00
pty.c arch_atomic: only support atomic_xx and atomic64_xx function 2024-12-04 14:03:14 +01:00
pty.h drivers: migrate to SPDX identifier 2024-11-06 18:02:25 +08:00
serial.c sched/sleep: replace all Signal-based sleep implement to Scheduled sleep 2025-10-17 14:05:02 +08:00
serial_cmsdk.c style: fix spelling in code comments and strings 2025-05-23 10:48:41 +08:00
serial_dma.c drivers: migrate to SPDX identifier 2024-11-06 18:02:25 +08:00
serial_gdbstub.c style: fix spelling in code comments and strings 2025-05-23 10:48:41 +08:00
serial_io.c drivers: migrate to SPDX identifier 2024-11-06 18:02:25 +08:00
uart_16550.c style: fix spelling in code comments and strings 2025-05-23 10:48:41 +08:00
uart_bth4.c drivers: migrate to SPDX identifier 2024-11-06 18:02:25 +08:00
uart_bth5.c drivers: migrate to SPDX identifier 2024-11-06 18:02:25 +08:00
uart_hostfs.c drivers: migrate to SPDX identifier 2024-11-06 18:02:25 +08:00
uart_pci_16550.c style: fix spelling in code comments and strings 2025-05-23 10:48:41 +08:00
uart_pl011.c fix a deadlock 2024-12-25 04:22:49 -03:00
uart_ram.c serial/uart_ram: update lower buffer offset if previous send completes 2025-01-23 18:14:48 +08:00
uart_rpmsg.c drivers/serial/uart_rpmsg: simplify initialization process of uart_rpmsg 2025-04-02 20:56:01 +08:00