SuperHouse / esp-open-rtos

Open source FreeRTOS-based ESP8266 software framework
BSD 3-Clause "New" or "Revised" License
1.52k stars 491 forks source link

ESP8266 does not wake up after deep sleep #769

Open morcillo opened 3 years ago

morcillo commented 3 years ago

Hello,

I have a problem that is a little bizarre. I have been using a piece of code that wakes up, does what it needs to do, and then goes to sleep for 1 hour.

This used to work perfectly until I had to move PCs and packed everything into a VM (could not use git or anything). Now I am running the same code on my boards but it does not wake up anymore.

After a little debugging I noticed that it rebooted itself correctly after a WDT reset. I could use the sdk_system_restart function and it works correctly (after a power cycle....esptool v1.2), but it doesn't work for sdk_system_deep_sleep. I did a power cycle and nothing, it runs smoothly the first time but it does not come back to life. I did another power cycle and monitored the serial output at 74468 baud to check what was the microcontroller's output during boot time.

When booting the first time it outputs the following:

ets Jan 8 2013,rst cause:2, boot mode:(3,6)

load 0x40100000, len 2292, room 16 tail 4 chksum 0x57 load 0x3ffe8000, len 772, room 4 tail 0 chksum 0x0b csum 0x0b

rBoot v1.4.0 - richardaburton@gmail.com Flash Size: 32 Mbit Flash Mode: QIO Flash Speed: 40 MHz rBoot Option: Big flash rBoot Option: RTC data

Booting rom 0.

And after it runs the deep sleep command, it runs the following boot log:

ets Jan 8 2013,rst cause:5, boot mode:(3,6)

ets_main.c

It seems to me that it's jumping to an incorrect address when booting. This might mean that I'm either using the wrong binary files (config_blank, rboot, etc) or I'm loading them in the wrong addresses

esptool.exe -p COM22 --baud 1000000 write_flash -fs 32m -fm qio -ff 40m 0x0 rboot.bin 0x1000 blank_config.bin 0x2000 myprog.bin 0x300000 spiffs.bin