diff options
-rw-r--r-- | ports/ARMCM3/chcore.c | 4 | ||||
-rw-r--r-- | ports/ARMCM3/chcore.h | 1 | ||||
-rw-r--r-- | readme.txt | 5 |
3 files changed, 9 insertions, 1 deletions
diff --git a/ports/ARMCM3/chcore.c b/ports/ARMCM3/chcore.c index 199c71fd9..b9c7ce39a 100644 --- a/ports/ARMCM3/chcore.c +++ b/ports/ARMCM3/chcore.c @@ -27,7 +27,9 @@ __attribute__((weak)) void _IdleThread(void *p) { while (TRUE) { -// asm volatile ("wfi"); +#if ENABLE_WFI_IDLE != 0 + asm volatile ("wfi"); +#endif } } diff --git a/ports/ARMCM3/chcore.h b/ports/ARMCM3/chcore.h index 17b9e5b0b..1e451dfc7 100644 --- a/ports/ARMCM3/chcore.h +++ b/ports/ARMCM3/chcore.h @@ -29,6 +29,7 @@ typedef void *regarm; */ #define BASEPRI_USER 0 /* User level BASEPRI, 0 = disabled. */ #define BASEPRI_KERNEL 0x10 /* BASEPRI level within kernel lock. */ +#define ENABLE_WFI_IDLE 0 /* Enables the use of the WFI ins. */ /* * Interrupt saved context, empty in this architecture. diff --git a/readme.txt b/readme.txt index dc89f5fe6..d63d462f8 100644 --- a/readme.txt +++ b/readme.txt @@ -91,6 +91,11 @@ Win32-MinGW - ChibiOS/RT simulator and demo into a WIN32 process, performance.
- Added a test_terminate_threads() function to the test framework.
- Made the Cortex-M3 port preemption code more readable.
+- Added a ENABLE_WFI_IDLE option to the chcore.h file in the Cortex-M3 port,
+ setting this option to 1 enables the kernel to enter a low power mode when
+ executing the idle thread. Be careful however, this option can be not
+ compatible with some JTAB probes, it is better to enable it only on final
+ builds and not when debugging.
*** 0.6.8 ***
- FIX: Fixed a bug in the priority inheritance mechanism, the bug was only a
|