mirror of
https://github.com/apache/nuttx.git
synced 2026-08-05 06:10:27 +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> |
||
|---|---|---|
| .. | ||
| apa102.c | ||
| CMakeLists.txt | ||
| ft80x.c | ||
| ft80x.h | ||
| ft80x_spi.c | ||
| gc9a01.c | ||
| gc9a01.h | ||
| ht16k33_14seg.c | ||
| ili9225.c | ||
| ili9340.c | ||
| ili9341.c | ||
| jd9851.c | ||
| jd9851.h | ||
| Kconfig | ||
| lcd_dev.c | ||
| lcd_framebuffer.c | ||
| lcddrv_spiif.c | ||
| lpm013m091a.c | ||
| Make.defs | ||
| max7219.c | ||
| memlcd.c | ||
| mio283qt2.c | ||
| mio283qt9a.c | ||
| p14201.c | ||
| pcd8544.c | ||
| pcd8544.h | ||
| pcf8574_lcd_backpack.c | ||
| pcf8574_lcd_backpack_readme.txt | ||
| pcf8833.h | ||
| ra8875.c | ||
| ra8875.h | ||
| s1d15g10.h | ||
| sd1329.h | ||
| skeleton.c | ||
| ssd1289.c | ||
| ssd1289.h | ||
| ssd1305.h | ||
| ssd1306.h | ||
| ssd1306_base.c | ||
| ssd1306_i2c.c | ||
| ssd1306_spi.c | ||
| ssd1351.c | ||
| ssd1680.c | ||
| ssd1680.h | ||
| st7032.c | ||
| st7565.c | ||
| st7565.h | ||
| st7567.c | ||
| st7567.h | ||
| st7735.c | ||
| st7735.h | ||
| st7789.c | ||
| st7789.h | ||
| tda19988.c | ||
| tda19988.h | ||
| ug-2864ambag01.c | ||
| ug-9664hswag01.c | ||