From 7ab9587813182740b7a5abe56618d895a5442efa Mon Sep 17 00:00:00 2001 From: Daniel Friesel Date: Wed, 17 Nov 2021 18:40:36 +0100 Subject: improve libmsp430 / LD_LIBRARY_PATH handling --- bin/msp430-etv | 37 ++++++++++++++++++++++++++----------- 1 file changed, 26 insertions(+), 11 deletions(-) (limited to 'bin/msp430-etv') diff --git a/bin/msp430-etv b/bin/msp430-etv index e39bfc8..e2492df 100755 --- a/bin/msp430-etv +++ b/bin/msp430-etv @@ -168,12 +168,16 @@ class PELT: return changepoints -def measure_data(filename, duration, energytrace_cmd="energytrace"): +def measure_data( + filename, duration, libmsp430_path=None, energytrace_cmd="energytrace" +): # libmsp430.so must be available - if not "LD_LIBRARY_PATH" in os.environ: - os.environ[ - "LD_LIBRARY_PATH" - ] = "{}/var/projects/msp430/MSP430Flasher_1.3.15".format(os.environ["HOME"]) + if libmsp430_path is None: + libmsp430_path = "/opt/msp430/MSP430Flasher_1.3.20" + if "LD_LIBRARY_PATH" in os.environ: + os.environ["LD_LIBRARY_PATH"] += f":{libmsp430_path}" + else: + os.environ["LD_LIBRARY_PATH"] = libmsp430_path # https://ess.cs.uos.de/git/df/energytrace-util must be available if which(energytrace_cmd) is None: @@ -278,6 +282,12 @@ def main(): type=str, help="Export analysis results (e.g. changepoints) to JSON file", ) + parser.add_argument( + "--libmsp430-path", + metavar="DIRECTORY", + type=str, + help="Path to directory containing libmsp30.so", + ) parser.add_argument( "--skip", metavar="N", @@ -355,10 +365,15 @@ def main(): log_data = f.read() elif args.with_hardware_states: log_data = measure_data( - args.save, args.duration, energytrace_cmd="energytracepp" + args.save, + args.duration, + libmsp430_path=args.libmsp430_path, + energytrace_cmd="energytracepp", ) else: - log_data = measure_data(args.save, args.duration) + log_data = measure_data( + args.save, args.duration, libmsp430_path=args.libmsp430_path + ) lines = log_data.split("\n") data_count = sum(map(lambda x: len(x) > 0 and x[0] != "#", lines)) @@ -523,7 +538,7 @@ def main(): ) smooth_power = running_mean(power_from_energy, 10) - if args.pelt: + if args.pelt is not None: power_changepoints = detect_changepoints( data[1:, 0] * 1e-6, power_from_energy, num_samples=args.pelt ) @@ -581,7 +596,7 @@ def main(): if args.json_export: extra_data = dict() - if args.pelt: + if args.pelt is not None: extra_data["power_changepoints"] = power_changepoints extra_data["current_changepoints"] = current_changepoints export_json(args.json_export, extra_data) @@ -674,7 +689,7 @@ def main(): label="mean(I, 10)", markersize=1, ) - if args.pelt: + if args.pelt is not None: plt.vlines( plot_changepoints_vlines(current_changepoints), np.min(Y), @@ -701,7 +716,7 @@ def main(): label="mean(P, 10)", markersize=1, ) - if args.pelt: + if args.pelt is not None: plt.vlines( plot_changepoints_vlines(power_changepoints), np.min(Y), -- cgit v1.2.3