diff options
author | jaseg <git@jaseg.net> | 2018-01-05 11:53:52 +0100 |
---|---|---|
committer | jaseg <git@jaseg.net> | 2018-01-05 11:53:52 +0100 |
commit | e3094b18d4fc1b5f8e5e7ca146318e501a7a4ff9 (patch) | |
tree | e70e8d966a82d84f476b9d05b3b358678f38b42f /fw/tools/profile.sh | |
parent | 31fc78d0e00f9c82f03c88367a7e23b2df918ca6 (diff) | |
download | 7seg-e3094b18d4fc1b5f8e5e7ca146318e501a7a4ff9.tar.gz 7seg-e3094b18d4fc1b5f8e5e7ca146318e501a7a4ff9.tar.bz2 7seg-e3094b18d4fc1b5f8e5e7ca146318e501a7a4ff9.zip |
Firmware directory reorganization
Diffstat (limited to 'fw/tools/profile.sh')
-rw-r--r-- | fw/tools/profile.sh | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/fw/tools/profile.sh b/fw/tools/profile.sh new file mode 100644 index 0000000..b209a14 --- /dev/null +++ b/fw/tools/profile.sh @@ -0,0 +1,26 @@ +#!/bin/sh +NLOOPS=1000 +SLEEP=0.1 + +[ $# -lt 1 ] && echo "ERROR: Not enough arguments" && exit 2 +elffile="$1" + +trap "exit" SIGINT + +logfile=$(mktemp) + +arm-none-eabi-gdb -x profile.gdb "$elffile" > "$logfile" 2>/dev/null& +gdbpid=$! +trap "kill -TERM $gdbpid; rm $logfile" EXIT +echo "Gathering..." +for i in $(seq 1 $NLOOPS); do + echo "$i/$NLOOPS" + kill -INT $gdbpid + sleep $SLEEP +done +kill -TERM $gdbpid +trap "rm '$logfile'" EXIT + +egrep -o '\w+ \(.*\) at .*' "$logfile" |cut -d' ' -f1|sort|uniq -c|sort -n +echo 'Total:' $(egrep -c '\w+ \(.*\) at .*' "$logfile") + |