Skip to content

Commit ced6afe

Browse files
authored
arch: Added cpu idle fnctions for dspic (zephyrproject-rtos#34)
Added implementations for arch_cpu_idle and arch_cpu_atomic_idle functions Signed-off-by: Adhil Xavier <[email protected]>
1 parent 02f0e0d commit ced6afe

File tree

3 files changed

+8
-5
lines changed

3 files changed

+8
-5
lines changed

arch/Kconfig

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -181,8 +181,6 @@ config DSPIC
181181
select ATOMIC_OPERATIONS_C
182182
select ARCH_HAS_VECTOR_TABLE_RELOCATION
183183
select CPU_HAS_ICACHE
184-
select ARCH_HAS_CUSTOM_CPU_IDLE
185-
select ARCH_HAS_CUSTOM_CPU_ATOMIC_IDLE
186184
select CACHE_MANAGEMENT
187185
select TICKLESS_CAPABLE
188186
help

arch/dspic/core/cpu_idle.c

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,17 +6,24 @@
66
#include <zephyr/irq.h>
77
#include <zephyr/tracing/tracing.h>
88
#include <zephyr/arch/cpu.h>
9+
#include <xc.h>
910

1011
#ifndef CONFIG_ARCH_HAS_CUSTOM_CPU_IDLE
1112
void arch_cpu_idle(void)
1213
{
14+
__builtin_disable_interrupts();
15+
Idle();
16+
__builtin_enable_interrupts();
1317
}
1418
#endif
1519

1620
#ifndef CONFIG_ARCH_HAS_CUSTOM_CPU_ATOMIC_IDLE
1721
void arch_cpu_atomic_idle(unsigned int key)
1822
{
19-
(void)key;
23+
__builtin_disable_interrupts();
24+
Idle();
25+
arch_irq_unlock(key);
26+
__builtin_enable_interrupts();
2027
}
2128
#endif
2229

include/zephyr/kernel.h

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6347,9 +6347,7 @@ __syscall int k_poll_signal_raise(struct k_poll_signal *sig, int result);
63476347
*/
63486348
static inline void k_cpu_idle(void)
63496349
{
6350-
#ifdef TO_BE_IMPLEMENTED_LATER
63516350
arch_cpu_idle();
6352-
#endif
63536351
}
63546352

63556353
/**

0 commit comments

Comments
 (0)