Pin additons
This commit is contained in:
18
h8536/cli.py
18
h8536/cli.py
@@ -4,6 +4,7 @@ import argparse
|
||||
from pathlib import Path
|
||||
|
||||
from .analysis import build_call_graph, collect_labels, linear_sweep, trace
|
||||
from .board_profile import analyze_board_profile
|
||||
from .cycles import annotate_cycles
|
||||
from .data_analysis import analyze_unreached_data
|
||||
from .dataflow import analyze_dataflow
|
||||
@@ -16,6 +17,7 @@ from .peripheral_access import analyze_peripheral_access
|
||||
from .render import format_callgraph_dot, format_listing, write_json
|
||||
from .rom import Rom
|
||||
from .sci import analyze_sci
|
||||
from .sci_protocol import analyze_sci_protocol
|
||||
from .symbols import discover_symbols
|
||||
from .timing import summarize_timing
|
||||
from .vectors import read_dtc_vectors_max, read_dtc_vectors_min, read_vectors_max, read_vectors_min
|
||||
@@ -40,6 +42,12 @@ def main() -> int:
|
||||
parser.add_argument("--entry", type=parse_int, action="append", default=[], help="extra entry point to trace")
|
||||
parser.add_argument("--br", type=parse_int, default=None, help="optional BR value for @aa:8 short absolute operands")
|
||||
parser.add_argument("--clock-hz", type=parse_int, default=None, help="oscillator clock in Hz for SCI baud inference")
|
||||
parser.add_argument(
|
||||
"--board-profile",
|
||||
choices=("sony_rcp_tx7", "none"),
|
||||
default="sony_rcp_tx7",
|
||||
help="emit board-specific annotations for known physical traces",
|
||||
)
|
||||
parser.add_argument("--linear", action="store_true", help="linear-sweep the selected range instead of tracing from vectors")
|
||||
parser.add_argument("--cycles", action="store_true", help="append Appendix A cycle estimates to assembly comments")
|
||||
parser.add_argument("--timing", action="store_true", help="include straight-line block and loop cycle summaries")
|
||||
@@ -81,6 +89,12 @@ def main() -> int:
|
||||
symbols = discover_symbols(instructions, data_candidates=data_candidates)
|
||||
timing_summary = summarize_timing(instructions, labels, call_graph) if args.timing else None
|
||||
sci_analysis = analyze_sci(instructions, clock_hz=args.clock_hz)
|
||||
sci_protocol = analyze_sci_protocol(instructions)
|
||||
board_profile = (
|
||||
None
|
||||
if args.board_profile == "none"
|
||||
else analyze_board_profile(instructions, board=args.board_profile)
|
||||
)
|
||||
peripheral_access = analyze_peripheral_access(instructions)
|
||||
indirect_flow = analyze_indirect_flow(rom, instructions, labels)
|
||||
lcd_text = analyze_lcd_text(rom, instructions, start=args.start, end=end)
|
||||
@@ -101,6 +115,8 @@ def main() -> int:
|
||||
timing_summary=timing_summary,
|
||||
show_cycles=args.cycles,
|
||||
sci_analysis=sci_analysis,
|
||||
sci_protocol=sci_protocol,
|
||||
board_profile=board_profile,
|
||||
peripheral_access=peripheral_access,
|
||||
indirect_flow=indirect_flow,
|
||||
dataflow=dataflow,
|
||||
@@ -122,6 +138,8 @@ def main() -> int:
|
||||
call_graph=call_graph,
|
||||
timing_summary=timing_summary,
|
||||
sci_analysis=sci_analysis,
|
||||
sci_protocol=sci_protocol,
|
||||
board_profile=board_profile,
|
||||
peripheral_access=peripheral_access,
|
||||
indirect_flow=indirect_flow,
|
||||
dataflow=dataflow,
|
||||
|
||||
Reference in New Issue
Block a user