STM32 option to disable sleep to prevent disconnection of debugger

This commit is contained in:
Gregory Nutt 2013-05-07 14:10:34 -06:00
parent 5441512bd2
commit 24368a6581
3 changed files with 16 additions and 0 deletions

View File

@ -4683,3 +4683,8 @@
* arch/arm/src/kinetis/kinetis_pin.c and arch/arm/src/kinetis/kinetis_internal.h:
The Kinetis GPIO logic had some of the same issues as did the
Kinetis L (2013-5-6).
* arch/arm/src/stm32/stm32_idle.c: Add an option to conditionally disable
the "wfi" sleep mode. This is needed with certain JTAG debuggers to
to prevent the debug session from begin disconnected. From Ken Pettit
(2013-5-7).

View File

@ -861,6 +861,15 @@ config STM32_JTAG_SW_ENABLE
endchoice
config STM32_DISABLE_IDLE_SLEEP_DURING_DEBUG
bool "Disable IDLE Sleep (WFI) in debug mode"
default n
---help---
In debug configuration, disables the WFI instruction in the IDLE loop
to prevent the JTAG from disconnecting. With some JTAG debuggers, such
as the ST-LINK2 with OpenOCD, if the ARM is put to sleep via the WFI
instruction, the debugger will disconnect, terminating the debug session.
config STM32_FORCEPOWER
bool "Force power"
default n

View File

@ -202,10 +202,12 @@ void up_idle(void)
*/
#if !defined(CONFIG_STM32_CONNECTIVITYLINE) || !defined(CONFIG_STM32_ETHMAC)
#if !(defined(CONFIG_DEBUG_SYMBOLS) && defined(CONFIG_STM32_DISABLE_IDLE_SLEEP_DURING_DEBUG))
BEGIN_IDLE();
asm("WFI");
END_IDLE();
#endif
#endif
#endif
}