import tempfile import time import pickle import pandas as pd import threading import datetime from imc_utils.pps_e36311a import PPS_E36311A from imc_utils.smu_b2902a import SMU_B2902A from imc_utils.build_config.cortex_m33 import BuildConfigM33 from imc_utils.build_config.test_env import TestEnv from imc_utils.serial_watch import SerialWatcher from imc_utils.oscilloscope_dsox1204a import DSOX1204A import imc_utils.serial_device WORKSPACE_ROOT = "/home/ybkim/workspace/imc/imc_freertos_app_m33" NVM_RESET_BIN = f"{WORKSPACE_ROOT}/imc/utils/nvm_reset.elf" OPENOCD_SCRIPT = f"{WORKSPACE_ROOT}/imc_freertos_app_m33.cfg" def main(): volt = 3.3 smu = SMU_B2902A(voltage=volt) benchmark = "vrefint_expr" config = BuildConfigM33() config.insert_compiler_checkpoints = False config.enable_extension = True config.use_checkpoint_pass_counter = False config.use_checkpoint_voltage_check = False config.bench_infinite_loop = True config.print_recovery_message = False config.split_loop = False config.enable_static_loop_pass_count = False config.enable_adaptive_loop_pass_count = False config.print_stats = False config.custom_unroll = False config.loop_opt_debug = False config.bench_name = benchmark smu.set_current_limit(0.1) smu.power_on() env = TestEnv(WORKSPACE_ROOT, NVM_RESET_BIN, OPENOCD_SCRIPT) with tempfile.TemporaryDirectory() as build_dir: binary = env.build_binary(config, build_dir) env.clear_nvm_and_load_binary(binary, resume=True) smu.power_off() if __name__ == "__main__": main()