summaryrefslogtreecommitdiff
path: root/nuttx
diff options
context:
space:
mode:
authorGregory Nutt <gnutt@nuttx.org>2014-08-06 18:25:42 -0600
committerGregory Nutt <gnutt@nuttx.org>2014-08-06 18:25:42 -0600
commit9cf825b0a7a00f05a5347e03376ecded311de3c0 (patch)
treeaac9afa25d6a86609da3b47da53592b52f3691f4 /nuttx
parente6b48c3e1e8b18943bcd4f36a3fa0c1a79f3687a (diff)
downloadpx4-nuttx-9cf825b0a7a00f05a5347e03376ecded311de3c0.tar.gz
px4-nuttx-9cf825b0a7a00f05a5347e03376ecded311de3c0.tar.bz2
px4-nuttx-9cf825b0a7a00f05a5347e03376ecded311de3c0.zip
Add a new option CONFIG_SCHED_TICKLESS to enable the tickless OS. This is a work in progress but should be relatively safe since the new features are only enabled by this option (Safer but not 100% safe since it does not protect from typos and other dumb errors).
Diffstat (limited to 'nuttx')
-rw-r--r--nuttx/sched/Kconfig27
1 files changed, 26 insertions, 1 deletions
diff --git a/nuttx/sched/Kconfig b/nuttx/sched/Kconfig
index b46e7320b..c1af2c252 100644
--- a/nuttx/sched/Kconfig
+++ b/nuttx/sched/Kconfig
@@ -53,14 +53,37 @@ endif # DISABLE_OS_API
menu "Clocks and Timers"
+config SCHED_TICKLESS
+ bool "Support tick-less OS"
+ default n
+ depends on EXPERIMENTAL
+ ---help---
+ Be default, system time is driven by a periodic timer interrupt. An
+ alternative configurations is a tick-less configuration in which
+ there is no periodic timer interrupt. Instead and interval timer is
+ used to schedule the next OS time event. This option selects that
+ tick-less OS option. If the tick-less OS is selected, then there are
+ additional plaform specific interfaces that must be provided as
+ defined include/nuttx/arch.h
+
config MSEC_PER_TICK
int "Milliseconds per system timer tick"
- default 10
+ default 10 if !SCHED_TICKLESS
+ default 1 if SCHED_TICKLESS
---help---
The default system timer is 100Hz or MSEC_PER_TICK=10. This setting
may be defined to inform NuttX that the processor hardware is providing
system timer interrupts at some interrupt interval other than 10 msec.
+ If SCHED_TICKLESS is selected, then there are no system timer
+ interrupts. In this case, MSEC_PER_TICK does not control any timer
+ rates. Rather, it only determines the resolution of time reported
+ by clock_systimer() and the resolution of times that can be set for
+ certain delays including watchdog timers and delayed work. In these
+ cases it is better to have the MSEC_PER_TICK as low as possible.
+
+if !SCHED_TICKLESS
+
config SYSTEMTICK_EXTCLK
bool "Use external clock"
default n
@@ -72,6 +95,8 @@ config SYSTEMTICK_EXTCLK
to move the scheduling off the processor clock to allow entering low
power states that would disable that clock.
+endif # !SCHED_TICKLESS
+
config SYSTEM_TIME64
bool "64-bit system clock"
default n