Skip to content

Commit 410fc9e

Browse files
Merge branch 'master' of https://github.com/esp8266/Arduino into webserver-template
2 parents 9705872 + 2d9253e commit 410fc9e

File tree

115 files changed

+2985
-994
lines changed

Some content is hidden

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

115 files changed

+2985
-994
lines changed

.gitmodules

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,9 @@
77
[submodule "libraries/SoftwareSerial"]
88
path = libraries/SoftwareSerial
99
url = https://github.com/plerup/espsoftwareserial.git
10+
[submodule "libraries/LittleFS/lib/littlefs"]
11+
path = libraries/LittleFS/lib/littlefs
12+
url = https://github.com/ARMmbed/littlefs.git
1013
[submodule "libraries/ESP8266SdFat"]
1114
path = libraries/ESP8266SdFat
1215
url = https://github.com/earlephilhower/ESP8266SdFat.git

.travis.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -103,6 +103,7 @@ jobs:
103103
stage: deploy
104104
script: tests/ci/build_package.sh
105105
env: BUILD_TYPE=package
106+
before_deploy: git submodule update --init
106107
deploy:
107108
# Create Github release, upload artifacts
108109
- provider: releases

README.md

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ Arduino core for ESP8266 WiFi chip
33

44
# Quick links
55

6-
- [Latest release documentation](https://arduino-esp8266.readthedocs.io/en/2.5.0/)
6+
- [Latest release documentation](https://arduino-esp8266.readthedocs.io/en/2.5.2/)
77
- [Current "git version" documentation](https://arduino-esp8266.readthedocs.io/en/latest/)
88
- [Install git version](https://arduino-esp8266.readthedocs.io/en/latest/installing.html#using-git-version) ([sources](doc/installing.rst#using-git-version))
99

@@ -36,7 +36,7 @@ Starting with 1.6.4, Arduino allows installation of third-party platform package
3636
#### Latest release [![Latest release](https://img.shields.io/github/release/esp8266/Arduino.svg)](https://github.com/esp8266/Arduino/releases/latest/)
3737
Boards manager link: `https://arduino.esp8266.com/stable/package_esp8266com_index.json`
3838

39-
Documentation: [https://arduino-esp8266.readthedocs.io/en/2.5.0/](https://arduino-esp8266.readthedocs.io/en/2.5.0/)
39+
Documentation: [https://arduino-esp8266.readthedocs.io/en/2.5.2/](https://arduino-esp8266.readthedocs.io/en/2.5.2/)
4040

4141
### Using git version (basic instructions)
4242
[![Linux build status](https://travis-ci.org/esp8266/Arduino.svg)](https://travis-ci.org/esp8266/Arduino)
@@ -48,9 +48,9 @@ Documentation: [https://arduino-esp8266.readthedocs.io/en/2.5.0/](https://arduin
4848
```bash
4949
cd <application-directory>/Arduino.app/Contents/Java
5050
```
51-
- For Linux, it is ~/arduino by default.
51+
- For Linux, it is ~/Arduino by default.
5252
```bash
53-
cd ~arduino
53+
cd ~/Arduino
5454
```
5555
- Clone this repository into hardware/esp8266com/esp8266 directory (or clone it elsewhere and create a symlink)
5656
```bash
@@ -143,3 +143,5 @@ ESP8266 core files are licensed under LGPL.
143143
[axTLS](http://axtls.sourceforge.net/) library written by Cameron Rich, built from https://github.com/igrr/axtls-8266, is used in this project. It is distributed under [BSD license](https://github.com/igrr/axtls-8266/blob/master/LICENSE).
144144

145145
[BearSSL](https://bearssl.org) library written by Thomas Pornin, built from https://github.com/earlephilhower/bearssl-esp8266, is used in this project. It is distributed under the [MIT License](https://bearssl.org/#legal-details).
146+
147+
[LittleFS](https://github.com/ARMmbed/littlefs) library written by ARM Limited and released under the [BSD 3-clause license](https://github.com/ARMmbed/littlefs/blob/master/LICENSE.md).

cores/esp8266/Esp.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -519,14 +519,14 @@ uint32_t EspClass::getSketchSize() {
519519
return result;
520520
}
521521

522-
extern "C" uint32_t _SPIFFS_start;
522+
extern "C" uint32_t _FS_start;
523523

524524
uint32_t EspClass::getFreeSketchSpace() {
525525

526526
uint32_t usedSize = getSketchSize();
527527
// round one sector up
528528
uint32_t freeSpaceStart = (usedSize + FLASH_SECTOR_SIZE - 1) & (~(FLASH_SECTOR_SIZE - 1));
529-
uint32_t freeSpaceEnd = (uint32_t)&_SPIFFS_start - 0x40200000;
529+
uint32_t freeSpaceEnd = (uint32_t)&_FS_start - 0x40200000;
530530

531531
#ifdef DEBUG_SERIAL
532532
DEBUG_SERIAL.printf("usedSize=%u freeSpaceStart=%u freeSpaceEnd=%u\r\n", usedSize, freeSpaceStart, freeSpaceEnd);

cores/esp8266/Esp.h

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -213,7 +213,8 @@ uint32_t EspClass::getCycleCount()
213213
__asm__ __volatile__("esync; rsr %0,ccount":"=a" (ccount));
214214
return ccount;
215215
}
216-
#endif
216+
217+
#endif // !defined(CORE_MOCK)
217218

218219
extern EspClass ESP;
219220

cores/esp8266/FS.h

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,8 @@
2424
#include <memory>
2525
#include <Arduino.h>
2626

27+
class SDClass;
28+
2729
namespace fs {
2830

2931
class File;
@@ -60,7 +62,7 @@ class File : public Stream
6062
int read() override;
6163
int peek() override;
6264
void flush() override;
63-
size_t readBytes(char *buffer, size_t length) override {
65+
size_t readBytes(char *buffer, size_t length) override {
6466
return read((uint8_t*)buffer, length);
6567
}
6668
size_t read(uint8_t* buf, size_t size);
@@ -208,8 +210,10 @@ class FS
208210

209211
bool gc();
210212

213+
friend class ::SDClass; // More of a frenemy, but SD needs internal implementation to get private FAT bits
211214
protected:
212215
FSImplPtr _impl;
216+
FSImplPtr getImpl() { return _impl; }
213217
};
214218

215219
} // namespace fs

cores/esp8266/FunctionalInterrupt.cpp

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
#include <FunctionalInterrupt.h>
22
#include <Schedule.h>
33
#include "Arduino.h"
4-
#include <ScheduledFunctions.h>
54

65
// Duplicate typedefs from core_esp8266_wiring_digital_c
76
typedef void (*voidFuncPtr)(void);
@@ -17,7 +16,6 @@ void ICACHE_RAM_ATTR interruptFunctional(void* arg)
1716
if (localArg->functionInfo->reqScheduledFunction)
1817
{
1918
schedule_function(std::bind(localArg->functionInfo->reqScheduledFunction,InterruptInfo(*(localArg->interruptInfo))));
20-
// scheduledInterrupts->scheduleFunctionReg(std::bind(localArg->functionInfo->reqScheduledFunction,InterruptInfo(*(localArg->interruptInfo))), false, true);
2119
}
2220
if (localArg->functionInfo->reqFunction)
2321
{
@@ -54,10 +52,6 @@ void attachInterrupt(uint8_t pin, std::function<void(void)> intRoutine, int mode
5452

5553
void attachScheduledInterrupt(uint8_t pin, std::function<void(InterruptInfo)> scheduledIntRoutine, int mode)
5654
{
57-
if (!scheduledInterrupts)
58-
{
59-
scheduledInterrupts = new ScheduledFunctions(32);
60-
}
6155
InterruptInfo* ii = new InterruptInfo;
6256

6357
FunctionInfo* fi = new FunctionInfo;

cores/esp8266/FunctionalInterrupt.h

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@
44
#include <stddef.h>
55
#include <stdint.h>
66
#include <functional>
7-
#include <ScheduledFunctions.h>
87

98
extern "C" {
109
#include "c_types.h"
@@ -29,7 +28,6 @@ struct ArgStructure {
2928
FunctionInfo* functionInfo = nullptr;
3029
};
3130

32-
static ScheduledFunctions* scheduledInterrupts;
3331
void attachInterrupt(uint8_t pin, std::function<void(void)> intRoutine, int mode);
3432
void attachScheduledInterrupt(uint8_t pin, std::function<void(InterruptInfo)> scheduledIntRoutine, int mode);
3533

cores/esp8266/PolledTimeout.h

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -153,7 +153,7 @@ class timeoutTemplate
153153
reset(userTimeout);
154154
}
155155

156-
ICACHE_RAM_ATTR
156+
IRAM_ATTR // fast
157157
bool expired()
158158
{
159159
YieldPolicyT::execute(); //in case of DoNothing: gets optimized away
@@ -162,7 +162,7 @@ class timeoutTemplate
162162
return expiredOneShot();
163163
}
164164

165-
ICACHE_RAM_ATTR
165+
IRAM_ATTR // fast
166166
operator bool()
167167
{
168168
return expired();
@@ -178,13 +178,15 @@ class timeoutTemplate
178178
return _timeout != alwaysExpired;
179179
}
180180

181+
IRAM_ATTR // called from ISR
181182
void reset(const timeType newUserTimeout)
182183
{
183184
reset();
184185
_timeout = TimePolicyT::toTimeTypeUnit(newUserTimeout);
185186
_neverExpires = (newUserTimeout < 0) || (newUserTimeout > timeMax());
186187
}
187188

189+
IRAM_ATTR // called from ISR
188190
void reset()
189191
{
190192
_start = TimePolicyT::time();
@@ -208,7 +210,7 @@ class timeoutTemplate
208210

209211
private:
210212

211-
ICACHE_RAM_ATTR
213+
IRAM_ATTR // fast
212214
bool checkExpired(const timeType internalUnit) const
213215
{
214216
// canWait() is not checked here
@@ -218,7 +220,7 @@ class timeoutTemplate
218220

219221
protected:
220222

221-
ICACHE_RAM_ATTR
223+
IRAM_ATTR // fast
222224
bool expiredRetrigger()
223225
{
224226
if (!canWait())
@@ -234,7 +236,7 @@ class timeoutTemplate
234236
return false;
235237
}
236238

237-
ICACHE_RAM_ATTR
239+
IRAM_ATTR // fast
238240
bool expiredOneShot() const
239241
{
240242
// returns "always expired" or "has expired"

cores/esp8266/Print.h

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -63,12 +63,15 @@ class Print {
6363
return write((const uint8_t *) buffer, size);
6464
}
6565
// These handle ambiguity for write(0) case, because (0) can be a pointer or an integer
66-
size_t write(short t) { return write((uint8_t)t); }
67-
size_t write(unsigned short t) { return write((uint8_t)t); }
68-
size_t write(int t) { return write((uint8_t)t); }
69-
size_t write(unsigned int t) { return write((uint8_t)t); }
70-
size_t write(long t) { return write((uint8_t)t); }
71-
size_t write(unsigned long t) { return write((uint8_t)t); }
66+
inline size_t write(short t) { return write((uint8_t)t); }
67+
inline size_t write(unsigned short t) { return write((uint8_t)t); }
68+
inline size_t write(int t) { return write((uint8_t)t); }
69+
inline size_t write(unsigned int t) { return write((uint8_t)t); }
70+
inline size_t write(long t) { return write((uint8_t)t); }
71+
inline size_t write(unsigned long t) { return write((uint8_t)t); }
72+
// Enable write(char) to fall through to write(uint8_t)
73+
inline size_t write(char c) { return write((uint8_t) c); }
74+
inline size_t write(int8_t c) { return write((uint8_t) c); }
7275

7376
size_t printf(const char * format, ...) __attribute__ ((format (printf, 2, 3)));
7477
size_t printf_P(PGM_P format, ...) __attribute__((format(printf, 2, 3)));

0 commit comments

Comments
 (0)