#!/usr/bin/env python3 # # Copyright (c) 2019 Intel Corporation. # # SPDX-License-Identifier: Apache-2.0 """ Script to capture tracing data with UART backend. """ import sys import serial import argparse def parse_args(): global args parser = argparse.ArgumentParser( description=__doc__, formatter_class=argparse.RawDescriptionHelpFormatter) parser.add_argument("-d", "--serial_port", required=True, help="serial port") parser.add_argument("-b", "--serial_baudrate", required=True, help="serial baudrate") parser.add_argument("-o", "--output", default='channel0_0', required=False, help="tracing data output file") args = parser.parse_args() def main(): parse_args() serial_port = args.serial_port serial_baudrate = args.serial_baudrate output_file = args.output try: ser = serial.Serial(serial_port, serial_baudrate) ser.isOpen() except serial.SerialException as e: sys.exit("{}".format(e)) print("serial open success") #enable device tracing ser.write("enable\r".encode()) with open(output_file, "wb") as file_desc: while True: count = ser.inWaiting() if count > 0: while count > 0: data = ser.read() file_desc.write(data) count -= 1 ser.close() if __name__=="__main__": try: main() except KeyboardInterrupt: print('Data capture interrupted, data saved into {}'.format(args.output)) sys.exit(0)