File: get_ticks.py

package info (click to toggle)
sdcc 4.2.0%2Bdfsg-1
  • links: PTS, VCS
  • area: main
  • in suites: bookworm
  • size: 105,232 kB
  • sloc: ansic: 956,095; cpp: 110,511; makefile: 59,314; sh: 29,875; asm: 17,178; perl: 12,136; yacc: 7,480; lisp: 1,672; python: 907; lex: 805; awk: 498; sed: 89
file content (35 lines) | stat: -rw-r--r-- 1,106 bytes parent folder | download | duplicates (5)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
import sys, re, io
import string

"""Simple script that scans all of the simulator output text fed in
through stdin and summarises the total number of system clock ticks."""

# Read in everything
if sys.version_info[0]<3:
    safe_stdin = sys.stdin
else:
    safe_stdin = io.TextIOWrapper(sys.stdin.buffer, encoding="latin-1")
lines = safe_stdin.readlines()

# Declare globals
bytes = 0
ticks = 0

for line in lines:
    # 'n words read from ...', where = # bytes in hex file
    if (re.search(r'words read from', line)):
        (data, post) = re.split(r'words', line, 1)
        data = re.sub(r'[^0-9]',' ',data).strip().split();
        if len(data)>0:
          bytes = int(data[-1])
        else:
          bytes = 0 # wrong size, but better than blowing up

    # 'Total time since last reset= 0.102021 sec (i clks)',
    # where i = # system clock ticks.
    if (re.search(r'^Total time', line)):
        (pre, data) = re.split(r'\(', line)
        (nticks, post) = re.split(r' ', data)
        ticks = int(nticks)

print("\n--- Simulator: %d/%d: %d bytes, %d ticks" % (bytes, ticks, bytes, ticks))