command advance sweep
This commit is contained in:
@@ -178,6 +178,8 @@ class ReplayConfig:
|
||||
clock_hz: int = 10_000_000
|
||||
uart_timing: bool = True
|
||||
uart_baud: int = 38_400
|
||||
uart_format: str = "8E1"
|
||||
tx_wire_timing: bool = True
|
||||
p9_fast_path: bool = True
|
||||
p9_fast_input: int = 0xFF
|
||||
p9_fast_optimistic_wrapper: bool = False
|
||||
@@ -248,6 +250,9 @@ def run_bench_replay(log_path: Path, *, rom_path: Path | None = None, config: Re
|
||||
p9_fast_default_wrapper_success=config.p9_fast_optimistic_wrapper,
|
||||
p7_input=config.p7_input,
|
||||
eeprom_seed=config.eeprom_seed,
|
||||
sci1_tx_timing=UartTiming.from_format(config.uart_format, baud=config.uart_baud)
|
||||
if config.tx_wire_timing
|
||||
else None,
|
||||
)
|
||||
|
||||
context = RunContext()
|
||||
@@ -258,6 +263,7 @@ def run_bench_replay(log_path: Path, *, rom_path: Path | None = None, config: Re
|
||||
f"rx_serviceable={int(_rx_ready(emulator))} "
|
||||
f"sci1_priority={_sci1_priority(emulator)} interrupt_mask={_interrupt_mask(emulator)} "
|
||||
f"clock_hz={emulator.clock_hz} "
|
||||
f"uart_format={config.uart_format.upper()} tx_wire_timing={int(config.tx_wire_timing)} "
|
||||
f"lcd_display={emulator.memory.lcd.display_text(lines=4)!r}"
|
||||
)
|
||||
|
||||
@@ -270,7 +276,7 @@ def run_bench_replay(log_path: Path, *, rom_path: Path | None = None, config: Re
|
||||
gap_frames = tuple(emulator.sci1.tx_frames[tx_frame_start_before_delay:])
|
||||
tx_frame_start = len(emulator.sci1.tx_frames)
|
||||
if config.uart_timing:
|
||||
timing = UartTiming(baud=config.uart_baud)
|
||||
timing = UartTiming.from_format(config.uart_format, baud=config.uart_baud)
|
||||
steps_during_rx, inject_reason = _inject_frame_uart_timed(
|
||||
emulator,
|
||||
host.frame,
|
||||
@@ -367,7 +373,9 @@ def build_arg_parser() -> argparse.ArgumentParser:
|
||||
parser.add_argument("--interval-steps", type=int, default=ReplayConfig.interval_steps)
|
||||
parser.add_argument("--clock-hz", type=lambda text: int(text, 0), default=ReplayConfig.clock_hz)
|
||||
parser.add_argument("--uart-baud", type=lambda text: int(text, 0), default=ReplayConfig.uart_baud, help="baud rate for bench-style UART injection")
|
||||
parser.add_argument("--uart-format", default=ReplayConfig.uart_format, help="UART character format for bench-style timing; real RCP link is 8E1")
|
||||
parser.add_argument("--polite-rx", action="store_true", help="wait for each RX byte to be consumed before injecting the next byte")
|
||||
parser.add_argument("--no-tx-wire-timing", action="store_true", help="use the legacy tiny TDRE delay instead of modeled UART TX character time")
|
||||
parser.add_argument("--frt1-ocia-steps", type=int, default=ReplayConfig.frt1_ocia_steps)
|
||||
parser.add_argument("--frt2-ocia-steps", type=int, default=ReplayConfig.frt2_ocia_steps)
|
||||
parser.add_argument("--no-p9-fast-path", action="store_true", help="disable shortcut handling for known P9 routines")
|
||||
@@ -395,6 +403,8 @@ def main(argv: list[str] | None = None) -> int:
|
||||
clock_hz=args.clock_hz,
|
||||
uart_timing=not args.polite_rx,
|
||||
uart_baud=args.uart_baud,
|
||||
uart_format=args.uart_format,
|
||||
tx_wire_timing=not args.no_tx_wire_timing,
|
||||
p9_fast_path=not args.no_p9_fast_path,
|
||||
p9_fast_input=args.p9_fast_input,
|
||||
p9_fast_optimistic_wrapper=args.p9_fast_optimistic_wrapper,
|
||||
|
||||
Reference in New Issue
Block a user