def main(): " Dawaj, dawaj! " args = parse_args() # Initialize logger for downstream components mpm.get_main_logger().getChild('main') master_core = AuroraControl( UIO(label=args.uio_dev, read_only=False), args.base_addr, ) slave_core = None if args.slave_uio_dev is None else AuroraControl( UIO(label=args.slave_uio_dev, read_only=False), args.slave_base_addr, ) if args.loopback: master_core.reset_core() master_core.set_loopback(enable=True) return True # Run BIST if args.test == 'ber': print("Performing BER BIST test.") master_core.run_ber_loopback_bist( args.duration, args.rate * 8e6, slave_core, ) else: print("Performing Latency BIST test.") master_core.run_latency_loopback_bist( args.duration, args.rate * 8e6, slave_core, )
def __init__(self): assert self.DEFAULT_FPGA_TYPE is not None assert self.device_args is not None assert self.usrp_type is not None assert self.lv_compat_format is not None self.args = self.make_arg_parser().parse_args() self.args.option = expand_options(self.args.option) # If this is true, trigger a reload of the default FPGA image self.reload_fpga_image = False try: default_rev = self.get_mb_periph_mgr().mboard_max_rev except ImportError: # This means we're in dry run mode or something like that, so just # pick something default_rev = self.default_rev self.mb_rev = int(self.args.option.get('mb_rev', default_rev)) self.tests_to_run = set() for test in self.args.tests: if test in self.collections: for this_test in self.expand_collection(test): self.tests_to_run.add(this_test) else: self.tests_to_run.add(test) try: # Keep this import here so we can do dry-runs without any MPM code from usrp_mpm import get_main_logger if not self.args.verbose: from usrp_mpm.mpmlog import WARNING get_main_logger().setLevel(WARNING) self.log = get_main_logger().getChild('main') except ImportError: print("No logging capability available.")
def __init__(self): assert self.DEFAULT_FPGA_TYPE is not None assert self.device_args is not None assert self.usrp_type is not None assert self.lv_compat_format is not None self.args = self.make_arg_parser().parse_args() self.args.option = expand_options(self.args.option) # If this is true, trigger a reload of the default FPGA image self.reload_fpga_image = False try: default_rev = self.get_mb_periph_mgr().mboard_last_rev_compat except ImportError: # This means we're in dry run mode or something like that, so just # pick something default_rev = self.default_rev self.mb_rev = int(self.args.option.get('mb_rev', default_rev)) self.tests_to_run = set() for test in self.args.tests: if test in self.collections: for this_test in self.expand_collection(test): self.tests_to_run.add(this_test) else: self.tests_to_run.add(test) try: # Keep this import here so we can do dry-runs without any MPM code from usrp_mpm import get_main_logger if not self.args.verbose: from usrp_mpm.mpmlog import WARNING get_main_logger().setLevel(WARNING) self.log = get_main_logger().getChild('main') except ImportError: print("No logging capability available.")
def main(): " Dawaj, dawaj! " args = parse_args() # Initialize logger for downstream components mpm.get_main_logger().getChild('main') master_core_uio = UIO(label=args.uio_dev, read_only=False) master_core_uio.open() if args.slave_uio_dev: slave_core_uio = UIO(label=args.uio_dev, read_only=False) slave_core_uio.open() try: master_core = AuroraControl(master_core_uio, args.base_addr) slave_core = None if args.slave_uio_dev is None else AuroraControl( slave_core_uio, args.slave_base_addr, ) if args.loopback: master_core.reset_core() master_core.set_loopback(enable=True) return True # Run BIST if args.test == 'ber': print("Performing BER BIST test.") master_core.run_ber_loopback_bist( args.duration, args.rate * 8e6, slave_core, ) else: print("Performing Latency BIST test.") master_core.run_latency_loopback_bist( args.duration, args.rate * 8e6, slave_core, ) except Exception as ex: print("Unexpected exception: {}".format(str(ex))) return False finally: master_core_uio.close() if args.slave_uio_dev: slave_core_uio.close()
def main(): """ Go, go, go! Main process loop. """ args = parse_args() log = mpm.get_main_logger( log_default_delta=args.verbose-args.quiet ).getChild('main') if args.init_only: return init_only(log, args) return spawn_processes(log, args)
def kill_thread(): """ Kill all processes after _KILL_EVENT is triggered If all processes are properly terminated, this will exit """ _KILL_EVENT.wait() log = mpm.get_main_logger().getChild('kill') for proc in _PROCESSES: proc.terminate() log.info("Terminating pid: {0}".format(proc.pid)) for proc in _PROCESSES: proc.join() log.info("System exiting") sys.exit(0)
def main(): """ Go, go, go! Main process loop. """ args = parse_args() log = mpm.get_main_logger(log_default_delta=args.verbose - args.quiet).getChild('main') if args.override_db_pids is not None: log.warning('Overriding daughterboard PIDs!') args.default_args['override_db_pids'] = args.override_db_pids if args.init_only: return init_only(log, args.default_args) return spawn_processes(log, args)
def kill_time(sig, frame): """ kill all processes to be used in a signal handler If all processes are properly terminated, this will exit """ log = mpm.get_main_logger().getChild('kill') for proc in _PROCESSES: proc.terminate() log.info("Terminating pid: {0}".format(proc.pid)) for proc in _PROCESSES: try: proc.join() except BlockingSwitchOutError: log.debug("Caught BlockingSwitchOutError for {}".format(str(proc))) log.info("System exiting") sys.exit(0)
def main(): """ Go, go, go! Main process loop. """ args = parse_args() log = mpm.get_main_logger(log_default_delta=args.verbose - args.quiet).getChild('main') version_string = mpm.__version__ if len(mpm.__githash__): version_string += "-g" + mpm.__githash__ log.info("Launching USRP/MPM, version: %s", version_string) if args.override_db_pids is not None: log.warning('Overriding daughterboard PIDs!') args.default_args['override_db_pids'] = args.override_db_pids if args.init_only: return init_only(log, args.default_args) return spawn_processes(log, args)
def main(): """ Go, go, go! Main process loop. """ args = parse_args() log = mpm.get_main_logger(log_default_delta=args.verbose - args.quiet).getChild('main') version_string = mpm.__version__ if len(mpm.__githash__): version_string += "-g" + mpm.__githash__ log.info("Launching USRP/MPM, version: %s", version_string) if args.init_only: # If --init-only is provided, we force disable init during boot time so # we can properly time it in init_only(). args.default_args['skip_boot_init'] = "1" if args.override_db_pids is not None: log.warning('Overriding daughterboard PIDs!') args.default_args['override_db_pids'] = args.override_db_pids if args.init_only: return init_only(log, args.default_args) return spawn_processes(log, args)
def main(): """ Go, go, go! Main process loop. """ args = parse_args() log = mpm.get_main_logger( log_default_delta=args.verbose-args.quiet ).getChild('main') version_string = mpm.__version__ if len(mpm.__githash__): version_string += "-g" + mpm.__githash__ log.info("Launching USRP/MPM, version: %s", version_string) if args.init_only: # If --init-only is provided, we force disable init during boot time so # we can properly time it in init_only(). args.default_args['skip_boot_init'] = "1" if args.override_db_pids is not None: log.warning('Overriding daughterboard PIDs!') args.default_args['override_db_pids'] = args.override_db_pids if args.init_only: return init_only(log, args.default_args) return spawn_processes(log, args)