@@ -136,7 +136,6 @@ def _update_max_upload_size(env):
136
136
CC = "xtensa-lx106-elf-gcc" ,
137
137
CXX = "xtensa-lx106-elf-g++" ,
138
138
GDB = "xtensa-lx106-elf-gdb" ,
139
- OBJCOPY = "esptool" ,
140
139
RANLIB = "xtensa-lx106-elf-ranlib" ,
141
140
SIZETOOL = "xtensa-lx106-elf-size" ,
142
141
@@ -148,16 +147,18 @@ def _update_max_upload_size(env):
148
147
149
148
MKSPIFFSTOOL = "mkspiffs" ,
150
149
151
- SIZEPROGREGEXP = r"^(?:\.irom0\.text|\.text|\.data|\.rodata|)\s+([0-9]+).*" ,
150
+ SIZEPROGREGEXP = r"^(?:\.irom0\.text|\.text|\.text1|\. data|\.rodata|)\s+([0-9]+).*" ,
152
151
SIZEDATAREGEXP = r"^(?:\.data|\.rodata|\.bss)\s+([0-9]+).*" ,
153
152
SIZECHECKCMD = "$SIZETOOL -A -d $SOURCES" ,
154
153
SIZEPRINTCMD = '$SIZETOOL -B -d $SOURCES' ,
155
154
156
155
ERASEFLAGS = [
157
- "-cp " , "$UPLOAD_PORT " ,
158
- "-cd " , "$UPLOAD_RESETMETHOD"
156
+ "--chip " , "esp8266 " ,
157
+ "--port " , '"$UPLOAD_PORT"'
159
158
],
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' ,
161
162
162
163
PROGSUFFIX = ".elf"
163
164
)
@@ -192,79 +193,38 @@ def _update_max_upload_size(env):
192
193
emitter = __fetch_spiffs_size ,
193
194
source_factory = env .Dir ,
194
195
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"
195
217
)
196
218
)
197
219
)
198
220
199
221
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
-
263
222
#
264
223
# Target: Build executable and linkable firmware or SPIFFS image
265
224
#
266
225
267
226
target_elf = env .BuildProgram ()
227
+
268
228
if "nobuild" in COMMAND_LINE_TARGETS :
269
229
if set (["uploadfs" , "uploadfsota" ]) & set (COMMAND_LINE_TARGETS ):
270
230
fetch_spiffs_size (env )
@@ -343,7 +303,8 @@ def _update_max_upload_size(env):
343
303
"espressif8266.html#over-the-air-ota-update\n " )
344
304
env .Replace (
345
305
UPLOADER = join (
346
- platform .get_package_dir ("tool-espotapy" ) or "" , "espota.py" ),
306
+ platform .get_package_dir ("framework-arduinoespressif8266" ) or "" ,
307
+ "tools" , "espota.py" ),
347
308
UPLOADERFLAGS = ["--debug" , "--progress" , "-i" , "$UPLOAD_PORT" ],
348
309
UPLOADCMD = '"$PYTHONEXE" "$UPLOADER" $UPLOADERFLAGS -f $SOURCE'
349
310
)
@@ -353,24 +314,34 @@ def _update_max_upload_size(env):
353
314
354
315
elif upload_protocol == "esptool" :
355
316
env .Replace (
356
- UPLOADER = "esptool" ,
317
+ UPLOADER = join (
318
+ platform .get_package_dir ("tool-esptoolpy" ) or "" , "esptool.py" ),
357
319
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"
361
324
],
362
- UPLOADCMD = '$ UPLOADER $UPLOADERFLAGS -cf $SOURCE' ,
325
+ UPLOADCMD = '"$PYTHONEXE" "$ UPLOADER" $UPLOADERFLAGS 0 $SOURCE'
363
326
)
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
+
371
342
upload_actions = [
372
- env .VerboseAction (
373
- env . AutodetectUploadPort , "Looking for upload port..." ),
343
+ env .VerboseAction (env . AutodetectUploadPort ,
344
+ "Looking for upload port..." ),
374
345
env .VerboseAction ("$UPLOADCMD" , "Uploading $SOURCE" )
375
346
]
376
347
@@ -391,7 +362,7 @@ def _update_max_upload_size(env):
391
362
env .Alias ("erase" , None , [
392
363
env .VerboseAction (env .AutodetectUploadPort ,
393
364
"Looking for serial port..." ),
394
- env .VerboseAction ("$ERASECMD" , "Ready for erasing " )
365
+ env .VerboseAction ("$ERASECMD" , "Erasing... " )
395
366
]))
396
367
397
368
0 commit comments