diff --git a/hardwario/cli/chester/app.py b/hardwario/cli/chester/app.py index fc78e7c..f561b5a 100644 --- a/hardwario/cli/chester/app.py +++ b/hardwario/cli/chester/app.py @@ -19,8 +19,8 @@ @click.group(name='app') -@click.option('--jlink-sn', '-n', type=int, metavar='SERIAL_NUMBER', help='JLink serial number') -@click.option('--jlink-speed', type=int, metavar="SPEED", help='JLink clock speed in kHz', default=2000, show_default=True) +@click.option('--jlink-sn', '-n', type=int, metavar='SERIAL_NUMBER', help='J-Link serial number') +@click.option('--jlink-speed', type=int, metavar="SPEED", help='J-Link clock speed in kHz', default=2000, show_default=True) @click.option('--nrfjprog-log', is_flag=True, help='Enable nrfjprog log.') @click.pass_context def cli(ctx, jlink_sn, jlink_speed, nrfjprog_log): @@ -30,8 +30,8 @@ def cli(ctx, jlink_sn, jlink_speed, nrfjprog_log): @cli.command('flash') @click.option('--halt', is_flag=True, help='Halt program.') -@click.option('--jlink-sn', '-n', type=int, metavar='SERIAL_NUMBER', help='JLink serial number') -@click.option('--jlink-speed', type=int, metavar="SPEED", help='JLink clock speed in kHz', default=DEFAULT_JLINK_SPEED_KHZ, show_default=True) +@click.option('--jlink-sn', '-n', type=int, metavar='SERIAL_NUMBER', help='J-Link serial number') +@click.option('--jlink-speed', type=int, metavar="SPEED", help='J-Link clock speed in kHz', default=DEFAULT_JLINK_SPEED_KHZ, show_default=True) @click.argument('hex_file', metavar='HEX_FILE_OR_ID', callback=validate_hex_file, default=find_hex('.', no_exception=True)) @click.pass_context def command_flash(ctx, halt, jlink_sn, jlink_speed, hex_file): @@ -55,8 +55,8 @@ def progress(text, ctx={'len': 0}): @cli.command('erase') @click.option('--all', is_flag=True, help='Erase application firmware incl. UICR area.') -@click.option('--jlink-sn', '-n', type=int, metavar='SERIAL_NUMBER', help='JLink serial number') -@click.option('--jlink-speed', type=int, metavar="SPEED", help='JLink clock speed in kHz', default=DEFAULT_JLINK_SPEED_KHZ, show_default=True) +@click.option('--jlink-sn', '-n', type=int, metavar='SERIAL_NUMBER', help='J-Link serial number') +@click.option('--jlink-speed', type=int, metavar="SPEED", help='J-Link clock speed in kHz', default=DEFAULT_JLINK_SPEED_KHZ, show_default=True) @click.pass_context def command_erase(ctx, all, jlink_sn, jlink_speed): '''Erase application firmware w/o UICR area.''' @@ -72,8 +72,8 @@ def command_erase(ctx, all, jlink_sn, jlink_speed): @cli.command('reset') @click.option('--halt', is_flag=True, help='Halt program.') -@click.option('--jlink-sn', '-n', type=int, metavar='SERIAL_NUMBER', help='JLink serial number') -@click.option('--jlink-speed', type=int, metavar="SPEED", help='JLink clock speed in kHz', default=DEFAULT_JLINK_SPEED_KHZ, show_default=True) +@click.option('--jlink-sn', '-n', type=int, metavar='SERIAL_NUMBER', help='J-Link serial number') +@click.option('--jlink-speed', type=int, metavar="SPEED", help='J-Link clock speed in kHz', default=DEFAULT_JLINK_SPEED_KHZ, show_default=True) @click.pass_context def command_reset(ctx, halt, jlink_sn, jlink_speed): '''Reset application firmware.''' @@ -126,8 +126,8 @@ def command_console(ctx, reset, latency, history_file, console_file, jlink_sn, j @cli.group(name='pib') -@click.option('--jlink-sn', '-n', type=int, metavar='SERIAL_NUMBER', help='JLink serial number') -@click.option('--jlink-speed', type=int, metavar="SPEED", help='JLink clock speed in kHz', default=DEFAULT_JLINK_SPEED_KHZ, show_default=True) +@click.option('--jlink-sn', '-n', type=int, metavar='SERIAL_NUMBER', help='J-Link serial number') +@click.option('--jlink-speed', type=int, metavar="SPEED", help='J-Link clock speed in kHz', default=DEFAULT_JLINK_SPEED_KHZ, show_default=True) @click.pass_context def group_pib(ctx, jlink_sn, jlink_speed): '''HARDWARIO Product Information Block.''' @@ -186,8 +186,8 @@ def command_pib_write(ctx, vendor_name, product_name, hw_variant, hw_revision, s @cli.group(name='uicr') -@click.option('--jlink-sn', '-n', type=int, metavar='SERIAL_NUMBER', help='JLink serial number') -@click.option('--jlink-speed', type=int, metavar="SPEED", help='JLink clock speed in kHz', default=DEFAULT_JLINK_SPEED_KHZ, show_default=True) +@click.option('--jlink-sn', '-n', type=int, metavar='SERIAL_NUMBER', help='J-Link serial number') +@click.option('--jlink-speed', type=int, metavar="SPEED", help='J-Link clock speed in kHz', default=DEFAULT_JLINK_SPEED_KHZ, show_default=True) @click.pass_context def group_uicr(ctx, jlink_sn, jlink_speed): '''UICR flash area.''' diff --git a/hardwario/cli/device/__init__.py b/hardwario/cli/device/__init__.py index b853c48..6711f76 100644 --- a/hardwario/cli/device/__init__.py +++ b/hardwario/cli/device/__init__.py @@ -11,8 +11,8 @@ def cli(ctx): def create_group(family: str): @cli.group(name=family.lower(), help=f'Commands for {family} devices.') - @click.option('--jlink-sn', '-n', type=int, metavar='SERIAL_NUMBER', help='JLink serial number') - @click.option('--jlink-speed', type=int, metavar="SPEED", help='JLink clock speed in kHz', default=DEFAULT_JLINK_SPEED_KHZ, show_default=True) + @click.option('--jlink-sn', '-n', type=int, metavar='SERIAL_NUMBER', help='J-Link serial number') + @click.option('--jlink-speed', type=int, metavar="SPEED", help='J-Link clock speed in kHz', default=DEFAULT_JLINK_SPEED_KHZ, show_default=True) @click.pass_context def group(ctx, jlink_sn, jlink_speed): ctx.obj['prog'] = NRFJProg(family, jlink_sn=jlink_sn, jlink_speed=jlink_speed) diff --git a/hardwario/cli/device/command.py b/hardwario/cli/device/command.py index 287ec9f..17e06f3 100644 --- a/hardwario/cli/device/command.py +++ b/hardwario/cli/device/command.py @@ -73,8 +73,9 @@ def nrf_console(cli: click.Group, family): @click.option('--latency', type=int, help='Latency for RTT readout in ms.', show_default=True, default=50) @click.option('--history-file', type=click.Path(writable=True), show_default=True, default=default_history_file) @click.option('--console-file', type=click.Path(writable=True), show_default=True, default=default_console_file) + @click.option('--device', type=str, help='J-Link device name.', default=None) @click.pass_context - def command_console(ctx, reset, latency, history_file, console_file): + def command_console(ctx, reset, latency, history_file, console_file, device): '''Start interactive console for shell and logging.''' with ctx.obj['prog'] as prog: @@ -85,9 +86,10 @@ def command_console(ctx, reset, latency, history_file, console_file): device_info = prog.read_device_info() logger.info(f'device info: {device_info}') - device_version = device_info[0].name - end = device_version.rfind('_') - chip_name = device_version[:end] + if not device: + device_version = device_info[0].name + end = device_version.rfind('_') + device = device_version[:end] prog = ctx.obj['prog'] @@ -95,7 +97,7 @@ def command_console(ctx, reset, latency, history_file, console_file): jlink.open(serial_no=prog.get_serial_number()) jlink.set_speed(prog.get_speed()) jlink.set_tif(pylink.enums.JLinkInterfaces.SWD) - jlink.connect(chip_name) + jlink.connect(device) connector = PyLinkRTTConnector(jlink, latency=latency) diff --git a/hardwario/device/connector/__init__.py b/hardwario/device/connector/__init__.py new file mode 100644 index 0000000..e69de29