command advance sweep
This commit is contained in:
@@ -163,6 +163,8 @@ class RxDivergenceConfig:
|
||||
clock_hz: int = 10_000_000
|
||||
uart_timing: bool = False
|
||||
uart_baud: int = 38_400
|
||||
uart_format: str = "8E1"
|
||||
tx_wire_timing: bool = False
|
||||
p7_input: int = 0xFF
|
||||
p9_fast_path: bool = True
|
||||
p9_fast_input: int = 0xFF
|
||||
@@ -259,6 +261,9 @@ def run_rx_divergence(
|
||||
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,
|
||||
)
|
||||
eeprom_load = config.eeprom_load
|
||||
if eeprom_load is not None and eeprom_load.is_file():
|
||||
@@ -271,7 +276,8 @@ def run_rx_divergence(
|
||||
f"SCR={emulator.sci1.scr:02X} SSR={emulator.sci1.ssr:02X} "
|
||||
f"rx_serviceable={int(_rx_ready(emulator))} "
|
||||
f"sci1_priority={_sci1_priority(emulator)} interrupt_mask={_interrupt_mask(emulator)} "
|
||||
f"clock_hz={emulator.clock_hz} p7_input={config.p7_input:#04x}"
|
||||
f"clock_hz={emulator.clock_hz} p7_input={config.p7_input:#04x} "
|
||||
f"uart_format={config.uart_format.upper()} tx_wire_timing={int(config.tx_wire_timing)}"
|
||||
)
|
||||
|
||||
heartbeat_summary = None
|
||||
@@ -303,6 +309,8 @@ def build_arg_parser() -> argparse.ArgumentParser:
|
||||
parser.add_argument("--wait-heartbeat-steps", type=int, default=RxDivergenceConfig.wait_heartbeat_steps)
|
||||
parser.add_argument("--uart-timing", action="store_true", help="inject bytes at UART character timing instead of waiting for RDRF clear")
|
||||
parser.add_argument("--uart-baud", type=parse_int, default=RxDivergenceConfig.uart_baud)
|
||||
parser.add_argument("--uart-format", default=RxDivergenceConfig.uart_format, help="UART character format for timing; real RCP link is 8E1")
|
||||
parser.add_argument("--tx-wire-timing", action="store_true", help="delay SCI1 TDRE/TXI by one modeled UART character after each TDR write")
|
||||
parser.add_argument("--post-frame-steps", type=int, default=RxDivergenceConfig.post_frame_steps)
|
||||
parser.add_argument("--per-byte-steps", type=int, default=RxDivergenceConfig.per_byte_steps)
|
||||
parser.add_argument("--clock-hz", type=parse_int, default=RxDivergenceConfig.clock_hz)
|
||||
@@ -341,6 +349,8 @@ def main(argv: list[str] | None = None) -> int:
|
||||
clock_hz=args.clock_hz,
|
||||
uart_timing=args.uart_timing,
|
||||
uart_baud=args.uart_baud,
|
||||
uart_format=args.uart_format,
|
||||
tx_wire_timing=args.tx_wire_timing,
|
||||
p7_input=args.p7_input,
|
||||
p9_fast_path=not args.no_p9_fast_path,
|
||||
p9_fast_input=args.p9_fast_input,
|
||||
@@ -363,7 +373,7 @@ def _trace_frame(emulator: H8536Emulator, frame: bytes, config: RxDivergenceConf
|
||||
steps_total = 0
|
||||
|
||||
if config.uart_timing:
|
||||
timing = UartTiming(baud=config.uart_baud)
|
||||
timing = UartTiming.from_format(config.uart_format, baud=config.uart_baud)
|
||||
steps_total, stopped_reason = _inject_frame_uart_timed(
|
||||
emulator,
|
||||
frame,
|
||||
|
||||
Reference in New Issue
Block a user