def get_args() -> argparse.Namespace:
"""Parse command-line arguments for board test."""
parser = argparse.ArgumentParser(
description=(
"Run standalone inference on the STM32N6570-DK: firmware reads WAV "
"from SD card, computes STFT on Cortex-M55, runs NPU inference, "
"and streams results over UART."
),
)
parser.add_argument(
"--model_path",
type=str,
default="",
help="Path to quantized .tflite model (default: from config.json)",
)
parser.add_argument(
"--model_config",
type=str,
default="",
help="Path to _model_config.json (required)",
)
parser.add_argument("--labels", type=str, default="", help="Path to _labels.txt")
parser.add_argument(
"--serial_port",
type=str,
default="/dev/ttyACM0",
help="Serial port for UART capture (default: /dev/ttyACM0)",
)
parser.add_argument("--top_k", type=int, default=5, help="Top-K predictions per file")
parser.add_argument(
"--score_threshold",
type=float,
default=0.01,
help="Minimum score to display",
)
parser.add_argument("--config", type=str, default="config.json", help="Deploy config JSON")
parser.add_argument(
"--timeout",
type=int,
default=300,
help="Max seconds to wait for firmware (default: 300)",
)
parser.add_argument(
"--save_results",
type=str,
default="",
help="Save results summary to a CSV file",
)
return parser.parse_args()