@@ -136,7 +136,6 @@ def _update_max_upload_size(env):
136136 CC = "xtensa-lx106-elf-gcc" ,
137137 CXX = "xtensa-lx106-elf-g++" ,
138138 GDB = "xtensa-lx106-elf-gdb" ,
139- OBJCOPY = "esptool" ,
140139 RANLIB = "xtensa-lx106-elf-ranlib" ,
141140 SIZETOOL = "xtensa-lx106-elf-size" ,
142141
@@ -148,16 +147,18 @@ def _update_max_upload_size(env):
148147
149148 MKSPIFFSTOOL = "mkspiffs" ,
150149
151- SIZEPROGREGEXP = r"^(?:\.irom0\.text|\.text|\.data|\.rodata|)\s+([0-9]+).*" ,
150+ SIZEPROGREGEXP = r"^(?:\.irom0\.text|\.text|\.text1|\. data|\.rodata|)\s+([0-9]+).*" ,
152151 SIZEDATAREGEXP = r"^(?:\.data|\.rodata|\.bss)\s+([0-9]+).*" ,
153152 SIZECHECKCMD = "$SIZETOOL -A -d $SOURCES" ,
154153 SIZEPRINTCMD = '$SIZETOOL -B -d $SOURCES' ,
155154
156155 ERASEFLAGS = [
157- "-cp " , "$UPLOAD_PORT " ,
158- "-cd " , "$UPLOAD_RESETMETHOD"
156+ "--chip " , "esp8266 " ,
157+ "--port " , '"$UPLOAD_PORT"'
159158 ],
160- ERASECMD = 'esptool $ERASEFLAGS -ce' ,
159+ ERASETOOL = join (
160+ platform .get_package_dir ("tool-esptoolpy" ) or "" , "esptool.py" ),
161+ ERASECMD = '"$PYTHONEXE" "$ERASETOOL" $ERASEFLAGS erase_flash' ,
161162
162163 PROGSUFFIX = ".elf"
163164)
@@ -192,79 +193,38 @@ def _update_max_upload_size(env):
192193 emitter = __fetch_spiffs_size ,
193194 source_factory = env .Dir ,
194195 suffix = ".bin"
196+ ),
197+
198+ # Default for ESP8266 RTOS SDK and Native SDK common configuration
199+ # Frameworks may override "ElfToBin" builder
200+ ElfToBin = Builder (
201+ action = env .VerboseAction (" " .join ([
202+ 'esptool' ,
203+ "-eo" , "$SOURCES" ,
204+ "-bo" , "${TARGETS[0]}" ,
205+ "-bm" , "$BOARD_FLASH_MODE" ,
206+ "-bf" , "${__get_board_f_flash(__env__)}" ,
207+ "-bz" , "${__get_flash_size(__env__)}" ,
208+ "-bs" , ".text" ,
209+ "-bs" , ".data" ,
210+ "-bs" , ".rodata" ,
211+ "-bc" , "-ec" ,
212+ "-eo" , "$SOURCES" ,
213+ "-es" , ".irom0.text" , "${TARGETS[1]}" ,
214+ "-ec" , "-v"
215+ ]), "Building $TARGET" ),
216+ suffix = ".bin"
195217 )
196218 )
197219)
198220
199221
200- #
201- # Framework and SDK specific configuration
202- #
203-
204- if env .subst ("$PIOFRAMEWORK" ) in ("arduino" , "simba" ):
205- if "simba" in env .subst ("$PIOFRAMEWORK" ):
206- ebootelf_path = join (
207- platform .get_package_dir ("framework-simba" ) or "" , "3pp" ,
208- "esp8266Arduino" , "2.3.0" , "bootloaders" , "eboot" , "eboot.elf" )
209- else :
210- ebootelf_path = join (
211- platform .get_package_dir ("framework-arduinoespressif8266" ) or "" ,
212- "bootloaders" , "eboot" , "eboot.elf" )
213-
214- env .Append (
215- BUILDERS = dict (
216- ElfToBin = Builder (
217- action = env .VerboseAction (" " .join ([
218- '"$OBJCOPY"' ,
219- "-eo" , '"%s"' % ebootelf_path ,
220- "-bo" , "$TARGET" ,
221- "-bm" , "$BOARD_FLASH_MODE" ,
222- "-bf" , "${__get_board_f_flash(__env__)}" ,
223- "-bz" , "${__get_flash_size(__env__)}" ,
224- "-bs" , ".text" ,
225- "-bp" , "4096" ,
226- "-ec" ,
227- "-eo" , "$SOURCES" ,
228- "-bs" , ".irom0.text" ,
229- "-bs" , ".text" ,
230- "-bs" , ".data" ,
231- "-bs" , ".rodata" ,
232- "-bc" , "-ec"
233- ]), "Building $TARGET" ),
234- suffix = ".bin"
235- )
236- )
237- )
238- else :
239- # ESP8266 RTOS SDK and Native SDK common configuration
240- env .Append (
241- BUILDERS = dict (
242- ElfToBin = Builder (
243- action = env .VerboseAction (" " .join ([
244- '"$OBJCOPY"' ,
245- "-eo" , "$SOURCES" ,
246- "-bo" , "${TARGETS[0]}" ,
247- "-bm" , "$BOARD_FLASH_MODE" ,
248- "-bf" , "${__get_board_f_flash(__env__)}" ,
249- "-bz" , "${__get_flash_size(__env__)}" ,
250- "-bs" , ".text" ,
251- "-bs" , ".data" ,
252- "-bs" , ".rodata" ,
253- "-bc" , "-ec" ,
254- "-eo" , "$SOURCES" ,
255- "-es" , ".irom0.text" , "${TARGETS[1]}" ,
256- "-ec" , "-v"
257- ]), "Building $TARGET" ),
258- suffix = ".bin"
259- )
260- )
261- )
262-
263222#
264223# Target: Build executable and linkable firmware or SPIFFS image
265224#
266225
267226target_elf = env .BuildProgram ()
227+
268228if "nobuild" in COMMAND_LINE_TARGETS :
269229 if set (["uploadfs" , "uploadfsota" ]) & set (COMMAND_LINE_TARGETS ):
270230 fetch_spiffs_size (env )
@@ -343,7 +303,8 @@ def _update_max_upload_size(env):
343303 "espressif8266.html#over-the-air-ota-update\n " )
344304 env .Replace (
345305 UPLOADER = join (
346- platform .get_package_dir ("tool-espotapy" ) or "" , "espota.py" ),
306+ platform .get_package_dir ("framework-arduinoespressif8266" ) or "" ,
307+ "tools" , "espota.py" ),
347308 UPLOADERFLAGS = ["--debug" , "--progress" , "-i" , "$UPLOAD_PORT" ],
348309 UPLOADCMD = '"$PYTHONEXE" "$UPLOADER" $UPLOADERFLAGS -f $SOURCE'
349310 )
@@ -353,24 +314,34 @@ def _update_max_upload_size(env):
353314
354315elif upload_protocol == "esptool" :
355316 env .Replace (
356- UPLOADER = "esptool" ,
317+ UPLOADER = join (
318+ platform .get_package_dir ("tool-esptoolpy" ) or "" , "esptool.py" ),
357319 UPLOADERFLAGS = [
358- "-cd" , "$UPLOAD_RESETMETHOD" ,
359- "-cb" , "$UPLOAD_SPEED" ,
360- "-cp" , '"$UPLOAD_PORT"'
320+ "--chip" , "esp8266" ,
321+ "--port" , '"$UPLOAD_PORT"' ,
322+ "--baud" , "$UPLOAD_SPEED" ,
323+ "write_flash"
361324 ],
362- UPLOADCMD = '$ UPLOADER $UPLOADERFLAGS -cf $SOURCE' ,
325+ UPLOADCMD = '"$PYTHONEXE" "$ UPLOADER" $UPLOADERFLAGS 0 $SOURCE'
363326 )
364- if env .subst ("$PIOFRAMEWORK" ) not in ("arduino" , "simba" ): # SDK
365- for image in env .get ("FLASH_EXTRA_IMAGES" , []):
366- env .Append (
367- UPLOADERFLAGS = ["-ca" , image [0 ], "-cf" , env .subst (image [1 ])])
368- env .Replace (UPLOADCMD = "$UPLOADER $UPLOADERFLAGS" )
369- elif "uploadfs" in COMMAND_LINE_TARGETS :
370- env .Append (UPLOADERFLAGS = ["-ca" , "${hex(SPIFFS_START)}" ])
327+ for image in env .get ("FLASH_EXTRA_IMAGES" , []):
328+ env .Append (UPLOADERFLAGS = [image [0 ], env .subst (image [1 ])])
329+
330+ if "uploadfs" in COMMAND_LINE_TARGETS :
331+ env .Replace (
332+ UPLOADERFLAGS = [
333+ "--chip" , "esp8266" ,
334+ "--port" , '"$UPLOAD_PORT"' ,
335+ "--baud" , "$UPLOAD_SPEED" ,
336+ "write_flash" ,
337+ "$SPIFFS_START"
338+ ],
339+ UPLOADCMD = '"$PYTHONEXE" "$UPLOADER" $UPLOADERFLAGS $SOURCE' ,
340+ )
341+
371342 upload_actions = [
372- env .VerboseAction (
373- env . AutodetectUploadPort , "Looking for upload port..." ),
343+ env .VerboseAction (env . AutodetectUploadPort ,
344+ "Looking for upload port..." ),
374345 env .VerboseAction ("$UPLOADCMD" , "Uploading $SOURCE" )
375346 ]
376347
@@ -391,7 +362,7 @@ def _update_max_upload_size(env):
391362 env .Alias ("erase" , None , [
392363 env .VerboseAction (env .AutodetectUploadPort ,
393364 "Looking for serial port..." ),
394- env .VerboseAction ("$ERASECMD" , "Ready for erasing " )
365+ env .VerboseAction ("$ERASECMD" , "Erasing... " )
395366 ]))
396367
397368
0 commit comments