From: Uwe B. <bo...@el...> - 2015-01-18 11:37:30
|
>>>>> "Jens" == Jens Bauer <jen...@gp...> writes: Jens> Hi all. On Sun, 18 Jan 2015 01:01:57 +0100, Jens Bauer wrote: >> If I make the following program: >> >> int main() { while(1) { __WFI(); } } Jens> Note: If I change __WFI(); to __NOP(); there are no problems. Jens> -One thing I forgot to say is that I'll usually need to take out Jens> the external crystal, before I attempt to repeat a 'reset halt' Jens> until I get the target to halt. I have the same problems. In principle these problems should be solved by setting the Low Power debug bits similar like proc stm32_default_examine_end {} { # Enable debug during low power modes (uses more power) mww 0xe0042004 0x00000007 ;# DBGMCU_CR = DBG_STANDBY | DBG_STOP | DBG_SLEEP # Stop watchdog counters during halt mww 0xe0042008 0x00001800 ;# DBGMCU_APB1_FZ = DBG_IWDG_STOP | DBG_WWDG_STOP } $_TARGETNAME configure -event examine-end { stm32_default_examine_end } However when some problem with OpenOCD and a STM32 in __WFI mode happens, it was hard to get the setup functional again. At that point I normally switch to blackmagic https://github.com/blacksphere/blackmagic and things work as expected. Probably blackmagic runs some JTAG sequence on the sleeping device in a tight loop and can reconnect, while OpenOCD has to do Host<->debugger transactions for that loop and probably misses some window of opportunity to gain access to the debug target. Bye -- Uwe Bonnes bo...@el... Institut fuer Kernphysik Schlossgartenstrasse 9 64289 Darmstadt --------- Tel. 06151 162516 -------- Fax. 06151 164321 ---------- |