Upload filesystem via Picotool working
This commit is contained in:
		| @@ -17,6 +17,7 @@ from platform import system | |||||||
| from os import makedirs | from os import makedirs | ||||||
| from os.path import isdir, join | from os.path import isdir, join | ||||||
| import re | import re | ||||||
|  | import time | ||||||
|  |  | ||||||
| from platformio.util import get_serial_ports | from platformio.util import get_serial_ports | ||||||
|  |  | ||||||
| @@ -258,6 +259,15 @@ target_size = env.Alias( | |||||||
|     env.VerboseAction("$SIZEPRINTCMD", "Calculating size $SOURCE")) |     env.VerboseAction("$SIZEPRINTCMD", "Calculating size $SOURCE")) | ||||||
| AlwaysBuild(target_size) | AlwaysBuild(target_size) | ||||||
|  |  | ||||||
|  | def DelayBeforeUpload(target, source, env):  # pylint: disable=W0613,W0621 | ||||||
|  |     time.sleep(0.5) | ||||||
|  |  | ||||||
|  | def RebootPico(target, source, env):  | ||||||
|  |     time.sleep(0.5) | ||||||
|  |     env.Execute( | ||||||
|  |         '"%s" reboot' % | ||||||
|  |             join(platform.get_package_dir("tool-rp2040tools") or "", "picotool") | ||||||
|  |     ) | ||||||
| # | # | ||||||
| # Target: Upload by default .bin file | # Target: Upload by default .bin file | ||||||
| # | # | ||||||
| @@ -279,11 +289,28 @@ elif upload_protocol == "picotool": | |||||||
|         UPLOADCMD="$UPLOADER $UPLOADERFLAGS $SOURCES" |         UPLOADCMD="$UPLOADER $UPLOADERFLAGS $SOURCES" | ||||||
|     ) |     ) | ||||||
|  |  | ||||||
|  |     if "uploadfs" in COMMAND_LINE_TARGETS: | ||||||
|  |         env.Replace( | ||||||
|  |             UPLOADER=join(platform.get_package_dir("tool-rp2040tools") or "", "picotool"), | ||||||
|  |             UPLOADERFLAGS=[ | ||||||
|  |                 "load", | ||||||
|  |                 "--verify" | ||||||
|  |             ], | ||||||
|  |             UPLOADCMD="$UPLOADER $UPLOADERFLAGS $SOURCES --offset ${hex(FS_START)}", | ||||||
|  |         ) | ||||||
|  |  | ||||||
|     upload_actions = [ |     upload_actions = [ | ||||||
|         env.VerboseAction(BeforeUpload, "Looking for upload port..."), |         env.VerboseAction(BeforeUpload, "Looking for upload port..."), | ||||||
|         env.VerboseAction("$UPLOADCMD", "Uploading $SOURCE"), |         env.VerboseAction("$UPLOADCMD", "Uploading $SOURCE"), | ||||||
|     ] |     ] | ||||||
|  |  | ||||||
|  |     # picotool seems to need just a tiny bit of delay, but rp2040 load not.. | ||||||
|  |     if "uploadfs" in COMMAND_LINE_TARGETS: | ||||||
|  |         upload_actions.insert(1, env.VerboseAction(DelayBeforeUpload, "Delaying a tiny bit...")) | ||||||
|  |         # reboot after filesystem upload | ||||||
|  |         upload_actions.append(env.VerboseAction(RebootPico, "Rebooting device...")) | ||||||
|  |  | ||||||
|  |  | ||||||
|     upload_source = target_elf |     upload_source = target_elf | ||||||
|  |  | ||||||
| elif upload_protocol.startswith("jlink"): | elif upload_protocol.startswith("jlink"): | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user