[riot-devel] [stm32l1] [lpm_arch] Hard Fault after wake-up

Anon Anonymous anon1644072 at gmail.com
Thu Aug 4 16:54:16 CEST 2016


Hello everyone!

I have started to introducing a support of Low Power Mode into current
STM32L1 code base and I faced a problem which is hard to resolve alone with
my current experience level at the RIOT.

Firstly, I have implemented some low power modes in corresponding
lpm_arch.c:
https://github.com/Cr0s/RIOT/blob/stm32l1-lpm/cpu/stm32l1/lpm_arch.c

The code seems to be correct just because I took corresponding code pieces
from the SPL's stm32l1xx_pwr.c source file.

After that I created a small application to test:
1. Low Power Mode entrance
2. RTC wake-up by alarm
3. Measure actual power consumption

https://github.com/Cr0s/RIOT/blob/stm32l1-lpm/tests/lpm_test/main.c

And there's a issue that I faced: after entering SLEEP mode and when MCU is
woken up by the RTC alarm the HardFault condition happens immediately and
no other instruction after _WFI() seems to be executed.

After HardFault thanks to DEVELHELP flag I can observe the HardFault
handler message:

Context before hardfault:
>    r0: 0x20000c04
>    r1: 0x0000000a
>    r2: 0xe000ed00
>    r3: 0x00000010
>   r12: 0x00000000
>    lr: 0x08002027
>    pc: 0x20000c04
>   psr: 0x20000044
>
> FSR/FAR:
>  CFSR: 0x00040000
>  HFSR: 0x40000000
>  DFSR: 0x00000000
>  AFSR: 0x00000000
> Misc
> EXC_RET: 0xfffffffd
> Attempting to reconstruct state for debugging...
> In GDB:
>   set $pc=0x20000c04
>   frame 0
>   bt
>
> ISR stack overflowed by at least 80 bytes.
>

So the only idea that it gives is that I should inspect CFSR/HFSR registers
to see which condition leads to the HF.

I'm asking about any idea to resolve this issue: what to check first, which
conditions I should check before and after entering into the LPM, etc.

Any help and response is much appreciated!

Best regards,
Anon
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.riot-os.org/pipermail/devel/attachments/20160804/e1f91dd7/attachment.html>


More information about the devel mailing list