Restore support for Espressif ESP8266 ESP-01 1MB board (ready for OTA)

This commit is contained in:
Ivan Kravets
2015-12-21 20:39:45 +02:00
parent 7b1b908779
commit 6e83b4b093
7 changed files with 94 additions and 28 deletions

View File

@ -7,6 +7,7 @@ PlatformIO 2.0
2.6.3 (2015-12-??)
~~~~~~~~~~~~~~~~~~
* Restored support for Espressif ESP8266 ESP-01 1MB board (ready for OTA)
* Fixed invalid ROM size for ESP8266-based boards
(`issue #396 <https://github.com/platformio/platformio/issues/396>`_)

View File

@ -81,7 +81,7 @@ Adafruit
- `Adafruit HUZZAH ESP8266 <https://www.adafruit.com/products/2471>`_
- ESP8266
- 80 MHz
- 1024 Kb
- 4096 Kb
- 80 Kb
* - ``protrinket3``
@ -461,7 +461,7 @@ ESPino
- `ESPino <http://www.espino.io>`_
- ESP8266
- 80 MHz
- 1024 Kb
- 4096 Kb
- 80 Kb
Engduino
@ -512,19 +512,26 @@ Espressif
- RAM
* - ``esp01``
- `Espressif Generic ESP8266 ESP-01 <https://nurdspace.nl/ESP8266>`_
- `Espressif Generic ESP8266 ESP-01 512k <http://www.esp8266.com/wiki/doku.php?id=esp8266-module-family>`_
- ESP8266
- 80 MHz
- 512 Kb
- 80 Kb
* - ``esp12e``
- `Espressif ESP8266 ESP-12E <https://nurdspace.nl/ESP8266>`_
* - ``esp01_1m``
- `Espressif Generic ESP8266 ESP-01 1M <http://www.esp8266.com/wiki/doku.php?id=esp8266-module-family>`_
- ESP8266
- 80 MHz
- 1024 Kb
- 80 Kb
* - ``esp12e``
- `Espressif ESP8266 ESP-12E <http://www.esp8266.com/wiki/doku.php?id=esp8266-module-family>`_
- ESP8266
- 80 MHz
- 4096 Kb
- 80 Kb
LightUp
~~~~~~~
@ -665,7 +672,7 @@ NodeMCU
- `NodeMCU 0.9 & 1.0 <http://www.nodemcu.com/>`_
- ESP8266
- 80 MHz
- 1024 Kb
- 4096 Kb
- 80 Kb
Olimex
@ -685,7 +692,7 @@ Olimex
- `Olimex MOD-WIFI-ESP8266(-DEV) <https://www.olimex.com/Products/IoT/MOD-WIFI-ESP8266-DEV/open-source-hardware>`_
- ESP8266
- 80 MHz
- 1024 Kb
- 2048 Kb
- 80 Kb
PanStamp
@ -984,7 +991,7 @@ SweetPea
- `SweetPea ESP-210 <http://wiki.sweetpeas.se/index.php?title=ESP-210>`_
- ESP8266
- 80 MHz
- 1024 Kb
- 4096 Kb
- 80 Kb
Teensy
@ -1079,14 +1086,14 @@ WeMos
- `WeMos D1 <http://www.wemos.cc/wiki/doku.php?id=en:d1>`_
- ESP8266
- 80 MHz
- 1024 Kb
- 4096 Kb
- 80 Kb
* - ``d1_mini``
- `WeMos D1 mini <http://www.wemos.cc/wiki/doku.php?id=en:d1_mini>`_
- ESP8266
- 80 MHz
- 1024 Kb
- 4096 Kb
- 80 Kb
Wicked Device

View File

@ -89,7 +89,7 @@ Adafruit
- `Adafruit HUZZAH ESP8266 <https://www.adafruit.com/products/2471>`_
- ESP8266
- 80 MHz
- 1024 Kb
- 4096 Kb
- 80 Kb
ESPino
@ -109,7 +109,7 @@ ESPino
- `ESPino <http://www.espino.io>`_
- ESP8266
- 80 MHz
- 1024 Kb
- 4096 Kb
- 80 Kb
Espressif
@ -126,19 +126,26 @@ Espressif
- RAM
* - ``esp01``
- `Espressif Generic ESP8266 ESP-01 <https://nurdspace.nl/ESP8266>`_
- `Espressif Generic ESP8266 ESP-01 512k <http://www.esp8266.com/wiki/doku.php?id=esp8266-module-family>`_
- ESP8266
- 80 MHz
- 512 Kb
- 80 Kb
* - ``esp12e``
- `Espressif ESP8266 ESP-12E <https://nurdspace.nl/ESP8266>`_
* - ``esp01_1m``
- `Espressif Generic ESP8266 ESP-01 1M <http://www.esp8266.com/wiki/doku.php?id=esp8266-module-family>`_
- ESP8266
- 80 MHz
- 1024 Kb
- 80 Kb
* - ``esp12e``
- `Espressif ESP8266 ESP-12E <http://www.esp8266.com/wiki/doku.php?id=esp8266-module-family>`_
- ESP8266
- 80 MHz
- 4096 Kb
- 80 Kb
NodeMCU
~~~~~~~
@ -156,7 +163,7 @@ NodeMCU
- `NodeMCU 0.9 & 1.0 <http://www.nodemcu.com/>`_
- ESP8266
- 80 MHz
- 1024 Kb
- 4096 Kb
- 80 Kb
Olimex
@ -176,7 +183,7 @@ Olimex
- `Olimex MOD-WIFI-ESP8266(-DEV) <https://www.olimex.com/Products/IoT/MOD-WIFI-ESP8266-DEV/open-source-hardware>`_
- ESP8266
- 80 MHz
- 1024 Kb
- 2048 Kb
- 80 Kb
SparkFun
@ -216,7 +223,7 @@ SweetPea
- `SweetPea ESP-210 <http://wiki.sweetpeas.se/index.php?title=ESP-210>`_
- ESP8266
- 80 MHz
- 1024 Kb
- 4096 Kb
- 80 Kb
WeMos
@ -236,14 +243,14 @@ WeMos
- `WeMos D1 <http://www.wemos.cc/wiki/doku.php?id=en:d1>`_
- ESP8266
- 80 MHz
- 1024 Kb
- 4096 Kb
- 80 Kb
* - ``d1_mini``
- `WeMos D1 mini <http://www.wemos.cc/wiki/doku.php?id=en:d1_mini>`_
- ESP8266
- 80 MHz
- 1024 Kb
- 4096 Kb
- 80 Kb
.. include:: espressif_extra.rst

View File

@ -12,6 +12,8 @@
OTA update
----------
Firstly, please read `What is OTA? How to use it? <https://github.com/esp8266/Arduino/blob/master/doc/ota_updates/ota_updates.md>`_
There are 2 options:
* Directly specify :option:`platformio run --upload-port` in command line

View File

@ -21,6 +21,12 @@
platform = espressif
framework = arduino
board = esp01
build_flags = -Wl,-Tesp8266.flash.4m.ld
[env:esp01_1m]
platform = espressif
framework = arduino
board = esp01_1m
[env:nodemcu]
platform = espressif

View File

@ -9,7 +9,7 @@
"variant": "generic"
},
"frameworks": ["arduino"],
"name": "Espressif Generic ESP8266 ESP-01",
"name": "Espressif Generic ESP8266 ESP-01 512k",
"platform": "espressif",
"upload": {
"maximum_ram_size": 81920,
@ -18,7 +18,30 @@
"require_upload_port" : true,
"speed": 115200
},
"url": "https://nurdspace.nl/ESP8266",
"url": "http://www.esp8266.com/wiki/doku.php?id=esp8266-module-family",
"vendor": "Espressif"
},
"esp01_1m": {
"build": {
"core": "esp8266",
"extra_flags": "-DESP8266 -DARDUINO_ARCH_ESP8266 -DARDUINO_ESP8266_ESP01",
"f_cpu": "80000000L",
"ldscript": "esp8266.flash.1m256.ld",
"mcu": "esp8266",
"variant": "generic"
},
"frameworks": ["arduino"],
"name": "Espressif Generic ESP8266 ESP-01 1M",
"platform": "espressif",
"upload": {
"maximum_ram_size": 81920,
"maximum_size": 1048576,
"resetmethod": "ck",
"require_upload_port" : true,
"speed": 115200
},
"url": "http://www.esp8266.com/wiki/doku.php?id=esp8266-module-family",
"vendor": "Espressif"
},
@ -41,7 +64,7 @@
"require_upload_port" : true,
"speed": 115200
},
"url": "https://nurdspace.nl/ESP8266",
"url": "http://www.esp8266.com/wiki/doku.php?id=esp8266-module-family",
"vendor": "Espressif"
},

View File

@ -16,6 +16,7 @@
Builder for Espressif MCUs
"""
import re
import socket
from os.path import join
@ -27,9 +28,32 @@ def BeforeUpload(target, source, env): # pylint: disable=W0613,W0621
env.AutodetectUploadPort()
def _get_flash_size(env):
# use board's flash size by default
board_max_size = int(
env.get("BOARD_OPTIONS", {}).get("upload", {}).get("maximum_size", 0))
# check if user overrides
for f in env.get("LINKFLAGS", []):
if "-Wl,-T" not in f:
continue
match = re.search(r"-Wl,-T.*\.flash\.(\d+)(m|k).*\.ld", env.subst(f))
if not match:
continue
if match.group(2) == "k":
board_max_size = int(match.group(1)) * 1024
elif match.group(2) == "m":
board_max_size = int(match.group(1)) * 1024 * 1024
return ("%dK" % (board_max_size / 1024) if board_max_size < 1048576
else "%dM" % (board_max_size / 1048576))
env = DefaultEnvironment()
env.Replace(
__get_flash_size=_get_flash_size,
AR="xtensa-lx106-elf-ar",
AS="xtensa-lx106-elf-as",
CC="xtensa-lx106-elf-gcc",
@ -98,8 +122,6 @@ env.Replace(
PROGSUFFIX=".elf"
)
_board_max_rom = int(
env.get("BOARD_OPTIONS", {}).get("upload", {}).get("maximum_size", 0))
env.Append(
BUILDERS=dict(
ElfToBin=Builder(
@ -111,9 +133,7 @@ env.Append(
"-bo", "$TARGET",
"-bm", "dio",
"-bf", "${BOARD_OPTIONS['build']['f_cpu'][:2]}",
"-bz",
"%dK" % (_board_max_rom / 1024) if _board_max_rom < 1048576
else "%dM" % (_board_max_rom / 1048576),
"-bz", "${__get_flash_size(__env__)}",
"-bs", ".text",
"-bp", "4096",
"-ec",