mirror of
https://github.com/OneOfEleven/uv-k5-firmware-custom.git
synced 2025-04-27 22:01:26 +03:00
feature: enable wfi
This commit is contained in:
parent
4153389778
commit
5ba5a887a5
@ -343,6 +343,23 @@
|
||||
#define SYSCON_CHIP_ID3_ADDR (SYSCON_BASE_ADDR + 0x008CU)
|
||||
#define SYSCON_CHIP_ID3 (*(volatile uint32_t *)SYSCON_CHIP_ID3_ADDR)
|
||||
|
||||
#define SYSCON_REGISTER_ADDR (SYSCON_BASE_ADDR + 0x0100U)
|
||||
#define SYSCON_REGISTER (*(volatile uint32_t *)SYSCON_REGISTER_ADDR)
|
||||
|
||||
#define SYSCON_REGISTER_SLEEPONEXIT_SHIFT 1
|
||||
#define SYSCON_REGISTER_SLEEPONEXIT_WIDTH 1
|
||||
#define SYSCON_REGISTER_SLEEPONEXIT_MASK (((1U << SYSCON_REGISTER_SLEEPONEXIT_WIDTH) - 1U) << SYSCON_REGISTER_SLEEPONEXIT_SHIFT)
|
||||
#define SYSCON_REGISTER_SLEEPONEXIT_VALUE_ENABLE 1U
|
||||
#define SYSCON_REGISTER_SLEEPONEXIT_BITS_ENABLE (SYSCON_REGISTER_SLEEPONEXIT_VALUE_ENABLE << SYSCON_REGISTER_SLEEPONEXIT_SHIFT)
|
||||
#define SYSCON_REGISTER_SLEEPONEXIT_VALUE_DISABLE 0U
|
||||
#define SYSCON_REGISTER_SLEEPONEXIT_BITS_DISABLE (SYSCON_REGISTER_SLEEPONEXIT_VALUE_DISABLE << SYSCON_REGISTER_SLEEPONEXIT_SHIFT)
|
||||
|
||||
#define SYSCON_REGISTER_SLEEPDEEP_SHIFT 2
|
||||
#define SYSCON_REGISTER_SLEEPDEEP_WIDTH 1
|
||||
#define SYSCON_REGISTER_SLEEPDEEP_MASK (((1U << SYSCON_REGISTER_SLEEPDEEP_WIDTH) - 1U) << SYSCON_REGISTER_SLEEPDEEP_SHIFT)
|
||||
#define SYSCON_REGISTER_SLEEPDEEP_VALUE_ENABLE 1U
|
||||
#define SYSCON_REGISTER_SLEEPDEEP_BITS_ENABLE (SYSCON_REGISTER_SLEEPDEEP_VALUE_ENABLE << SYSCON_REGISTER_SLEEPDEEP_SHIFT)
|
||||
#define SYSCON_REGISTER_SLEEPDEEP_VALUE_DISABLE 0U
|
||||
#define SYSCON_REGISTER_SLEEPDEEP_BITS_DISABLE (SYSCON_REGISTER_SLEEPDEEP_VALUE_DISABLE << SYSCON_REGISTER_SLEEPDEEP_SHIFT)
|
||||
|
||||
#endif
|
||||
|
||||
|
@ -176,3 +176,4 @@ CHIP_ID1 = 0x0084
|
||||
CHIP_ID2 = 0x0088
|
||||
CHIP_ID3 = 0x008C
|
||||
|
||||
SCR = 0x0100
|
||||
|
9
main.c
9
main.c
@ -236,8 +236,17 @@ void Main(void)
|
||||
#endif
|
||||
}
|
||||
|
||||
// Everything is initialised, set SLEEP* bits
|
||||
SYSCON_REGISTER |= SYSCON_REGISTER_SLEEPONEXIT_BITS_ENABLE;
|
||||
SYSCON_REGISTER |= SYSCON_REGISTER_SLEEPDEEP_BITS_ENABLE;
|
||||
|
||||
while (1)
|
||||
{
|
||||
if (!g_next_time_slice && !g_next_time_slice_500ms)
|
||||
// Idle condition, hint the MCU to sleep
|
||||
// CMSIS suggests GCC reorders memory and is undesired
|
||||
__asm volatile ("wfi":::"memory");
|
||||
|
||||
APP_process();
|
||||
|
||||
if (g_next_time_slice)
|
||||
|
Loading…
x
Reference in New Issue
Block a user