tools: set baudrate and port with otatool.

Bugfix: Allow setting options port -p and baudrate -b, with idf.py otatool commands.

Closes https://github.com/espressif/esp-idf/issues/8317
This commit is contained in:
Marek Fiala
2022-03-07 14:46:13 +01:00
parent c29343eb94
commit fdee1faf1e
2 changed files with 41 additions and 29 deletions

View File

@ -451,28 +451,6 @@ def action_extensions(base_actions, project_path):
'order_dependencies': ['reconfigure'], 'order_dependencies': ['reconfigure'],
'options': global_options, 'options': global_options,
}, },
'erase_otadata': {
'callback': build_target,
'hidden': True,
'help': 'Erase otadata partition.',
'options': global_options,
},
'erase-otadata': {
'callback': build_target,
'help': 'Erase otadata partition. Deprecated alias: "erase_otadata".',
'options': global_options,
},
'read_otadata': {
'callback': build_target,
'hidden': True,
'help': 'Read otadata partition.',
'options': global_options,
},
'read-otadata': {
'callback': build_target,
'help': 'Read otadata partition. Deprecated alias: "read_otadata".',
'options': global_options,
},
'build-system-targets': { 'build-system-targets': {
'callback': list_build_system_targets, 'callback': list_build_system_targets,
'help': 'Print list of build system targets.', 'help': 'Print list of build system targets.',

View File

@ -169,6 +169,17 @@ def action_extensions(base_actions, project_path):
task.action_args['encrypted'] = True task.action_args['encrypted'] = True
break break
def ota_targets(target_name, ctx, args):
"""
Execute the target build system to build target 'target_name'.
Additionally set global variables for baud and port.
Calls ensure_build_directory() which will run cmake to generate a build
directory (with the specified generator) as needed.
"""
args.port = args.port or _get_default_serial_port(args)
ensure_build_directory(args, ctx.info_name)
run_target(target_name, args, {'ESPBAUD': str(args.baud), 'ESPPORT': args.port})
baud_rate = { baud_rate = {
'names': ['-b', '--baud'], 'names': ['-b', '--baud'],
'help': 'Baud rate for flashing.', 'help': 'Baud rate for flashing.',
@ -185,19 +196,20 @@ def action_extensions(base_actions, project_path):
'default': None, 'default': None,
} }
BAUD_AND_PORT = [baud_rate, port]
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_rate, port], 'options': global_options + BAUD_AND_PORT,
'order_dependencies': ['all', 'erase-flash'], 'order_dependencies': ['all', 'erase-flash'],
}, },
'erase-flash': { 'erase-flash': {
'callback': erase_flash, 'callback': erase_flash,
'help': 'Erase entire flash chip. Deprecated alias: "erase_flash"', 'help': 'Erase entire flash chip. Deprecated alias: "erase_flash"',
'options': [baud_rate, port], 'options': BAUD_AND_PORT,
}, },
'erase_flash': { 'erase_flash': {
'callback': erase_flash, 'callback': erase_flash,
@ -207,7 +219,7 @@ def action_extensions(base_actions, project_path):
}, },
'hidden': True, 'hidden': True,
'help': 'Erase entire flash chip.', 'help': 'Erase entire flash chip.',
'options': [baud_rate, port], 'options': BAUD_AND_PORT,
}, },
'monitor': { 'monitor': {
'callback': 'callback':
@ -269,26 +281,26 @@ def action_extensions(base_actions, project_path):
'partition-table-flash': { 'partition-table-flash': {
'callback': flash, 'callback': flash,
'help': 'Flash partition table only. Deprecated alias: "partition_table-flash".', 'help': 'Flash partition table only. Deprecated alias: "partition_table-flash".',
'options': [baud_rate, port], 'options': BAUD_AND_PORT,
'order_dependencies': ['partition-table', 'erase-flash'], 'order_dependencies': ['partition-table', 'erase-flash'],
}, },
'partition_table-flash': { 'partition_table-flash': {
'callback': flash, 'callback': flash,
'hidden': True, 'hidden': True,
'help': 'Flash partition table only.', 'help': 'Flash partition table only.',
'options': [baud_rate, port], 'options': BAUD_AND_PORT,
'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_rate, port], 'options': BAUD_AND_PORT,
'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_rate, port], 'options': BAUD_AND_PORT,
'order_dependencies': ['app', 'erase-flash'], 'order_dependencies': ['app', 'erase-flash'],
}, },
'encrypted-app-flash': { 'encrypted-app-flash': {
@ -301,6 +313,28 @@ def action_extensions(base_actions, project_path):
'help': 'Flash the encrypted project.', 'help': 'Flash the encrypted project.',
'order_dependencies': ['all', 'erase-flash'], 'order_dependencies': ['all', 'erase-flash'],
}, },
'erase_otadata': {
'callback': ota_targets,
'hidden': True,
'help': 'Erase otadata partition.',
'options': global_options + BAUD_AND_PORT,
},
'erase-otadata': {
'callback': ota_targets,
'help': 'Erase otadata partition. Deprecated alias: "erase_otadata".',
'options': global_options + BAUD_AND_PORT,
},
'read_otadata': {
'callback': ota_targets,
'hidden': True,
'help': 'Read otadata partition.',
'options': global_options + BAUD_AND_PORT,
},
'read-otadata': {
'callback': ota_targets,
'help': 'Read otadata partition. Deprecated alias: "read_otadata".',
'options': global_options + BAUD_AND_PORT,
},
}, },
} }