Add preliminary support for ESP32-S2

This commit is contained in:
Valerii Koval
2020-05-11 21:17:48 +03:00
parent d53f95bf54
commit 32d50ab593
3 changed files with 32 additions and 15 deletions
+12 -11
View File
@@ -130,20 +130,21 @@ def __fetch_spiffs_size(target, source, env):
env = DefaultEnvironment()
platform = env.PioPlatform()
board = env.BoardConfig()
mcu = board.get("build.mcu", "esp32")
env.Replace(
__get_board_f_flash=_get_board_f_flash,
__get_board_flash_mode=_get_board_flash_mode,
AR="xtensa-esp32-elf-ar",
AS="xtensa-esp32-elf-as",
CC="xtensa-esp32-elf-gcc",
CXX="xtensa-esp32-elf-g++",
GDB="xtensa-esp32-elf-gdb",
AR="xtensa-%s-elf-ar" % mcu,
AS="xtensa-%s-elf-as" % mcu,
CC="xtensa-%s-elf-gcc" % mcu,
CXX="xtensa-%s-elf-g++" % mcu,
GDB="xtensa-%s-elf-gdb" % mcu,
OBJCOPY=join(
platform.get_package_dir("tool-esptoolpy") or "", "esptool.py"),
RANLIB="xtensa-esp32-elf-ranlib",
SIZETOOL="xtensa-esp32-elf-size",
RANLIB="xtensa-%s-elf-ranlib" % mcu,
SIZETOOL="xtensa-%s-elf-size" % mcu,
ARFLAGS=["rc"],
@@ -153,7 +154,7 @@ env.Replace(
SIZEPRINTCMD="$SIZETOOL -B -d $SOURCES",
ERASEFLAGS=[
"--chip", "esp32",
"--chip", mcu,
"--port", '"$UPLOAD_PORT"'
],
ERASECMD='"$PYTHONEXE" "$OBJCOPY" $ERASEFLAGS erase_flash',
@@ -177,7 +178,7 @@ env.Append(
ElfToBin=Builder(
action=env.VerboseAction(" ".join([
'"$PYTHONEXE" "$OBJCOPY"',
"--chip", "esp32",
"--chip", mcu,
"elf2image",
"--flash_mode", "$BOARD_FLASH_MODE",
"--flash_freq", "${__get_board_f_flash(__env__)}",
@@ -293,7 +294,7 @@ elif upload_protocol == "esptool":
UPLOADER=join(
platform.get_package_dir("tool-esptoolpy") or "", "esptool.py"),
UPLOADERFLAGS=[
"--chip", "esp32",
"--chip", mcu,
"--port", '"$UPLOAD_PORT"',
"--baud", "$UPLOAD_SPEED",
"--before", "default_reset",
@@ -311,7 +312,7 @@ elif upload_protocol == "esptool":
if "uploadfs" in COMMAND_LINE_TARGETS:
env.Replace(
UPLOADERFLAGS=[
"--chip", "esp32",
"--chip", mcu,
"--port", '"$UPLOAD_PORT"',
"--baud", "$UPLOAD_SPEED",
"--before", "default_reset",
+5
View File
@@ -42,6 +42,11 @@
"type": "toolchain",
"version": "~2.50200.0"
},
"toolchain-xtensa32s2": {
"type": "toolchain",
"optional": true,
"version": "~1.80200.0"
},
"toolchain-esp32ulp": {
"type": "toolchain",
"optional": true,
+15 -4
View File
@@ -21,6 +21,13 @@ from platformio.util import get_systype
class Espressif32Platform(PlatformBase):
def configure_default_packages(self, variables, targets):
if not variables.get("board"):
return PlatformBase.configure_default_packages(
self, variables, targets)
board_config = self.board_config(variables.get("board"))
mcu = variables.get("board_build.mcu", board_config.get(
"build.mcu", "esp32"))
if "buildfs" in targets:
self.packages['tool-mkspiffs']['optional'] = False
if variables.get("upload_protocol"):
@@ -29,15 +36,19 @@ class Espressif32Platform(PlatformBase):
self.packages['toolchain-esp32ulp']['optional'] = False
if "espidf" in variables.get("pioframework", []):
for p in self.packages:
if p in ("tool-cmake", "tool-ninja", "toolchain-esp32ulp"):
self.packages[p]['optional'] = False
if p in ("tool-cmake", "tool-ninja", "toolchain-%sulp" % mcu):
self.packages[p]["optional"] = False
elif p in ("tool-mconf", "tool-idf") and "windows" in get_systype():
self.packages[p]['optional'] = False
self.packages['toolchain-xtensa32']['version'] = "~2.80200.0"
# ESP32-S2 toolchain is identical for both Arduino and ESP-IDF
if mcu == "esp32s2":
self.packages.pop("toolchain-xtensa32", None)
self.packages['toolchain-xtensa32s2']['optional'] = False
self.packages['tool-esptoolpy']['version'] = "~1.30000.0"
build_core = variables.get(
"board_build.core", self.board_config(variables.get("board")).get(
"build.core", "arduino")).lower()
"board_build.core", board_config.get("build.core", "arduino")).lower()
if build_core == "mbcwb":
self.packages['framework-arduinoespressif32']['optional'] = True
self.packages['framework-arduino-mbcwb']['optional'] = False