mirror of
https://github.com/espressif/esp-idf
synced 2025-03-10 01:29:21 -04:00
feat(esptool): allow to set force for write_flash
This commit is contained in:
parent
96f2d215a2
commit
faa82b060c
@ -43,7 +43,10 @@ else()
|
|||||||
list(APPEND serial_tool_cmd -b ${ESPBAUD})
|
list(APPEND serial_tool_cmd -b ${ESPBAUD})
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
# SERIAL_TOOL_ARGS is defined during the first cmake run
|
||||||
|
# SERIAL_TOOL_EXTRA_ARGS is used for additional arguments from the command line during run-time
|
||||||
list(APPEND serial_tool_cmd ${SERIAL_TOOL_ARGS})
|
list(APPEND serial_tool_cmd ${SERIAL_TOOL_ARGS})
|
||||||
|
list(APPEND serial_tool_cmd $ENV{SERIAL_TOOL_EXTRA_ARGS})
|
||||||
|
|
||||||
if(${SERIAL_TOOL_SILENT})
|
if(${SERIAL_TOOL_SILENT})
|
||||||
execute_process(COMMAND ${serial_tool_cmd}
|
execute_process(COMMAND ${serial_tool_cmd}
|
||||||
|
@ -3,6 +3,7 @@
|
|||||||
|
|
||||||
import json
|
import json
|
||||||
import os
|
import os
|
||||||
|
import shlex
|
||||||
import signal
|
import signal
|
||||||
import sys
|
import sys
|
||||||
from typing import Any, Dict, List, Optional
|
from typing import Any, Dict, List, Optional
|
||||||
@ -166,7 +167,7 @@ def action_extensions(base_actions: Dict, project_path: str) -> Dict:
|
|||||||
finally:
|
finally:
|
||||||
signal.signal(signal.SIGINT, old_handler)
|
signal.signal(signal.SIGINT, old_handler)
|
||||||
|
|
||||||
def flash(action: str, ctx: click.core.Context, args: PropertyDict) -> None:
|
def flash(action: str, ctx: click.core.Context, args: PropertyDict, force: bool, extra_args: str) -> None:
|
||||||
"""
|
"""
|
||||||
Run esptool to flash the entire project, from an argfile generated by the build system
|
Run esptool to flash the entire project, from an argfile generated by the build system
|
||||||
"""
|
"""
|
||||||
@ -177,7 +178,13 @@ def action_extensions(base_actions: Dict, project_path: str) -> Dict:
|
|||||||
return
|
return
|
||||||
|
|
||||||
args.port = args.port or get_default_serial_port()
|
args.port = args.port or get_default_serial_port()
|
||||||
run_target(action, args, {'ESPBAUD': str(args.baud), 'ESPPORT': args.port})
|
extra = list()
|
||||||
|
if force:
|
||||||
|
extra.append('--force')
|
||||||
|
if extra_args:
|
||||||
|
extra += shlex.split(extra_args)
|
||||||
|
env = {'ESPBAUD': str(args.baud), 'ESPPORT': args.port, 'SERIAL_TOOL_EXTRA_ARGS': ';'.join(extra)}
|
||||||
|
run_target(action, args, env)
|
||||||
|
|
||||||
def erase_flash(action: str, ctx: click.core.Context, args: PropertyDict) -> None:
|
def erase_flash(action: str, ctx: click.core.Context, args: PropertyDict) -> None:
|
||||||
ensure_build_directory(args, ctx.info_name)
|
ensure_build_directory(args, ctx.info_name)
|
||||||
@ -205,13 +212,27 @@ def action_extensions(base_actions: Dict, project_path: str) -> Dict:
|
|||||||
run_target(target_name, args, {'ESPBAUD': str(args.baud), 'ESPPORT': args.port})
|
run_target(target_name, args, {'ESPBAUD': str(args.baud), 'ESPPORT': args.port})
|
||||||
|
|
||||||
BAUD_AND_PORT = [BAUD_RATE, PORT]
|
BAUD_AND_PORT = [BAUD_RATE, PORT]
|
||||||
|
flash_options = BAUD_AND_PORT + [
|
||||||
|
{
|
||||||
|
'names': ['--force'],
|
||||||
|
'is_flag': True,
|
||||||
|
'help': 'Force write, skip security and compatibility checks. Use with caution!',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
'names': ['--extra-args'],
|
||||||
|
'help': (
|
||||||
|
'Pass extra arguments to esptool separated by space. For more details see `esptool.py write_flash --help`. '
|
||||||
|
'For example to compress and verify data use: `idf.py flash --extra-args="--compress --verify"`. Use with caution!'
|
||||||
|
)
|
||||||
|
}
|
||||||
|
]
|
||||||
serial_actions = {
|
serial_actions = {
|
||||||
'global_action_callbacks': [global_callback],
|
'global_action_callbacks': [global_callback],
|
||||||
'actions': {
|
'actions': {
|
||||||
'flash': {
|
'flash': {
|
||||||
'callback': flash,
|
'callback': flash,
|
||||||
'help': 'Flash the project.',
|
'help': 'Flash the project.',
|
||||||
'options': global_options + BAUD_AND_PORT,
|
'options': global_options + flash_options,
|
||||||
'order_dependencies': ['all', 'erase-flash'],
|
'order_dependencies': ['all', 'erase-flash'],
|
||||||
},
|
},
|
||||||
'erase-flash': {
|
'erase-flash': {
|
||||||
@ -300,29 +321,31 @@ def action_extensions(base_actions: Dict, project_path: str) -> Dict:
|
|||||||
'partition-table-flash': {
|
'partition-table-flash': {
|
||||||
'callback': flash,
|
'callback': flash,
|
||||||
'help': 'Flash partition table only.',
|
'help': 'Flash partition table only.',
|
||||||
'options': BAUD_AND_PORT,
|
'options': flash_options,
|
||||||
'order_dependencies': ['partition-table', 'erase-flash'],
|
'order_dependencies': ['partition-table', 'erase-flash'],
|
||||||
},
|
},
|
||||||
'bootloader-flash': {
|
'bootloader-flash': {
|
||||||
'callback': flash,
|
'callback': flash,
|
||||||
'help': 'Flash bootloader only.',
|
'help': 'Flash bootloader only.',
|
||||||
'options': BAUD_AND_PORT,
|
'options': flash_options,
|
||||||
'order_dependencies': ['bootloader', 'erase-flash'],
|
'order_dependencies': ['bootloader', 'erase-flash'],
|
||||||
},
|
},
|
||||||
'app-flash': {
|
'app-flash': {
|
||||||
'callback': flash,
|
'callback': flash,
|
||||||
'help': 'Flash the app only.',
|
'help': 'Flash the app only.',
|
||||||
'options': BAUD_AND_PORT,
|
'options': flash_options,
|
||||||
'order_dependencies': ['app', 'erase-flash'],
|
'order_dependencies': ['app', 'erase-flash'],
|
||||||
},
|
},
|
||||||
'encrypted-app-flash': {
|
'encrypted-app-flash': {
|
||||||
'callback': flash,
|
'callback': flash,
|
||||||
'help': 'Flash the encrypted app only.',
|
'help': 'Flash the encrypted app only.',
|
||||||
|
'options': flash_options,
|
||||||
'order_dependencies': ['app', 'erase-flash'],
|
'order_dependencies': ['app', 'erase-flash'],
|
||||||
},
|
},
|
||||||
'encrypted-flash': {
|
'encrypted-flash': {
|
||||||
'callback': flash,
|
'callback': flash,
|
||||||
'help': 'Flash the encrypted project.',
|
'help': 'Flash the encrypted project.',
|
||||||
|
'options': flash_options,
|
||||||
'order_dependencies': ['all', 'erase-flash'],
|
'order_dependencies': ['all', 'erase-flash'],
|
||||||
},
|
},
|
||||||
'erase-otadata': {
|
'erase-otadata': {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user