update firmware from SPIFFS esp8266
Posted: Mon May 29, 2023 12:21 pm
Hi to all, Im using esp-01S 1Mb spi memory and I found this link https://arduino.stackexchange.com/questions/77164/flash-esp8266-from-spiffs-filesystem on how to update firmware from SPIFFS. I tried to use this code in the esp-01S using arduino IDE 1.8.19 (I upload to SPIFFS the Blink binary and used this code to flash de memory of the ESP-01S).
Checking the serial terminal I read a lot of garbage and I see this part:
and the esp-01S doesn't do anything else. A few questions:
1)This is possible with the esp-01S?
2)why this code doesn't work with the esp-01S?
3)Why this sentences uint32_t maxSketchSpace = (ESP.getFreeSketchSpace() - 0x1000) & 0xFFFFF000;?
maxSketch return the size of the skecth but don't understand 0x1000 and 0xFFFFF000. Those a flash sectors? How can I know where to flash the new binary?
4)Is there an Update.h file that I can use withoout using other libraries to be able to update firmware on esp-01s?
Thanks
Gaston
Checking the serial terminal I read a lot of garbage and I see this part:
Code: Select all
Fatal exception %d
(LoadStoreErrorCause):
):
orCause):
egeCause):
egeCause):
x%08x, excvaddr=0x%08x, depc=0x%08x
e %d
phy ver: %d_%d, pp ver: %d.%d
time7:%08X
err1,exceed max time value
time2:%08X
MBER IS BIGGER THAN 10
test already passed.
warn: want to erase error sec %d!
error magic!
enter deep sleep
gw:%d.%d.%d.%d
heap : 0x%x ~ 0x%x, len: %d
null country
25Q32C status idx %d
QIO INIT ERR!!
GD25Q32C Config Qio Mode Fail
)
%d,
x, bbrx1=0x%x, bbrx2=0x%x, tdc:%d,%d
%d
dbp:%d, %x, %d, %d, %d, %d
or_accum, %d, tot_p,%d, coatt,%d, att,%d, rf_g,%x, txq_rate,%d, chan,%d, rate_att,%d
orrect_v,%d, error_accum, %d, tot_p,%d, coatt,%d, att,%d, rf_g,%x, txq_rate,%d, chan,%d, rate_att,%d
out=%d
tal_pwr=%d, %d-%d,
x
, cause: %d
pm_flash_read err
mode.c
fpm_err,flash_tmp alloc fail
enalbe
==dl
(%02x:%02x:%02x:%02x:%02x:%02x)
ap freq jump0 to %d
.c
::
ieee80211_sta.c
onnect after 1s
atus to disassoc
max connection!
VENDOR ACTION: len error step1: %d
VENDOR ACTION: type dismatch %d
232R
⸮
R: %s (error %d)
): could not obtain pcb
wpa_auth.c
wpa_auth_ie.c
dhcp client start...
0⸮!@core_esp8266_main.cpp
8x %c
arssl
sp: %08x end: %08x offset: %04x
%08x epc3=0x%08x excvaddr=0x%08x depc=0x%08x
ic %S:%d %S
t std::function<bool()>&, uint32_t, const std::function<bool()>&)
and the esp-01S doesn't do anything else. A few questions:
1)This is possible with the esp-01S?
2)why this code doesn't work with the esp-01S?
3)Why this sentences uint32_t maxSketchSpace = (ESP.getFreeSketchSpace() - 0x1000) & 0xFFFFF000;?
maxSketch return the size of the skecth but don't understand 0x1000 and 0xFFFFF000. Those a flash sectors? How can I know where to flash the new binary?
4)Is there an Update.h file that I can use withoout using other libraries to be able to update firmware on esp-01s?
Thanks
Gaston