mirror of
https://github.com/apache/nuttx.git
synced 2026-08-02 04:38:59 +00:00
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> |
||
|---|---|---|
| .. | ||
| ads7843e.c | ||
| ads7843e.h | ||
| ajoystick.c | ||
| aw86225.c | ||
| aw86225_internal.h | ||
| aw86225_reg.h | ||
| button_lower.c | ||
| button_upper.c | ||
| CMakeLists.txt | ||
| cypress_mbr3108.c | ||
| djoystick.c | ||
| ff_dummy.c | ||
| ff_upper.c | ||
| ft5x06.c | ||
| ft5x06.h | ||
| goldfish_events.c | ||
| gt9xx.c | ||
| Kconfig | ||
| keyboard_upper.c | ||
| Make.defs | ||
| max11802.c | ||
| max11802.h | ||
| mouse_upper.c | ||
| mxt.c | ||
| mxt.h | ||
| nunchuck.c | ||
| sbutton.c | ||
| spq10kbd.c | ||
| stmpe811.h | ||
| stmpe811_adc.c | ||
| stmpe811_base.c | ||
| stmpe811_gpio.c | ||
| stmpe811_temp.c | ||
| stmpe811_tsc.c | ||
| touchscreen_upper.c | ||
| tsc2007.c | ||
| tsc2007.h | ||
| uinput.c | ||