@@ -59,12 +59,24 @@ def _get_board_memory_type(env):
5959 )
6060
6161
62- def _get_board_f_flash (env ):
63- frequency = env .subst ("$BOARD_F_FLASH" )
62+ def _normalize_frequency (frequency ):
6463 frequency = str (frequency ).replace ("L" , "" )
6564 return str (int (int (frequency ) / 1000000 )) + "m"
6665
6766
67+ def _get_board_f_flash (env ):
68+ frequency = env .subst ("$BOARD_F_FLASH" )
69+ return _normalize_frequency (frequency )
70+
71+
72+ def _get_board_f_image (env ):
73+ board_config = env .BoardConfig ()
74+ if "build.f_image" in board_config :
75+ return _normalize_frequency (board_config .get ("build.f_image" ))
76+
77+ return _get_board_f_flash (env )
78+
79+
6880def _get_board_flash_mode (env ):
6981 if ["arduino" ] == env .get ("PIOFRAMEWORK" ) and _get_board_memory_type (env ) in (
7082 "opi_opi" ,
@@ -225,6 +237,7 @@ def __fetch_fs_size(target, source, env):
225237env .Replace (
226238 __get_board_boot_mode = _get_board_boot_mode ,
227239 __get_board_f_flash = _get_board_f_flash ,
240+ __get_board_f_image = _get_board_f_image ,
228241 __get_board_flash_mode = _get_board_flash_mode ,
229242 __get_board_memory_type = _get_board_memory_type ,
230243
@@ -296,7 +309,7 @@ def __fetch_fs_size(target, source, env):
296309 '"$PYTHONEXE" "$OBJCOPY"' ,
297310 "--chip" , mcu , "elf2image" ,
298311 "--flash_mode" , "${__get_board_flash_mode(__env__)}" ,
299- "--flash_freq" , "${__get_board_f_flash (__env__)}" ,
312+ "--flash_freq" , "${__get_board_f_image (__env__)}" ,
300313 "--flash_size" , board .get ("upload.flash_size" , "4MB" ),
301314 "-o" , "$TARGET" , "$SOURCES"
302315 ]), "Building $TARGET" ),
@@ -432,7 +445,7 @@ def __fetch_fs_size(target, source, env):
432445 "--after" , board .get ("upload.after_reset" , "hard_reset" ),
433446 "write_flash" , "-z" ,
434447 "--flash_mode" , "${__get_board_flash_mode(__env__)}" ,
435- "--flash_freq" , "${__get_board_f_flash (__env__)}" ,
448+ "--flash_freq" , "${__get_board_f_image (__env__)}" ,
436449 "--flash_size" , board .get ("upload.flash_size" , "detect" )
437450 ],
438451 UPLOADCMD = '"$PYTHONEXE" "$UPLOADER" $UPLOADERFLAGS $ESP32_APP_OFFSET $SOURCE'
@@ -450,7 +463,7 @@ def __fetch_fs_size(target, source, env):
450463 "--after" , board .get ("upload.after_reset" , "hard_reset" ),
451464 "write_flash" , "-z" ,
452465 "--flash_mode" , "${__get_board_flash_mode(__env__)}" ,
453- "--flash_freq" , "${__get_board_f_flash (__env__)}" ,
466+ "--flash_freq" , "${__get_board_f_image (__env__)}" ,
454467 "--flash_size" , board .get ("upload.flash_size" , "detect" ),
455468 "$FS_START"
456469 ],
0 commit comments