nuttx/sched
wangchengdong ed1cb6f9b8 sched/hrtimer: Add high-resolution timer support for NuttX
NuttX provides the wdog module to implement timers for the scheduler.
While it is lightweight and efficient, wdog only supports tick-level timers,
typically in milliseconds. Although the tick duration can be configured,
setting it to microsecond or nanosecond resolution is not practical.
Doing so may cause an interrupt storm, where the CPU is constantly
occupied handling tick interrupts.

To address this limitation, a new hrtimer module is introduced.
It coexists with the wdog module, providing both tick-level timers
for wdog and high-resolution timers (nanosecond-level) directly to users.

Signed-off-by: Chengdong Wang <wangchengdong@lixiang.com>
2025-12-18 18:36:28 +08:00
..
addrenv sem_waitirq: Use kmap interface to access the semaphore 2024-12-18 08:57:01 +08:00
clock sched/clock: Remove unnecessary preprocessor definition 2025-12-12 12:31:16 +08:00
environ binfmt: Fix error handling in exec_module 2025-12-11 12:57:07 -05:00
event sched/event: Fix uninitialized need_switch flag issue in event_post() 2025-11-04 21:43:59 +08:00
group env: Always call env_release in group_release 2025-12-11 12:57:07 -05:00
hrtimer sched/hrtimer: Add high-resolution timer support for NuttX 2025-12-18 18:36:28 +08:00
init sched/task: move lock to mhead scope 2025-11-01 22:52:07 +08:00
instrument gprof: move gprof function from sched to libbuiltin/libgcc 2024-11-13 02:42:31 +08:00
irq sched/irq: add stack size judgment when detecting stack overflow 2025-10-14 17:42:01 +08:00
misc sched/init: Add OSINIT_IS_PANIC to replace 'g_nx_initstate == OSINIT_PANIC' 2025-12-18 18:21:55 +08:00
module libc/elf: rename modlib to libelf 2025-04-11 09:43:22 +08:00
mqueue sched: After nxsched_add_readytorun, change first parameter to up_switch_context to this_task() 2025-08-20 10:16:43 +08:00
paging sched/sleep: replace all Signal-based sleep implement to Scheduled sleep 2025-10-17 14:05:02 +08:00
pthread sched/task: move lock to mhead scope 2025-11-01 22:52:07 +08:00
sched sched/init: Add OSINIT_IS_PANIC to replace 'g_nx_initstate == OSINIT_PANIC' 2025-12-18 18:21:55 +08:00
semaphore sched/semaphore: add support to customize semaphore max allowed value 2025-09-04 09:48:34 +08:00
signal sched: assert if call timedwait from interrupt 2025-12-18 18:19:42 +08:00
task sched/task: move lock to mhead scope 2025-11-01 22:52:07 +08:00
timer sched/wdog: Replace periodcial timer with the wd_start_next. 2025-06-10 11:02:45 -03:00
tls sched/gettid: Move thread ID to TLS 2025-04-08 22:53:10 +08:00
wdog sched/wdog: Inline wd_start() to improve performance 2025-11-10 23:16:57 +08:00
wqueue sched/wqueue: Replace spinlock/sched_lock with spin_lock_irqsave_nopreempt 2025-10-31 15:02:56 +08:00
CMakeLists.txt
Kconfig sched/hrtimer: Add high-resolution timer support for NuttX 2025-12-18 18:36:28 +08:00
Makefile