Skip to content

Commit 8addbe8

Browse files
author
Me No Dev
committed
Merge remote-tracking branch 'esp8266/master'
2 parents e5d7270 + 3940b35 commit 8addbe8

21 files changed

+577
-70
lines changed

README.md

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,14 @@ python get.py
4848
```
4949
- Restart Arduino
5050

51+
### Using stable version with PlatformIO
52+
53+
[PlatformIO](http://platformio.org) is a cross-platform code-builder and library manager for embedded development with no external dependencies. Works on the popular host OS: Mac OS X, Windows, Linux 32/64, Linux ARM (like Raspberry Pi, BeagleBone, CubieBoard). More details in documentation [What is PlatformIO? How does it work?](http://docs.platformio.org/en/latest/faq.html#general).
54+
55+
See [detailed instructions on how to use Espressif platform with PlatformIO](doc/platformio.md).
56+
57+
### Documentation
58+
5159
Documentation for latest development version:
5260

5361
- [Reference](doc/reference.md)

boards.txt

Lines changed: 150 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ menu.FlashMode=Flash Mode
55
menu.FlashFreq=Flash Frequency
66
menu.UploadTool=Upload Using
77
menu.ResetMethod=Reset Method
8+
menu.ESPModule=Module
89

910
##############################################################
1011
generic.name=Generic ESP8266 Module
@@ -95,6 +96,30 @@ generic.menu.FlashSize.1M256.build.spiffs_end=0xFB000
9596
generic.menu.FlashSize.1M256.build.spiffs_blocksize=4096
9697
generic.menu.FlashSize.1M256.upload.maximum_size=761840
9798

99+
generic.menu.FlashSize.1M192=1M (192K SPIFFS)
100+
generic.menu.FlashSize.1M192.build.flash_size=1M
101+
generic.menu.FlashSize.1M192.build.flash_ld=eagle.flash.1m192.ld
102+
generic.menu.FlashSize.1M192.build.spiffs_start=0xCB000
103+
generic.menu.FlashSize.1M192.build.spiffs_end=0xFB000
104+
generic.menu.FlashSize.1M192.build.spiffs_blocksize=4096
105+
generic.menu.FlashSize.1M192.upload.maximum_size=827376
106+
107+
generic.menu.FlashSize.1M160=1M (160K SPIFFS)
108+
generic.menu.FlashSize.1M160.build.flash_size=1M
109+
generic.menu.FlashSize.1M160.build.flash_ld=eagle.flash.1m160.ld
110+
generic.menu.FlashSize.1M160.build.spiffs_start=0xD3000
111+
generic.menu.FlashSize.1M160.build.spiffs_end=0xFB000
112+
generic.menu.FlashSize.1M160.build.spiffs_blocksize=4096
113+
generic.menu.FlashSize.1M160.upload.maximum_size=860144
114+
115+
generic.menu.FlashSize.1M144=1M (144K SPIFFS)
116+
generic.menu.FlashSize.1M144.build.flash_size=1M
117+
generic.menu.FlashSize.1M144.build.flash_ld=eagle.flash.1m144.ld
118+
generic.menu.FlashSize.1M144.build.spiffs_start=0xD7000
119+
generic.menu.FlashSize.1M144.build.spiffs_end=0xFB000
120+
generic.menu.FlashSize.1M144.build.spiffs_blocksize=4096
121+
generic.menu.FlashSize.1M144.upload.maximum_size=876528
122+
98123
generic.menu.FlashSize.1M128=1M (128K SPIFFS)
99124
generic.menu.FlashSize.1M128.build.flash_size=1M
100125
generic.menu.FlashSize.1M128.build.flash_ld=eagle.flash.1m128.ld
@@ -160,7 +185,7 @@ huzzah.name=Adafruit HUZZAH ESP8266
160185

161186
huzzah.upload.tool=esptool
162187
huzzah.upload.speed=115200
163-
huzzah.upload.resetmethod=ck
188+
huzzah.upload.resetmethod=nodemcu
164189
huzzah.upload.maximum_size=1044464
165190
huzzah.upload.maximum_data_size=81920
166191
huzzah.upload.wait_for_upload_port=true
@@ -408,7 +433,7 @@ thing.name=SparkFun ESP8266 Thing
408433

409434
thing.upload.tool=esptool
410435
thing.upload.speed=921600
411-
thing.upload.resetmethod=ck
436+
thing.upload.resetmethod=nodemcu
412437
thing.upload.maximum_size=434160
413438
thing.upload.maximum_data_size=81920
414439
thing.upload.wait_for_upload_port=true
@@ -771,3 +796,126 @@ espino.menu.ResetMethod.ck=ck
771796
espino.menu.ResetMethod.ck.upload.resetmethod=ck
772797
espino.menu.ResetMethod.nodemcu=nodemcu
773798
espino.menu.ResetMethod.nodemcu.upload.resetmethod=nodemcu
799+
800+
##############################################################
801+
wifinfo.name=WifInfo
802+
803+
wifinfo.upload.tool=esptool
804+
wifinfo.upload.speed=115200
805+
wifinfo.upload.resetmethod=nodemcu
806+
wifinfo.upload.maximum_size=434160
807+
wifinfo.upload.maximum_data_size=81920
808+
wifinfo.upload.wait_for_upload_port=true
809+
wifinfo.serial.disableDTR=true
810+
wifinfo.serial.disableRTS=true
811+
812+
wifinfo.build.mcu=esp8266
813+
wifinfo.build.f_cpu=80000000L
814+
wifinfo.build.core=esp8266
815+
wifinfo.build.variant=wifinfo
816+
wifinfo.build.flash_mode=qio
817+
wifinfo.build.spiffs_pagesize=256
818+
819+
#wifinfo.menu.ESPModule.ESP07512=ESP07 (1M/512K SPIFFS)
820+
#wifinfo.menu.ESPModule.ESP07512.build.board=ESP8266_ESP07
821+
#wifinfo.menu.ESPModule.ESP07512.build.flash_size=1M
822+
#wifinfo.menu.ESPModule.ESP07512.build.flash_ld=eagle.flash.1m512.ld
823+
#wifinfo.menu.ESPModule.ESP07512.build.spiffs_start=0x7B000
824+
#wifinfo.menu.ESPModule.ESP07512.build.spiffs_end=0xFB000
825+
#wifinfo.menu.ESPModule.ESP07512.build.spiffs_blocksize=8192
826+
#wifinfo.menu.ESPModule.ESP07512.upload.maximum_size=499696
827+
828+
#wifinfo.menu.ESPModule.ESP07256=ESP07 (1M/256K SPIFFS)
829+
#wifinfo.menu.ESPModule.ESP07256.build.board=ESP8266_ESP07
830+
#wifinfo.menu.ESPModule.ESP07256.build.flash_size=1M
831+
#wifinfo.menu.ESPModule.ESP07256.build.flash_ld=eagle.flash.1m256.ld
832+
#wifinfo.menu.ESPModule.ESP07256.build.spiffs_start=0xBB000
833+
#wifinfo.menu.ESPModule.ESP07256.build.spiffs_end=0xFB000
834+
##wifinfo.menu.ESPModule.ESP07256.build.spiffs_blocksize=4096
835+
#wifinfo.menu.ESPModule.ESP07256.upload.maximum_size=761840
836+
837+
wifinfo.menu.ESPModule.ESP07192=ESP07 (1M/192K SPIFFS)
838+
wifinfo.menu.ESPModule.ESP07192.build.board=ESP8266_ESP07
839+
wifinfo.menu.ESPModule.ESP07192.build.flash_size=1M
840+
wifinfo.menu.ESPModule.ESP07192.build.flash_ld=eagle.flash.1m192.ld
841+
wifinfo.menu.ESPModule.ESP07192.build.spiffs_start=0xCB000
842+
wifinfo.menu.ESPModule.ESP07192.build.spiffs_end=0xFB000
843+
wifinfo.menu.ESPModule.ESP07192.build.spiffs_blocksize=4096
844+
wifinfo.menu.ESPModule.ESP07192.upload.maximum_size=827376
845+
846+
#wifinfo.menu.ESPModule.ESP07160=ESP07 (1M/160K SPIFFS)
847+
#wifinfo.menu.ESPModule.ESP07160.build.board=ESP8266_ESP07
848+
#wifinfo.menu.ESPModule.ESP07160.build.flash_size=1M
849+
#wifinfo.menu.ESPModule.ESP07160.build.flash_ld=eagle.flash.1m160.ld
850+
#wifinfo.menu.ESPModule.ESP07160.build.spiffs_start=0xD3000
851+
#wifinfo.menu.ESPModule.ESP07160.build.spiffs_end=0xFB000
852+
#wifinfo.menu.ESPModule.ESP07160.build.spiffs_blocksize=4096
853+
#wifinfo.menu.ESPModule.ESP07160.upload.maximum_size=860144
854+
#
855+
#wifinfo.menu.ESPModule.ESP07144=ESP07 (1M/144K SPIFFS)
856+
#wifinfo.menu.ESPModule.ESP07144.build.board=ESP8266_ESP07
857+
#wifinfo.menu.ESPModule.ESP07144.build.flash_size=1M
858+
#wifinfo.menu.ESPModule.ESP07144.build.flash_ld=eagle.flash.1m144.ld
859+
#wifinfo.menu.ESPModule.ESP07144.build.spiffs_start=0xD7000
860+
#wifinfo.menu.ESPModule.ESP07144.build.spiffs_end=0xFB000
861+
#wifinfo.menu.ESPModule.ESP07144.build.spiffs_blocksize=4096
862+
#wifinfo.menu.ESPModule.ESP07144.upload.maximum_size=876528
863+
#
864+
#wifinfo.menu.ESPModule.ESP07=ESP07 (1M/64K SPIFFS)
865+
#wifinfo.menu.ESPModule.ESP07.build.board=ESP8266_ESP07
866+
#wifinfo.menu.ESPModule.ESP07.build.flash_size=1M
867+
#wifinfo.menu.ESPModule.ESP07.build.flash_ld=eagle.flash.1m64.ld
868+
#wifinfo.menu.ESPModule.ESP07.build.spiffs_start=0xEB000
869+
#wifinfo.menu.ESPModule.ESP07.build.spiffs_end=0xFB000
870+
#wifinfo.menu.ESPModule.ESP07.build.spiffs_blocksize=4096
871+
#wifinfo.menu.ESPModule.ESP07.upload.maximum_size=958448
872+
873+
wifinfo.menu.ESPModule.ESP12=ESP12 (4M/1M SPIFFS)
874+
wifinfo.menu.ESPModule.ESP12.build.board=ESP8266_ESP12
875+
wifinfo.menu.ESPModule.ESP12.build.flash_size=4M
876+
wifinfo.menu.ESPModule.ESP12.build.flash_ld=eagle.flash.4m1m.ld
877+
wifinfo.menu.ESPModule.ESP12.build.spiffs_start=0x300000
878+
wifinfo.menu.ESPModule.ESP12.build.spiffs_end=0x3FB000
879+
wifinfo.menu.ESPModule.ESP12.build.spiffs_blocksize=8192
880+
wifinfo.menu.ESPModule.ESP12.build.spiffs_pagesize=256
881+
wifinfo.menu.ESPModule.ESP12.upload.maximum_size=1044464
882+
883+
wifinfo.menu.UploadTool.esptool=Serial
884+
wifinfo.menu.UploadTool.esptool.upload.tool=esptool
885+
wifinfo.menu.UploadTool.esptool.upload.verbose=-vv
886+
wifinfo.menu.UploadTool.espota=OTA
887+
wifinfo.menu.UploadTool.espota.upload.tool=espota
888+
889+
wifinfo.menu.CpuFrequency.80=80 MHz
890+
wifinfo.menu.CpuFrequency.80.build.f_cpu=80000000L
891+
wifinfo.menu.CpuFrequency.160=160 MHz
892+
wifinfo.menu.CpuFrequency.160.build.f_cpu=160000000L
893+
894+
wifinfo.menu.FlashFreq.40=40MHz
895+
wifinfo.menu.FlashFreq.40.build.flash_freq=40
896+
wifinfo.menu.FlashFreq.80=80MHz
897+
wifinfo.menu.FlashFreq.80.build.flash_freq=80
898+
899+
wifinfo.menu.FlashMode.dio=DIO
900+
wifinfo.menu.FlashMode.dio.build.flash_mode=dio
901+
wifinfo.menu.FlashMode.qio=QIO
902+
wifinfo.menu.FlashMode.qio.build.flash_mode=qio
903+
904+
wifinfo.menu.UploadSpeed.115200=115200
905+
wifinfo.menu.UploadSpeed.115200.upload.speed=115200
906+
wifinfo.menu.UploadSpeed.9600=9600
907+
wifinfo.menu.UploadSpeed.9600.upload.speed=9600
908+
wifinfo.menu.UploadSpeed.57600=57600
909+
wifinfo.menu.UploadSpeed.57600.upload.speed=57600
910+
wifinfo.menu.UploadSpeed.256000.windows=256000
911+
wifinfo.menu.UploadSpeed.256000.upload.speed=256000
912+
wifinfo.menu.UploadSpeed.230400.linux=230400
913+
wifinfo.menu.UploadSpeed.230400.macosx=230400
914+
wifinfo.menu.UploadSpeed.230400.upload.speed=230400
915+
wifinfo.menu.UploadSpeed.460800.linux=460800
916+
wifinfo.menu.UploadSpeed.460800.macosx=460800
917+
wifinfo.menu.UploadSpeed.460800.upload.speed=460800
918+
wifinfo.menu.UploadSpeed.512000.windows=512000
919+
wifinfo.menu.UploadSpeed.512000.upload.speed=512000
920+
wifinfo.menu.UploadSpeed.921600=921600
921+
wifinfo.menu.UploadSpeed.921600.upload.speed=921600

cores/esp8266/HardwareSerial.cpp

Lines changed: 29 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@
2929
#include <inttypes.h>
3030
#include "Arduino.h"
3131
#include "cbuf.h"
32+
#include "interrupts.h"
3233

3334
extern "C" {
3435
#include "osapi.h"
@@ -556,6 +557,7 @@ int HardwareSerial::available(void) {
556557
int result = 0;
557558

558559
if (_uart != NULL && _uart->rxEnabled) {
560+
InterruptLock il;
559561
result = static_cast<int>(_rx_buffer->getSize());
560562
}
561563

@@ -570,6 +572,7 @@ int HardwareSerial::peek(void) {
570572
if(_uart == 0)
571573
return -1;
572574
if(_uart->rxEnabled) {
575+
InterruptLock il;
573576
return _rx_buffer->peek();
574577
} else {
575578
return -1;
@@ -580,6 +583,7 @@ int HardwareSerial::read(void) {
580583
if(_uart == 0)
581584
return -1;
582585
if(_uart->rxEnabled) {
586+
InterruptLock il;
583587
return _rx_buffer->read();
584588
} else {
585589
return -1;
@@ -590,6 +594,7 @@ int HardwareSerial::availableForWrite(void) {
590594
if(_uart == 0)
591595
return 0;
592596
if(_uart->txEnabled) {
597+
InterruptLock il;
593598
return static_cast<int>(_tx_buffer->room());
594599
} else {
595600
return 0;
@@ -604,28 +609,41 @@ void HardwareSerial::flush() {
604609
if(!_written)
605610
return;
606611

607-
while(_tx_buffer->getSize() || uart_get_tx_fifo_room(_uart) < UART_TX_FIFO_SIZE)
612+
while(true) {
613+
{
614+
InterruptLock il;
615+
if(_tx_buffer->getSize() == 0 &&
616+
uart_get_tx_fifo_room(_uart) >= UART_TX_FIFO_SIZE) {
617+
break;
618+
}
619+
}
608620
yield();
609-
621+
}
610622
_written = false;
611623
}
612624

613625
size_t HardwareSerial::write(uint8_t c) {
614626
if(_uart == 0 || !_uart->txEnabled)
615627
return 0;
616628
_written = true;
617-
size_t room = uart_get_tx_fifo_room(_uart);
618-
if(room > 0 && _tx_buffer->empty()) {
619-
uart_transmit_char(_uart, c);
620-
return 1;
621-
}
622629

623-
while(_tx_buffer->room() == 0) {
630+
while(true) {
631+
{
632+
InterruptLock il;
633+
if(_tx_buffer->empty()) {
634+
if(uart_get_tx_fifo_room(_uart) > 0) {
635+
uart_transmit_char(_uart, c);
636+
} else {
637+
_tx_buffer->write(c);
638+
uart_arm_tx_interrupt(_uart);
639+
}
640+
break;
641+
} else if(_tx_buffer->write(c)) {
642+
break;
643+
}
644+
}
624645
yield();
625646
}
626-
627-
_tx_buffer->write(c);
628-
uart_arm_tx_interrupt(_uart);
629647
return 1;
630648
}
631649

0 commit comments

Comments
 (0)