Skip to content

Commit 5bb3e19

Browse files
authored
Merge branch 'master' into poc-cache-config
2 parents a6bb5a1 + 2c435b1 commit 5bb3e19

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

56 files changed

+1263
-570
lines changed

boards.txt

Lines changed: 193 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6947,6 +6947,199 @@ espectro.menu.baud.921600.upload.speed=921600
69476947
espectro.menu.baud.3000000=3000000
69486948
espectro.menu.baud.3000000.upload.speed=3000000
69496949

6950+
##############################################################
6951+
eduinowifi.name=Schirmilabs Eduino WiFi
6952+
eduinowifi.build.board=ESP8266_SCHIRMILABS_EDUINO_WIFI
6953+
eduinowifi.build.variant=eduinowifi
6954+
eduinowifi.upload.tool=esptool
6955+
eduinowifi.upload.maximum_data_size=81920
6956+
eduinowifi.upload.wait_for_upload_port=true
6957+
eduinowifi.upload.erase_cmd=
6958+
eduinowifi.serial.disableDTR=true
6959+
eduinowifi.serial.disableRTS=true
6960+
eduinowifi.build.mcu=esp8266
6961+
eduinowifi.build.core=esp8266
6962+
eduinowifi.build.spiffs_pagesize=256
6963+
eduinowifi.build.debug_port=
6964+
eduinowifi.build.debug_level=
6965+
eduinowifi.menu.xtal.80=80 MHz
6966+
eduinowifi.menu.xtal.80.build.f_cpu=80000000L
6967+
eduinowifi.menu.xtal.160=160 MHz
6968+
eduinowifi.menu.xtal.160.build.f_cpu=160000000L
6969+
eduinowifi.menu.vt.flash=Flash
6970+
eduinowifi.menu.vt.flash.build.vtable_flags=-DVTABLES_IN_FLASH
6971+
eduinowifi.menu.vt.heap=Heap
6972+
eduinowifi.menu.vt.heap.build.vtable_flags=-DVTABLES_IN_DRAM
6973+
eduinowifi.menu.vt.iram=IRAM
6974+
eduinowifi.menu.vt.iram.build.vtable_flags=-DVTABLES_IN_IRAM
6975+
eduinowifi.menu.exception.legacy=Legacy (new can return nullptr)
6976+
eduinowifi.menu.exception.legacy.build.exception_flags=-fno-exceptions
6977+
eduinowifi.menu.exception.legacy.build.stdcpp_lib=-lstdc++
6978+
eduinowifi.menu.exception.disabled=Disabled (new can abort)
6979+
eduinowifi.menu.exception.disabled.build.exception_flags=-fno-exceptions -DNEW_OOM_ABORT
6980+
eduinowifi.menu.exception.disabled.build.stdcpp_lib=-lstdc++
6981+
eduinowifi.menu.exception.enabled=Enabled
6982+
eduinowifi.menu.exception.enabled.build.exception_flags=-fexceptions
6983+
eduinowifi.menu.exception.enabled.build.stdcpp_lib=-lstdc++-exc
6984+
eduinowifi.menu.ssl.all=All SSL ciphers (most compatible)
6985+
eduinowifi.menu.ssl.all.build.sslflags=
6986+
eduinowifi.menu.ssl.basic=Basic SSL ciphers (lower ROM use)
6987+
eduinowifi.menu.ssl.basic.build.sslflags=-DBEARSSL_SSL_BASIC
6988+
eduinowifi.upload.resetmethod=--before default_reset --after hard_reset
6989+
eduinowifi.build.flash_mode=dio
6990+
eduinowifi.build.flash_flags=-DFLASHMODE_DIO
6991+
eduinowifi.build.flash_freq=40
6992+
eduinowifi.menu.eesz.4M2M=4MB (FS:2MB OTA:~1019KB)
6993+
eduinowifi.menu.eesz.4M2M.build.flash_size=4M
6994+
eduinowifi.menu.eesz.4M2M.build.flash_size_bytes=0x400000
6995+
eduinowifi.menu.eesz.4M2M.build.flash_ld=eagle.flash.4m2m.ld
6996+
eduinowifi.menu.eesz.4M2M.build.spiffs_pagesize=256
6997+
eduinowifi.menu.eesz.4M2M.upload.maximum_size=1044464
6998+
eduinowifi.menu.eesz.4M2M.build.rfcal_addr=0x3FC000
6999+
eduinowifi.menu.eesz.4M2M.build.spiffs_start=0x200000
7000+
eduinowifi.menu.eesz.4M2M.build.spiffs_end=0x3FA000
7001+
eduinowifi.menu.eesz.4M2M.build.spiffs_blocksize=8192
7002+
eduinowifi.menu.eesz.4M3M=4MB (FS:3MB OTA:~512KB)
7003+
eduinowifi.menu.eesz.4M3M.build.flash_size=4M
7004+
eduinowifi.menu.eesz.4M3M.build.flash_size_bytes=0x400000
7005+
eduinowifi.menu.eesz.4M3M.build.flash_ld=eagle.flash.4m3m.ld
7006+
eduinowifi.menu.eesz.4M3M.build.spiffs_pagesize=256
7007+
eduinowifi.menu.eesz.4M3M.upload.maximum_size=1044464
7008+
eduinowifi.menu.eesz.4M3M.build.rfcal_addr=0x3FC000
7009+
eduinowifi.menu.eesz.4M3M.build.spiffs_start=0x100000
7010+
eduinowifi.menu.eesz.4M3M.build.spiffs_end=0x3FA000
7011+
eduinowifi.menu.eesz.4M3M.build.spiffs_blocksize=8192
7012+
eduinowifi.menu.eesz.4M1M=4MB (FS:1MB OTA:~1019KB)
7013+
eduinowifi.menu.eesz.4M1M.build.flash_size=4M
7014+
eduinowifi.menu.eesz.4M1M.build.flash_size_bytes=0x400000
7015+
eduinowifi.menu.eesz.4M1M.build.flash_ld=eagle.flash.4m1m.ld
7016+
eduinowifi.menu.eesz.4M1M.build.spiffs_pagesize=256
7017+
eduinowifi.menu.eesz.4M1M.upload.maximum_size=1044464
7018+
eduinowifi.menu.eesz.4M1M.build.rfcal_addr=0x3FC000
7019+
eduinowifi.menu.eesz.4M1M.build.spiffs_start=0x300000
7020+
eduinowifi.menu.eesz.4M1M.build.spiffs_end=0x3FA000
7021+
eduinowifi.menu.eesz.4M1M.build.spiffs_blocksize=8192
7022+
eduinowifi.menu.eesz.4M=4MB (FS:none OTA:~1019KB)
7023+
eduinowifi.menu.eesz.4M.build.flash_size=4M
7024+
eduinowifi.menu.eesz.4M.build.flash_size_bytes=0x400000
7025+
eduinowifi.menu.eesz.4M.build.flash_ld=eagle.flash.4m.ld
7026+
eduinowifi.menu.eesz.4M.build.spiffs_pagesize=256
7027+
eduinowifi.menu.eesz.4M.upload.maximum_size=1044464
7028+
eduinowifi.menu.eesz.4M.build.rfcal_addr=0x3FC000
7029+
eduinowifi.menu.ip.lm2f=v2 Lower Memory
7030+
eduinowifi.menu.ip.lm2f.build.lwip_include=lwip2/include
7031+
eduinowifi.menu.ip.lm2f.build.lwip_lib=-llwip2-536-feat
7032+
eduinowifi.menu.ip.lm2f.build.lwip_flags=-DLWIP_OPEN_SRC -DTCP_MSS=536 -DLWIP_FEATURES=1 -DLWIP_IPV6=0
7033+
eduinowifi.menu.ip.hb2f=v2 Higher Bandwidth
7034+
eduinowifi.menu.ip.hb2f.build.lwip_include=lwip2/include
7035+
eduinowifi.menu.ip.hb2f.build.lwip_lib=-llwip2-1460-feat
7036+
eduinowifi.menu.ip.hb2f.build.lwip_flags=-DLWIP_OPEN_SRC -DTCP_MSS=1460 -DLWIP_FEATURES=1 -DLWIP_IPV6=0
7037+
eduinowifi.menu.ip.lm2n=v2 Lower Memory (no features)
7038+
eduinowifi.menu.ip.lm2n.build.lwip_include=lwip2/include
7039+
eduinowifi.menu.ip.lm2n.build.lwip_lib=-llwip2-536
7040+
eduinowifi.menu.ip.lm2n.build.lwip_flags=-DLWIP_OPEN_SRC -DTCP_MSS=536 -DLWIP_FEATURES=0 -DLWIP_IPV6=0
7041+
eduinowifi.menu.ip.hb2n=v2 Higher Bandwidth (no features)
7042+
eduinowifi.menu.ip.hb2n.build.lwip_include=lwip2/include
7043+
eduinowifi.menu.ip.hb2n.build.lwip_lib=-llwip2-1460
7044+
eduinowifi.menu.ip.hb2n.build.lwip_flags=-DLWIP_OPEN_SRC -DTCP_MSS=1460 -DLWIP_FEATURES=0 -DLWIP_IPV6=0
7045+
eduinowifi.menu.ip.lm6f=v2 IPv6 Lower Memory
7046+
eduinowifi.menu.ip.lm6f.build.lwip_include=lwip2/include
7047+
eduinowifi.menu.ip.lm6f.build.lwip_lib=-llwip6-536-feat
7048+
eduinowifi.menu.ip.lm6f.build.lwip_flags=-DLWIP_OPEN_SRC -DTCP_MSS=536 -DLWIP_FEATURES=1 -DLWIP_IPV6=1
7049+
eduinowifi.menu.ip.hb6f=v2 IPv6 Higher Bandwidth
7050+
eduinowifi.menu.ip.hb6f.build.lwip_include=lwip2/include
7051+
eduinowifi.menu.ip.hb6f.build.lwip_lib=-llwip6-1460-feat
7052+
eduinowifi.menu.ip.hb6f.build.lwip_flags=-DLWIP_OPEN_SRC -DTCP_MSS=1460 -DLWIP_FEATURES=1 -DLWIP_IPV6=1
7053+
eduinowifi.menu.ip.hb1=v1.4 Higher Bandwidth
7054+
eduinowifi.menu.ip.hb1.build.lwip_lib=-llwip_gcc
7055+
eduinowifi.menu.ip.hb1.build.lwip_flags=-DLWIP_OPEN_SRC
7056+
eduinowifi.menu.ip.src=v1.4 Compile from source
7057+
eduinowifi.menu.ip.src.build.lwip_lib=-llwip_src
7058+
eduinowifi.menu.ip.src.build.lwip_flags=-DLWIP_OPEN_SRC
7059+
eduinowifi.menu.ip.src.recipe.hooks.sketch.prebuild.1.pattern=make -C "{runtime.platform.path}/tools/sdk/lwip/src" install TOOLS_PATH="{runtime.tools.xtensa-lx106-elf-gcc.path}/bin/xtensa-lx106-elf-"
7060+
eduinowifi.menu.dbg.Disabled=Disabled
7061+
eduinowifi.menu.dbg.Disabled.build.debug_port=
7062+
eduinowifi.menu.dbg.Serial=Serial
7063+
eduinowifi.menu.dbg.Serial.build.debug_port=-DDEBUG_ESP_PORT=Serial
7064+
eduinowifi.menu.dbg.Serial1=Serial1
7065+
eduinowifi.menu.dbg.Serial1.build.debug_port=-DDEBUG_ESP_PORT=Serial1
7066+
eduinowifi.menu.lvl.None____=None
7067+
eduinowifi.menu.lvl.None____.build.debug_level=
7068+
eduinowifi.menu.lvl.SSL=SSL
7069+
eduinowifi.menu.lvl.SSL.build.debug_level= -DDEBUG_ESP_SSL
7070+
eduinowifi.menu.lvl.TLS_MEM=TLS_MEM
7071+
eduinowifi.menu.lvl.TLS_MEM.build.debug_level= -DDEBUG_ESP_TLS_MEM
7072+
eduinowifi.menu.lvl.HTTP_CLIENT=HTTP_CLIENT
7073+
eduinowifi.menu.lvl.HTTP_CLIENT.build.debug_level= -DDEBUG_ESP_HTTP_CLIENT
7074+
eduinowifi.menu.lvl.HTTP_SERVER=HTTP_SERVER
7075+
eduinowifi.menu.lvl.HTTP_SERVER.build.debug_level= -DDEBUG_ESP_HTTP_SERVER
7076+
eduinowifi.menu.lvl.SSLTLS_MEM=SSL+TLS_MEM
7077+
eduinowifi.menu.lvl.SSLTLS_MEM.build.debug_level= -DDEBUG_ESP_SSL -DDEBUG_ESP_TLS_MEM
7078+
eduinowifi.menu.lvl.SSLHTTP_CLIENT=SSL+HTTP_CLIENT
7079+
eduinowifi.menu.lvl.SSLHTTP_CLIENT.build.debug_level= -DDEBUG_ESP_SSL -DDEBUG_ESP_HTTP_CLIENT
7080+
eduinowifi.menu.lvl.SSLHTTP_SERVER=SSL+HTTP_SERVER
7081+
eduinowifi.menu.lvl.SSLHTTP_SERVER.build.debug_level= -DDEBUG_ESP_SSL -DDEBUG_ESP_HTTP_SERVER
7082+
eduinowifi.menu.lvl.TLS_MEMHTTP_CLIENT=TLS_MEM+HTTP_CLIENT
7083+
eduinowifi.menu.lvl.TLS_MEMHTTP_CLIENT.build.debug_level= -DDEBUG_ESP_TLS_MEM -DDEBUG_ESP_HTTP_CLIENT
7084+
eduinowifi.menu.lvl.TLS_MEMHTTP_SERVER=TLS_MEM+HTTP_SERVER
7085+
eduinowifi.menu.lvl.TLS_MEMHTTP_SERVER.build.debug_level= -DDEBUG_ESP_TLS_MEM -DDEBUG_ESP_HTTP_SERVER
7086+
eduinowifi.menu.lvl.HTTP_CLIENTHTTP_SERVER=HTTP_CLIENT+HTTP_SERVER
7087+
eduinowifi.menu.lvl.HTTP_CLIENTHTTP_SERVER.build.debug_level= -DDEBUG_ESP_HTTP_CLIENT -DDEBUG_ESP_HTTP_SERVER
7088+
eduinowifi.menu.lvl.SSLTLS_MEMHTTP_CLIENT=SSL+TLS_MEM+HTTP_CLIENT
7089+
eduinowifi.menu.lvl.SSLTLS_MEMHTTP_CLIENT.build.debug_level= -DDEBUG_ESP_SSL -DDEBUG_ESP_TLS_MEM -DDEBUG_ESP_HTTP_CLIENT
7090+
eduinowifi.menu.lvl.SSLTLS_MEMHTTP_SERVER=SSL+TLS_MEM+HTTP_SERVER
7091+
eduinowifi.menu.lvl.SSLTLS_MEMHTTP_SERVER.build.debug_level= -DDEBUG_ESP_SSL -DDEBUG_ESP_TLS_MEM -DDEBUG_ESP_HTTP_SERVER
7092+
eduinowifi.menu.lvl.SSLHTTP_CLIENTHTTP_SERVER=SSL+HTTP_CLIENT+HTTP_SERVER
7093+
eduinowifi.menu.lvl.SSLHTTP_CLIENTHTTP_SERVER.build.debug_level= -DDEBUG_ESP_SSL -DDEBUG_ESP_HTTP_CLIENT -DDEBUG_ESP_HTTP_SERVER
7094+
eduinowifi.menu.lvl.TLS_MEMHTTP_CLIENTHTTP_SERVER=TLS_MEM+HTTP_CLIENT+HTTP_SERVER
7095+
eduinowifi.menu.lvl.TLS_MEMHTTP_CLIENTHTTP_SERVER.build.debug_level= -DDEBUG_ESP_TLS_MEM -DDEBUG_ESP_HTTP_CLIENT -DDEBUG_ESP_HTTP_SERVER
7096+
eduinowifi.menu.lvl.SSLTLS_MEMHTTP_CLIENTHTTP_SERVER=SSL+TLS_MEM+HTTP_CLIENT+HTTP_SERVER
7097+
eduinowifi.menu.lvl.SSLTLS_MEMHTTP_CLIENTHTTP_SERVER.build.debug_level= -DDEBUG_ESP_SSL -DDEBUG_ESP_TLS_MEM -DDEBUG_ESP_HTTP_CLIENT -DDEBUG_ESP_HTTP_SERVER
7098+
eduinowifi.menu.lvl.CORE=CORE
7099+
eduinowifi.menu.lvl.CORE.build.debug_level= -DDEBUG_ESP_CORE
7100+
eduinowifi.menu.lvl.WIFI=WIFI
7101+
eduinowifi.menu.lvl.WIFI.build.debug_level= -DDEBUG_ESP_WIFI
7102+
eduinowifi.menu.lvl.HTTP_UPDATE=HTTP_UPDATE
7103+
eduinowifi.menu.lvl.HTTP_UPDATE.build.debug_level= -DDEBUG_ESP_HTTP_UPDATE
7104+
eduinowifi.menu.lvl.UPDATER=UPDATER
7105+
eduinowifi.menu.lvl.UPDATER.build.debug_level= -DDEBUG_ESP_UPDATER
7106+
eduinowifi.menu.lvl.OTA=OTA
7107+
eduinowifi.menu.lvl.OTA.build.debug_level= -DDEBUG_ESP_OTA
7108+
eduinowifi.menu.lvl.OOM=OOM
7109+
eduinowifi.menu.lvl.OOM.build.debug_level= -DDEBUG_ESP_OOM
7110+
eduinowifi.menu.lvl.MDNS=MDNS
7111+
eduinowifi.menu.lvl.MDNS.build.debug_level= -DDEBUG_ESP_MDNS
7112+
eduinowifi.menu.lvl.COREWIFIHTTP_UPDATEUPDATEROTAOOMMDNS=CORE+WIFI+HTTP_UPDATE+UPDATER+OTA+OOM+MDNS
7113+
eduinowifi.menu.lvl.COREWIFIHTTP_UPDATEUPDATEROTAOOMMDNS.build.debug_level= -DDEBUG_ESP_CORE -DDEBUG_ESP_WIFI -DDEBUG_ESP_HTTP_UPDATE -DDEBUG_ESP_UPDATER -DDEBUG_ESP_OTA -DDEBUG_ESP_OOM -DDEBUG_ESP_MDNS
7114+
eduinowifi.menu.lvl.SSLTLS_MEMHTTP_CLIENTHTTP_SERVERCOREWIFIHTTP_UPDATEUPDATEROTAOOMMDNS=SSL+TLS_MEM+HTTP_CLIENT+HTTP_SERVER+CORE+WIFI+HTTP_UPDATE+UPDATER+OTA+OOM+MDNS
7115+
eduinowifi.menu.lvl.SSLTLS_MEMHTTP_CLIENTHTTP_SERVERCOREWIFIHTTP_UPDATEUPDATEROTAOOMMDNS.build.debug_level= -DDEBUG_ESP_SSL -DDEBUG_ESP_TLS_MEM -DDEBUG_ESP_HTTP_CLIENT -DDEBUG_ESP_HTTP_SERVER -DDEBUG_ESP_CORE -DDEBUG_ESP_WIFI -DDEBUG_ESP_HTTP_UPDATE -DDEBUG_ESP_UPDATER -DDEBUG_ESP_OTA -DDEBUG_ESP_OOM -DDEBUG_ESP_MDNS
7116+
eduinowifi.menu.lvl.NoAssert-NDEBUG=NoAssert-NDEBUG
7117+
eduinowifi.menu.lvl.NoAssert-NDEBUG.build.debug_level= -DNDEBUG
7118+
eduinowifi.menu.wipe.none=Only Sketch
7119+
eduinowifi.menu.wipe.none.upload.erase_cmd=
7120+
eduinowifi.menu.wipe.sdk=Sketch + WiFi Settings
7121+
eduinowifi.menu.wipe.sdk.upload.erase_cmd=erase_region "{build.rfcal_addr}" 0x4000
7122+
eduinowifi.menu.wipe.all=All Flash Contents
7123+
eduinowifi.menu.wipe.all.upload.erase_cmd=erase_flash
7124+
eduinowifi.menu.baud.512000.windows=512000
7125+
eduinowifi.menu.baud.512000.upload.speed=512000
7126+
eduinowifi.menu.baud.57600=57600
7127+
eduinowifi.menu.baud.57600.upload.speed=57600
7128+
eduinowifi.menu.baud.115200=115200
7129+
eduinowifi.menu.baud.115200.upload.speed=115200
7130+
eduinowifi.menu.baud.230400.linux=230400
7131+
eduinowifi.menu.baud.230400.macosx=230400
7132+
eduinowifi.menu.baud.230400.upload.speed=230400
7133+
eduinowifi.menu.baud.256000.windows=256000
7134+
eduinowifi.menu.baud.256000.upload.speed=256000
7135+
eduinowifi.menu.baud.460800.linux=460800
7136+
eduinowifi.menu.baud.460800.macosx=460800
7137+
eduinowifi.menu.baud.460800.upload.speed=460800
7138+
eduinowifi.menu.baud.921600=921600
7139+
eduinowifi.menu.baud.921600.upload.speed=921600
7140+
eduinowifi.menu.baud.3000000=3000000
7141+
eduinowifi.menu.baud.3000000.upload.speed=3000000
7142+
69507143
##############################################################
69517144
sonoff.name=ITEAD Sonoff
69527145
sonoff.build.board=ESP8266_SONOFF_SV

cores/esp8266/Arduino.h

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -204,6 +204,7 @@ void setup(void);
204204
void loop(void);
205205

206206
void yield(void);
207+
207208
void optimistic_yield(uint32_t interval_us);
208209

209210
#define _PORT_GPIO16 1
@@ -285,6 +286,13 @@ void configTime(int timezone, int daylightOffset_sec, const char* server1,
285286
void configTime(const char* tz, const char* server1,
286287
const char* server2 = nullptr, const char* server3 = nullptr);
287288

289+
// esp32 api compatibility
290+
inline void configTzTime(const char* tz, const char* server1,
291+
const char* server2 = nullptr, const char* server3 = nullptr)
292+
{
293+
configTime(tz, server1, server2, server3);
294+
}
295+
288296
#endif // __cplusplus
289297

290298
#include "pins_arduino.h"

cores/esp8266/FS.cpp

Lines changed: 15 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -187,6 +187,13 @@ time_t File::getLastWrite() {
187187
return _p->getLastWrite();
188188
}
189189

190+
time_t File::getCreationTime() {
191+
if (!_p)
192+
return 0;
193+
194+
return _p->getCreationTime();
195+
}
196+
190197
void File::setTimeCallback(time_t (*cb)(void)) {
191198
if (!_p)
192199
return;
@@ -224,6 +231,12 @@ time_t Dir::fileTime() {
224231
return _impl->fileTime();
225232
}
226233

234+
time_t Dir::fileCreationTime() {
235+
if (!_impl)
236+
return 0;
237+
return _impl->fileCreationTime();
238+
}
239+
227240
size_t Dir::fileSize() {
228241
if (!_impl) {
229242
return 0;
@@ -262,17 +275,11 @@ bool Dir::rewind() {
262275
return _impl->rewind();
263276
}
264277

265-
time_t Dir::getLastWrite() {
266-
if (!_impl)
267-
return 0;
268-
269-
return _impl->getLastWrite();
270-
}
271-
272278
void Dir::setTimeCallback(time_t (*cb)(void)) {
273279
if (!_impl)
274280
return;
275281
_impl->setTimeCallback(cb);
282+
timeCallback = cb;
276283
}
277284

278285

@@ -289,6 +296,7 @@ bool FS::begin() {
289296
DEBUGV("#error: FS: no implementation");
290297
return false;
291298
}
299+
_impl->setTimeCallback(timeCallback);
292300
bool ret = _impl->begin();
293301
DEBUGV("%s\n", ret? "": "#error: FS could not start");
294302
return ret;

cores/esp8266/FS.h

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -112,6 +112,7 @@ class File : public Stream
112112
String readString() override;
113113

114114
time_t getLastWrite();
115+
time_t getCreationTime();
115116
void setTimeCallback(time_t (*cb)(void));
116117

117118
protected:
@@ -120,7 +121,6 @@ class File : public Stream
120121
// Arduino SD class emulation
121122
std::shared_ptr<Dir> _fakeDir;
122123
FS *_baseFS;
123-
time_t (*timeCallback)(void) = nullptr;
124124
};
125125

126126
class Dir {
@@ -132,20 +132,19 @@ class Dir {
132132
String fileName();
133133
size_t fileSize();
134134
time_t fileTime();
135+
time_t fileCreationTime();
135136
bool isFile() const;
136137
bool isDirectory() const;
137138

138139
bool next();
139140
bool rewind();
140141

141-
time_t getLastWrite();
142142
void setTimeCallback(time_t (*cb)(void));
143143

144144
protected:
145145
DirImplPtr _impl;
146146
FS *_baseFS;
147147
time_t (*timeCallback)(void) = nullptr;
148-
149148
};
150149

151150
// Backwards compatible, <4GB filesystem usage

cores/esp8266/FSImpl.h

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,8 @@ class FileImpl {
5151
// as the FS is allowed to return either the time of the last write() operation or the
5252
// time present in the filesystem metadata (often the last time the file was closed)
5353
virtual time_t getLastWrite() { return 0; } // Default is to not support timestamps
54+
// Same for creation time.
55+
virtual time_t getCreationTime() { return 0; } // Default is to not support timestamps
5456

5557
protected:
5658
time_t (*timeCallback)(void) = nullptr;
@@ -75,7 +77,11 @@ class DirImpl {
7577
virtual FileImplPtr openFile(OpenMode openMode, AccessMode accessMode) = 0;
7678
virtual const char* fileName() = 0;
7779
virtual size_t fileSize() = 0;
80+
// Return the last written time for a file. Undefined when called on a writable file
81+
// as the FS is allowed to return either the time of the last write() operation or the
82+
// time present in the filesystem metadata (often the last time the file was closed)
7883
virtual time_t fileTime() { return 0; } // By default, FS doesn't report file times
84+
virtual time_t fileCreationTime() { return 0; } // By default, FS doesn't report file times
7985
virtual bool isFile() const = 0;
8086
virtual bool isDirectory() const = 0;
8187
virtual bool next() = 0;
@@ -86,11 +92,6 @@ class DirImpl {
8692
// same name. The default implementation simply returns time(&null)
8793
virtual void setTimeCallback(time_t (*cb)(void)) { timeCallback = cb; }
8894

89-
// Return the last written time for a file. Undefined when called on a writable file
90-
// as the FS is allowed to return either the time of the last write() operation or the
91-
// time present in the filesystem metadata (often the last time the file was closed)
92-
virtual time_t getLastWrite() { return 0; } // Default is to not support timestamps
93-
9495
protected:
9596
time_t (*timeCallback)(void) = nullptr;
9697
};

cores/esp8266/StackThunk.cpp

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -111,14 +111,14 @@ uint32_t stack_thunk_get_max_usage()
111111
/* Print the stack from the first used 16-byte chunk to the top, decodable by the exception decoder */
112112
void stack_thunk_dump_stack()
113113
{
114-
uint32_t *pos = stack_thunk_top;
115-
while (pos < stack_thunk_ptr) {
114+
uint32_t *pos = stack_thunk_ptr;
115+
while (pos < stack_thunk_top) {
116116
if ((pos[0] != _stackPaint) || (pos[1] != _stackPaint) || (pos[2] != _stackPaint) || (pos[3] != _stackPaint))
117117
break;
118118
pos += 4;
119119
}
120120
ets_printf(">>>stack>>>\n");
121-
while (pos < stack_thunk_ptr) {
121+
while (pos < stack_thunk_top) {
122122
ets_printf("%08x: %08x %08x %08x %08x\n", (int32_t)pos, pos[0], pos[1], pos[2], pos[3]);
123123
pos += 4;
124124
}

0 commit comments

Comments
 (0)