aboutsummaryrefslogtreecommitdiffstats
path: root/src/pru/main.c
diff options
context:
space:
mode:
authorKevin O'Connor <kevin@koconnor.net>2017-08-07 12:33:08 -0400
committerKevin O'Connor <kevin@koconnor.net>2017-08-08 00:27:28 -0400
commit2c272f99a3fac49d8acd4b49a1aa3302225f17b8 (patch)
tree07998c722ed20fa812de26e1941daf57a030271f /src/pru/main.c
parenta9982beacf184ccdc4bf1221852c900b0809537d (diff)
downloadkutter-2c272f99a3fac49d8acd4b49a1aa3302225f17b8.tar.gz
kutter-2c272f99a3fac49d8acd4b49a1aa3302225f17b8.tar.xz
kutter-2c272f99a3fac49d8acd4b49a1aa3302225f17b8.zip
sched: Implement generic sleep mechanism based on tasks pending
Track when tasks are pending and spin in irq_wait() when no tasks are pending. This improves the mechanism for sleeping the processor - it's simpler for the board specific code and it reduces the possibility of the processor sleeping when tasks are busy. Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
Diffstat (limited to 'src/pru/main.c')
-rw-r--r--src/pru/main.c8
1 files changed, 1 insertions, 7 deletions
diff --git a/src/pru/main.c b/src/pru/main.c
index 04d440df..45eb8274 100644
--- a/src/pru/main.c
+++ b/src/pru/main.c
@@ -49,6 +49,7 @@ void
irq_wait(void)
{
asm("slp 1");
+ irq_poll();
}
// Set the next timer wake up time
@@ -58,13 +59,6 @@ timer_set(uint32_t value)
CT_IEP.TMR_CMP0 = value;
}
-// Return the next scheduled wake up time
-uint32_t
-timer_get_next(void)
-{
- return CT_IEP.TMR_CMP0;
-}
-
// Return the current time (in absolute clock ticks).
uint32_t
timer_read_time(void)