Skip to content

Commit 98d5456

Browse files
committed
Merge pull request #1 from esp8266/esp8266
pull upto date
2 parents ed77f2d + c1c8c99 commit 98d5456

File tree

109 files changed

+12695
-663
lines changed

Some content is hidden

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

109 files changed

+12695
-663
lines changed

.gitignore

+18-4
Original file line numberDiff line numberDiff line change
@@ -21,32 +21,36 @@ build/windows/libastylej*
2121
build/windows/arduino-*.zip
2222
build/windows/dist/*.tar.gz
2323
build/windows/dist/*.tar.bz2
24-
build/windows/launch4j-*
24+
build/windows/launch4j-*.tgz
25+
build/windows/launch4j-*.zip
2526
build/windows/launcher/launch4j
2627
build/windows/WinAVR-*.zip
2728
build/macosx/arduino-*.zip
2829
build/macosx/dist/*.tar.gz
2930
build/macosx/dist/*.tar.bz2
31+
build/macosx/*.tar.bz2
3032
build/macosx/libastylej*
3133
build/macosx/appbundler*.jar
3234
build/macosx/appbundler*.zip
3335
build/macosx/appbundler
3436
build/macosx/appbundler-1.0ea-arduino2
37+
build/macosx/appbundler-1.0ea-upstream1
3538
build/linux/work/
3639
build/linux/dist/*.tar.gz
3740
build/linux/dist/*.tar.bz2
3841
build/linux/*.tgz
42+
build/linux/*.tar.xz
43+
build/linux/*.tar.bz2
3944
build/linux/*.zip
4045
build/linux/libastylej*
4146
build/shared/reference*.zip
47+
build/shared/Edison*.zip
48+
build/shared/Galileo*.zip
4249
test-bin
4350
*.iml
4451
.idea
4552
.DS_Store
4653
.directory
47-
build/windows/launch4j-*
48-
build/windows/launcher/launch4j
49-
build/windows/WinAVR-*.zip
5054
hardware/arduino/avr/libraries/Bridge/examples/XivelyClient/passwords.h
5155
avr-toolchain-*.zip
5256
/hardware/tools/esp8266/utils/
@@ -57,4 +61,14 @@ avr-toolchain-*.zip
5761
/hardware/tools/bossac.exe
5862
/hardware/tools/listComPorts.exe
5963

64+
/app/nbproject/private/
65+
/arduino-core/nbproject/private/
66+
/app/build/
67+
/arduino-core/build/
68+
69+
manifest.mf
70+
nbbuild.xml
71+
nbproject
6072
build/macosx/esptool-*-osx.zip
73+
74+
build/macosx/dist/osx-xtensa-lx106-elf.tgz

README.md

+11-8
Original file line numberDiff line numberDiff line change
@@ -1,27 +1,30 @@
11
Arduino-compatible IDE with ESP8266 support
22
===========================================
33

4+
![Linux build status](http://img.shields.io/travis/igrr/Arduino.svg)
5+
46
This project brings support for ESP8266 chip to the Arduino environment. ESP8266WiFi library bundled with this project has the same interface as the WiFi Shield library, making it easy to re-use existing code and libraries.
57

6-
### Downloads ###
8+
### Installing with Boards Manager ###
79

8-
| OS | Build status | Latest release | Alpha Version |
9-
| --- | ------------ | -------------- | --------------- |
10-
| Linux | [![Linux build status](http://img.shields.io/travis/igrr/Arduino.svg)](https://travis-ci.org/igrr/Arduino) | [arduino-1.6.1-linux64.tar.xz](../../releases/download/1.6.1-esp8266-1/arduino-1.6.1-linux64.tar.xz) | |
11-
| Windows | [![Windows build status](http://img.shields.io/appveyor/ci/igrr/Arduino.svg)](https://ci.appveyor.com/project/igrr/Arduino) | [arduino-1.6.1-p1-windows.zip](https://github.com/igrr/Arduino/releases/download/1.6.1-esp8266-1/arduino-1.6.1-p1-windows.zip) | [appveyor 64Bit Build](https://ci.appveyor.com/project/igrr/Arduino/build/artifacts) |
12-
| OS X | | [arduino-1.6.1-macosx-java-latest-signed.zip](../../releases/download/1.6.1-esp8266-1/arduino-1.6.1-macosx-java-latest-signed.zip) | |
10+
Starting with 1.6.4, Arduino allows installation of third-party platform packages using Boards Manager. We have packages available for Windows, Mac OS, and Linux (32 and 64 bit).
1311

12+
- Install Arduino 1.6.4 from the [Arduino website](http://www.arduino.cc/en/main/software).
13+
- Start Arduino and open Perferences window.
14+
- Enter ```http://arduino.esp8266.com/package_esp8266com_index.json``` into *Additional Board Manager URLs* field. You can add multiple URLs, separating them with commas.
15+
- Open Boards Manager from Tools > Board menu and install *esp8266* platform (and don't forget to select your ESP8266 board from Tools > Board menu after installation).
1416

15-
### Building from source ###
17+
### Building latest version from source ###
1618
```
1719
$ git clone https://github.com/esp8266/Arduino.git
1820
$ cd Arduino/build
1921
$ ant dist
2022
```
2123

2224
### Supported boards ###
23-
- [Wifio](http://wifio.cc)
2425
- Generic esp8266 modules (without auto-reset support)
26+
- NodeMCU
27+
- Olimex MOD-WIFI-ESP8266
2528

2629
### Things that work ###
2730

boards.txt

+61-11
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
menu.UploadSpeed=Upload Speed
22
menu.CpuFrequency=CPU Frequency
3-
menu.FlashSize=Flash size
3+
menu.FlashSize=Flash Size
4+
menu.FlashFreq=Flash Frequency
45

56
##############################################################
67
generic.name=Generic ESP8266 Module
@@ -21,6 +22,9 @@ generic.build.variant=generic
2122
generic.build.flash_mode=qio
2223
generic.build.flash_size=512K
2324
generic.build.flash_freq=40
25+
generic.build.flash_ld=eagle.flash.512k.ld
26+
generic.build.spiffs_start=0x6B000
27+
generic.build.spiffs_end=0x7B000
2428

2529
generic.menu.CpuFrequency.80=80 MHz
2630
generic.menu.CpuFrequency.80.build.f_cpu=80000000L
@@ -46,16 +50,56 @@ generic.menu.UploadSpeed.512000.upload.speed=512000
4650
generic.menu.UploadSpeed.921600=921600
4751
generic.menu.UploadSpeed.921600.upload.speed=921600
4852

49-
generic.menu.FlashSize.512K=512K
53+
generic.menu.FlashSize.512K=512K (64K SPIFFS)
5054
generic.menu.FlashSize.512K.build.flash_size=512K
51-
generic.menu.FlashSize.256K=256K
52-
generic.menu.FlashSize.256K.build.flash_size=256K
53-
generic.menu.FlashSize.1M=1M
54-
generic.menu.FlashSize.1M.build.flash_size=1M
55-
generic.menu.FlashSize.2M=2M
55+
generic.menu.FlashSize.512K.build.flash_ld=eagle.flash.512k.ld
56+
generic.menu.FlashSize.512K.build.spiffs_start=0x6B000
57+
generic.menu.FlashSize.512K.build.spiffs_end=0x7B000
58+
generic.menu.FlashSize.1M512=1M (512K SPIFFS)
59+
generic.menu.FlashSize.1M512.build.flash_size=1M
60+
generic.menu.FlashSize.1M512.build.flash_ld=eagle.flash.1m512.ld
61+
generic.menu.FlashSize.1M512.build.spiffs_start=0x6B000
62+
generic.menu.FlashSize.1M512.build.spiffs_end=0xFB000
63+
generic.menu.FlashSize.1M256=1M (256K SPIFFS)
64+
generic.menu.FlashSize.1M256.build.flash_size=1M
65+
generic.menu.FlashSize.1M256.build.flash_ld=eagle.flash.1m256.ld
66+
generic.menu.FlashSize.1M256.build.spiffs_start=0xAB000
67+
generic.menu.FlashSize.1M256.build.spiffs_end=0xFB000
68+
generic.menu.FlashSize.1M128=1M (128K SPIFFS)
69+
generic.menu.FlashSize.1M128.build.flash_size=1M
70+
generic.menu.FlashSize.1M128.build.flash_ld=eagle.flash.1m128.ld
71+
generic.menu.FlashSize.1M128.build.spiffs_start=0xCB000
72+
generic.menu.FlashSize.1M128.build.spiffs_end=0xFB000
73+
generic.menu.FlashSize.1M64=1M (64K SPIFFS)
74+
generic.menu.FlashSize.1M64.build.flash_size=1M
75+
generic.menu.FlashSize.1M64.build.flash_ld=eagle.flash.1m64.ld
76+
generic.menu.FlashSize.1M64.build.spiffs_start=0xEB000
77+
generic.menu.FlashSize.1M64.build.spiffs_end=0xFB000
78+
generic.menu.FlashSize.2M=2M (1M SPIFFS)
5679
generic.menu.FlashSize.2M.build.flash_size=2M
57-
generic.menu.FlashSize.4M=4M
80+
generic.menu.FlashSize.2M.build.flash_ld=eagle.flash.2m.ld
81+
generic.menu.FlashSize.2M.build.spiffs_start=0x100000
82+
generic.menu.FlashSize.2M.build.spiffs_end=0x1FB000
83+
generic.menu.FlashSize.4M=4M (3M SPIFFS)
5884
generic.menu.FlashSize.4M.build.flash_size=4M
85+
generic.menu.FlashSize.4M.build.flash_ld=eagle.flash.4m.ld
86+
generic.menu.FlashSize.4M.build.spiffs_start=0x100000
87+
generic.menu.FlashSize.4M.build.spiffs_end=0x3FB000
88+
generic.menu.FlashSize.8M=8M (7M SPIFFS)
89+
generic.menu.FlashSize.8M.build.flash_size=1M
90+
generic.menu.FlashSize.8M.build.flash_ld=eagle.flash.8m.ld
91+
generic.menu.FlashSize.8M.build.spiffs_start=0x100000
92+
generic.menu.FlashSize.8M.build.spiffs_end=0x800000
93+
generic.menu.FlashSize.16M=16M (15M SPIFFS)
94+
generic.menu.FlashSize.16M.build.flash_size=1M
95+
generic.menu.FlashSize.16M.build.flash_ld=eagle.flash.16m.ld
96+
generic.menu.FlashSize.16M.build.spiffs_start=0x100000
97+
generic.menu.FlashSize.16M.build.spiffs_end=0x1000000
98+
99+
# generic.menu.FlashFreq.40=40MHz
100+
# generic.menu.FlashFreq.40.build.flash_freq=40
101+
# generic.menu.FlashFreq.80=80MHz
102+
# generic.menu.FlashFreq.80.build.flash_freq=80
59103

60104
##############################################################
61105
modwifi.name=Olimex MOD-WIFI-ESP8266(-DEV)
@@ -77,6 +121,9 @@ modwifi.build.variant=generic
77121
modwifi.build.flash_mode=qio
78122
modwifi.build.flash_size=2M
79123
modwifi.build.flash_freq=40
124+
modwifi.build.flash_ld=eagle.flash.2m.ld
125+
modwifi.build.spiffs_start=0x100000
126+
modwifi.build.spiffs_end=0x1FB000
80127

81128
modwifi.menu.CpuFrequency.80=80 MHz
82129
modwifi.menu.CpuFrequency.80.build.f_cpu=80000000L
@@ -122,6 +169,9 @@ nodemcu.build.variant=nodemcu
122169
nodemcu.build.flash_mode=qio
123170
nodemcu.build.flash_size=4M
124171
nodemcu.build.flash_freq=40
172+
nodemcu.build.flash_ld=eagle.flash.4m.ld
173+
nodemcu.build.spiffs_start=0x100000
174+
nodemcu.build.spiffs_end=0x3FB000
125175

126176
nodemcu.menu.CpuFrequency.80=80 MHz
127177
nodemcu.menu.CpuFrequency.80.build.f_cpu=80000000L
@@ -148,9 +198,6 @@ nodemcu.menu.UploadSpeed.512000.upload.speed=512000
148198
nodemcu.menu.UploadSpeed.921600=921600
149199
nodemcu.menu.UploadSpeed.921600.upload.speed=921600
150200

151-
nodemcu.menu.FlashSize.4M=4M
152-
nodemcu.menu.FlashSize.4M.build.flash_size=4M
153-
154201
##############################################################
155202
# wifio.name=Wifio
156203
#
@@ -168,6 +215,9 @@ nodemcu.menu.FlashSize.4M.build.flash_size=4M
168215
# wifio.build.flash_mode=qio
169216
# wifio.build.flash_size=512K
170217
# wifio.build.flash_freq=40
218+
# wifio.build.flash_ld=eagle.flash.512k.ld
219+
# wifio.build.spiffs_start=0x6B000
220+
# wifio.build.spiffs_end=0x7B000
171221
#
172222
# wifio.menu.CpuFrequency.80=80MHz
173223
# wifio.menu.CpuFrequency.80.build.f_cpu=80000000L

cores/esp8266/Arduino.h

+7-3
Original file line numberDiff line numberDiff line change
@@ -112,8 +112,6 @@ void timer1_write(uint32_t ticks); //maximum ticks 8388607
112112
#undef abs
113113
#endif
114114

115-
#define min(a,b) ((a)<(b)?(a):(b))
116-
#define max(a,b) ((a)>(b)?(a):(b))
117115
#define abs(x) ((x)>0?(x):-(x))
118116
#define constrain(amt,low,high) ((amt)<(low)?(low):((amt)>(high)?(high):(amt)))
119117
#define round(x) ((x)>=0?(long)((x)+0.5):(long)((x)-0.5))
@@ -134,7 +132,7 @@ void ets_intr_unlock();
134132
extern uint32_t interruptsState;
135133

136134
#define interrupts() xt_enable_interrupts(interruptsState)
137-
#define noInterrupts() xt_disable_interrupts(interruptsState, 15)
135+
#define noInterrupts() __asm__ __volatile__("rsil %0,15; esync; isync; dsync" : "=a" (interruptsState))
138136

139137
#define clockCyclesPerMicrosecond() ( F_CPU / 1000000L )
140138
#define clockCyclesToMicroseconds(a) ( (a) / clockCyclesPerMicrosecond() )
@@ -211,7 +209,12 @@ void loop(void);
211209
#include "WString.h"
212210

213211
#include "HardwareSerial.h"
212+
#include "FileSystem.h"
214213
#include "Esp.h"
214+
#include "debug.h"
215+
216+
#define min(a,b) ((a)<(b)?(a):(b))
217+
#define max(a,b) ((a)>(b)?(a):(b))
215218

216219
uint16_t makeWord(uint16_t w);
217220
uint16_t makeWord(byte h, byte l);
@@ -229,6 +232,7 @@ long random(long, long);
229232
void randomSeed(unsigned int);
230233
long map(long, long, long, long, long);
231234

235+
232236
#endif
233237

234238
#include "pins_arduino.h"

cores/esp8266/Esp.cpp

+11
Original file line numberDiff line numberDiff line change
@@ -158,6 +158,11 @@ uint32_t EspClass::getFlashChipId(void)
158158
return spi_flash_get_id();
159159
}
160160

161+
uint32_t EspClass::getFlashChipRealSize(void)
162+
{
163+
return (1 << ((spi_flash_get_id() >> 16) & 0xFF));
164+
}
165+
161166
uint32_t EspClass::getFlashChipSize(void)
162167
{
163168
uint32_t data;
@@ -175,6 +180,12 @@ uint32_t EspClass::getFlashChipSize(void)
175180
return (2_MB);
176181
case 0x4: // 32 MBit (4MB)
177182
return (4_MB);
183+
case 0x5: // 64 MBit (8MB)
184+
return (8_MB);
185+
case 0x6: // 128 MBit (16MB)
186+
return (16_MB);
187+
case 0x7: // 256 MBit (32MB)
188+
return (32_MB);
178189
default: // fail?
179190
return 0;
180191
}

cores/esp8266/Esp.h

+3
Original file line numberDiff line numberDiff line change
@@ -90,6 +90,9 @@ class EspClass {
9090
uint8_t getCpuFreqMHz(void);
9191

9292
uint32_t getFlashChipId(void);
93+
//gets the actual chip size based on the flash id
94+
uint32_t getFlashChipRealSize(void);
95+
//gets the size of the flash as set by the compiler
9396
uint32_t getFlashChipSize(void);
9497
uint32_t getFlashChipSpeed(void);
9598
FlashMode_t getFlashChipMode(void);

0 commit comments

Comments
 (0)