Add preliminary support for ESP32-S2
This commit is contained in:
+12
-11
@@ -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",
|
||||
|
||||
@@ -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
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user