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()
|
env = DefaultEnvironment()
|
||||||
platform = env.PioPlatform()
|
platform = env.PioPlatform()
|
||||||
board = env.BoardConfig()
|
board = env.BoardConfig()
|
||||||
|
mcu = board.get("build.mcu", "esp32")
|
||||||
|
|
||||||
env.Replace(
|
env.Replace(
|
||||||
__get_board_f_flash=_get_board_f_flash,
|
__get_board_f_flash=_get_board_f_flash,
|
||||||
__get_board_flash_mode=_get_board_flash_mode,
|
__get_board_flash_mode=_get_board_flash_mode,
|
||||||
|
|
||||||
AR="xtensa-esp32-elf-ar",
|
AR="xtensa-%s-elf-ar" % mcu,
|
||||||
AS="xtensa-esp32-elf-as",
|
AS="xtensa-%s-elf-as" % mcu,
|
||||||
CC="xtensa-esp32-elf-gcc",
|
CC="xtensa-%s-elf-gcc" % mcu,
|
||||||
CXX="xtensa-esp32-elf-g++",
|
CXX="xtensa-%s-elf-g++" % mcu,
|
||||||
GDB="xtensa-esp32-elf-gdb",
|
GDB="xtensa-%s-elf-gdb" % mcu,
|
||||||
OBJCOPY=join(
|
OBJCOPY=join(
|
||||||
platform.get_package_dir("tool-esptoolpy") or "", "esptool.py"),
|
platform.get_package_dir("tool-esptoolpy") or "", "esptool.py"),
|
||||||
RANLIB="xtensa-esp32-elf-ranlib",
|
RANLIB="xtensa-%s-elf-ranlib" % mcu,
|
||||||
SIZETOOL="xtensa-esp32-elf-size",
|
SIZETOOL="xtensa-%s-elf-size" % mcu,
|
||||||
|
|
||||||
ARFLAGS=["rc"],
|
ARFLAGS=["rc"],
|
||||||
|
|
||||||
@@ -153,7 +154,7 @@ env.Replace(
|
|||||||
SIZEPRINTCMD="$SIZETOOL -B -d $SOURCES",
|
SIZEPRINTCMD="$SIZETOOL -B -d $SOURCES",
|
||||||
|
|
||||||
ERASEFLAGS=[
|
ERASEFLAGS=[
|
||||||
"--chip", "esp32",
|
"--chip", mcu,
|
||||||
"--port", '"$UPLOAD_PORT"'
|
"--port", '"$UPLOAD_PORT"'
|
||||||
],
|
],
|
||||||
ERASECMD='"$PYTHONEXE" "$OBJCOPY" $ERASEFLAGS erase_flash',
|
ERASECMD='"$PYTHONEXE" "$OBJCOPY" $ERASEFLAGS erase_flash',
|
||||||
@@ -177,7 +178,7 @@ env.Append(
|
|||||||
ElfToBin=Builder(
|
ElfToBin=Builder(
|
||||||
action=env.VerboseAction(" ".join([
|
action=env.VerboseAction(" ".join([
|
||||||
'"$PYTHONEXE" "$OBJCOPY"',
|
'"$PYTHONEXE" "$OBJCOPY"',
|
||||||
"--chip", "esp32",
|
"--chip", mcu,
|
||||||
"elf2image",
|
"elf2image",
|
||||||
"--flash_mode", "$BOARD_FLASH_MODE",
|
"--flash_mode", "$BOARD_FLASH_MODE",
|
||||||
"--flash_freq", "${__get_board_f_flash(__env__)}",
|
"--flash_freq", "${__get_board_f_flash(__env__)}",
|
||||||
@@ -293,7 +294,7 @@ elif upload_protocol == "esptool":
|
|||||||
UPLOADER=join(
|
UPLOADER=join(
|
||||||
platform.get_package_dir("tool-esptoolpy") or "", "esptool.py"),
|
platform.get_package_dir("tool-esptoolpy") or "", "esptool.py"),
|
||||||
UPLOADERFLAGS=[
|
UPLOADERFLAGS=[
|
||||||
"--chip", "esp32",
|
"--chip", mcu,
|
||||||
"--port", '"$UPLOAD_PORT"',
|
"--port", '"$UPLOAD_PORT"',
|
||||||
"--baud", "$UPLOAD_SPEED",
|
"--baud", "$UPLOAD_SPEED",
|
||||||
"--before", "default_reset",
|
"--before", "default_reset",
|
||||||
@@ -311,7 +312,7 @@ elif upload_protocol == "esptool":
|
|||||||
if "uploadfs" in COMMAND_LINE_TARGETS:
|
if "uploadfs" in COMMAND_LINE_TARGETS:
|
||||||
env.Replace(
|
env.Replace(
|
||||||
UPLOADERFLAGS=[
|
UPLOADERFLAGS=[
|
||||||
"--chip", "esp32",
|
"--chip", mcu,
|
||||||
"--port", '"$UPLOAD_PORT"',
|
"--port", '"$UPLOAD_PORT"',
|
||||||
"--baud", "$UPLOAD_SPEED",
|
"--baud", "$UPLOAD_SPEED",
|
||||||
"--before", "default_reset",
|
"--before", "default_reset",
|
||||||
|
|||||||
@@ -42,6 +42,11 @@
|
|||||||
"type": "toolchain",
|
"type": "toolchain",
|
||||||
"version": "~2.50200.0"
|
"version": "~2.50200.0"
|
||||||
},
|
},
|
||||||
|
"toolchain-xtensa32s2": {
|
||||||
|
"type": "toolchain",
|
||||||
|
"optional": true,
|
||||||
|
"version": "~1.80200.0"
|
||||||
|
},
|
||||||
"toolchain-esp32ulp": {
|
"toolchain-esp32ulp": {
|
||||||
"type": "toolchain",
|
"type": "toolchain",
|
||||||
"optional": true,
|
"optional": true,
|
||||||
|
|||||||
+15
-4
@@ -21,6 +21,13 @@ from platformio.util import get_systype
|
|||||||
class Espressif32Platform(PlatformBase):
|
class Espressif32Platform(PlatformBase):
|
||||||
|
|
||||||
def configure_default_packages(self, variables, targets):
|
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:
|
if "buildfs" in targets:
|
||||||
self.packages['tool-mkspiffs']['optional'] = False
|
self.packages['tool-mkspiffs']['optional'] = False
|
||||||
if variables.get("upload_protocol"):
|
if variables.get("upload_protocol"):
|
||||||
@@ -29,15 +36,19 @@ class Espressif32Platform(PlatformBase):
|
|||||||
self.packages['toolchain-esp32ulp']['optional'] = False
|
self.packages['toolchain-esp32ulp']['optional'] = False
|
||||||
if "espidf" in variables.get("pioframework", []):
|
if "espidf" in variables.get("pioframework", []):
|
||||||
for p in self.packages:
|
for p in self.packages:
|
||||||
if p in ("tool-cmake", "tool-ninja", "toolchain-esp32ulp"):
|
if p in ("tool-cmake", "tool-ninja", "toolchain-%sulp" % mcu):
|
||||||
self.packages[p]['optional'] = False
|
self.packages[p]["optional"] = False
|
||||||
elif p in ("tool-mconf", "tool-idf") and "windows" in get_systype():
|
elif p in ("tool-mconf", "tool-idf") and "windows" in get_systype():
|
||||||
self.packages[p]['optional'] = False
|
self.packages[p]['optional'] = False
|
||||||
self.packages['toolchain-xtensa32']['version'] = "~2.80200.0"
|
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(
|
build_core = variables.get(
|
||||||
"board_build.core", self.board_config(variables.get("board")).get(
|
"board_build.core", board_config.get("build.core", "arduino")).lower()
|
||||||
"build.core", "arduino")).lower()
|
|
||||||
if build_core == "mbcwb":
|
if build_core == "mbcwb":
|
||||||
self.packages['framework-arduinoespressif32']['optional'] = True
|
self.packages['framework-arduinoespressif32']['optional'] = True
|
||||||
self.packages['framework-arduino-mbcwb']['optional'] = False
|
self.packages['framework-arduino-mbcwb']['optional'] = False
|
||||||
|
|||||||
Reference in New Issue
Block a user