From 2c272f99a3fac49d8acd4b49a1aa3302225f17b8 Mon Sep 17 00:00:00 2001 From: Kevin O'Connor Date: Mon, 7 Aug 2017 12:33:08 -0400 Subject: 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 --- src/pru/main.c | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-) (limited to 'src/pru') 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) -- cgit v1.2.3-70-g09d2