Properly handle "memory_type" option

This commit is contained in:
Valerii Koval
2022-09-26 15:13:52 +03:00
parent f4119a641b
commit bb9b135803
+24 -3
View File
@@ -42,6 +42,23 @@ def BeforeUpload(target, source, env):
env.Replace(UPLOAD_PORT=env.WaitForNewSerialPort(before_ports))
def _get_board_memory_type(env):
board_config = env.BoardConfig()
default_type = "%s_%s" % (
board_config.get("build.flash_mode", "dio"),
board_config.get("build.psram_type", "qspi"),
)
return board_config.get(
"build.memory_type",
board_config.get(
"build.%s.memory_type"
% env.subst("$PIOFRAMEWORK").strip().replace(" ", "_"),
default_type,
),
)
def _get_board_f_flash(env):
frequency = env.subst("$BOARD_F_FLASH")
frequency = str(frequency).replace("L", "")
@@ -49,10 +66,13 @@ def _get_board_f_flash(env):
def _get_board_flash_mode(env):
memory_type = env.BoardConfig().get("build.arduino.memory_type", "qio_qspi")
mode = env.subst("$BOARD_FLASH_MODE")
if memory_type in ("opi_opi", "opi_qspi"):
if ["arduino"] == env.get("PIOFRAMEWORK") and _get_board_memory_type(env) in (
"opi_opi",
"opi_qspi",
):
return "dout"
mode = env.subst("$BOARD_FLASH_MODE")
if mode in ("qio", "qout"):
return "dio"
return mode
@@ -181,6 +201,7 @@ env.Replace(
__get_board_boot_mode=_get_board_boot_mode,
__get_board_f_flash=_get_board_f_flash,
__get_board_flash_mode=_get_board_flash_mode,
__get_board_memory_type=_get_board_memory_type,
AR="%s-elf-ar" % toolchain_arch,
AS="%s-elf-as" % toolchain_arch,