From d0889d0d08cbfaa367c1888efba7a9b0bc7e7f28 Mon Sep 17 00:00:00 2001 From: Collin May Date: Sun, 21 Jul 2024 14:35:49 -0400 Subject: [PATCH] program.avr: make help text more clear about supported file extensions --- .../glasgow/applet/program/avr/__init__.py | 20 +++++++++++++------ 1 file changed, 14 insertions(+), 6 deletions(-) diff --git a/software/glasgow/applet/program/avr/__init__.py b/software/glasgow/applet/program/avr/__init__.py index 1d4d6888a..caf6e9c5f 100644 --- a/software/glasgow/applet/program/avr/__init__.py +++ b/software/glasgow/applet/program/avr/__init__.py @@ -33,6 +33,7 @@ import logging import argparse +import textwrap from abc import ABCMeta, abstractmethod from fx2.format import autodetect, input_data, output_data @@ -165,7 +166,14 @@ def bits(arg): return int(arg, 2) "identify", help="identify connected device") p_read = p_operation.add_parser( - "read", help="read device memories") + "read", help="read device memories", + formatter_class=argparse.RawDescriptionHelpFormatter, + epilog=textwrap.dedent(""" + File output format is determined by extension. The following extensions are recognized: + .bin raw binary + .hex raw hex + .ihex, .ihx intel hex + """)) p_read.add_argument( "-f", "--fuses", default=False, action="store_true", help="display fuse bytes") @@ -176,11 +184,11 @@ def bits(arg): return int(arg, 2) "-c", "--calibration", default=False, action="store_true", help="display calibration bytes") p_read.add_argument( - "-p", "--program", metavar="FILE", type=argparse.FileType("wb"), - help="write program memory contents to FILE") + "-p", "--program", metavar="FILE.bin", type=argparse.FileType("wb"), + help="write program memory contents to FILE.bin") p_read.add_argument( - "-e", "--eeprom", metavar="FILE", type=argparse.FileType("wb"), - help="write EEPROM contents to FILE") + "-e", "--eeprom", metavar="FILE.bin", type=argparse.FileType("wb"), + help="write EEPROM contents to FILE.bin") p_write_fuses = p_operation.add_parser( "write-fuses", help="write and verify device fuses") @@ -220,7 +228,7 @@ def _check_format(file, kind): try: autodetect(file) except ValueError: - raise ProgramAVRError("cannot determine %s file format" % kind) + raise ProgramAVRError("cannot determine %s file format using extension (expected .hex, .ihex, .ihx, or .bin)" % kind) async def interact(self, device, args, avr_iface): await avr_iface.programming_enable()