1#!/usr/bin/env bash 2 3DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" 4 5DEFAULT_TOOLPATH="$DIR/toolpaths.default" 6if [ -e "$DEFAULT_TOOLPATH" ] 7then 8 source $DEFAULT_TOOLPATH 9fi 10 11function HELP { 12 echo "help:" 13 echo "-c cmpctmalloc instead of dlmalloc" 14 echo "-M miniheap instead of dlmalloc" 15 echo "-h for help" 16 echo "all arguments after -- are passed to qemu directly" 17 exit 1 18} 19 20DO_CMPCTMALLOC=0 21DO_MINIHEAP=0 22MEMSIZE=8 23 24while getopts bdhm:cMnt6 FLAG; do 25 case $FLAG in 26 c) DO_CMPCTMALLOC=1;; 27 M) DO_MINIHEAP=1;; 28 M) DO_MINIHEAP=1;; 29 h) HELP;; 30 \?) 31 echo unrecognized option 32 HELP 33 esac 34done 35 36shift $((OPTIND-1)) 37 38if [ -z "$QEMUM4" ]; then 39 echo "QEMUM4 is not defined. Set QEMUM4='path/to/qemu-m4' inside scripts/toolpaths.local" 40 exit 1 41fi 42 43PROJECT="qemu-m4-test" 44 45ARGS=" -serial tcp::12345,server,nowait " # Logs 46ARGS+=" -serial tcp::12344,server,nowait " # Debug 47ARGS+=" -serial stdio" # Console 48ARGS+=" -machine pebble-s4-bb -cpu cortex-m4" 49ARGS+=" -pflash build-${PROJECT}/lk.bin " 50ARGS+=" -monitor tcp::12346,server,nowait" 51 52if [ $DO_CMPCTMALLOC == 1 ]; then 53 MAKE_VARS=LK_HEAP_IMPLEMENTATION=cmpctmalloc 54elif [ $DO_MINIHEAP == 1 ]; then 55 MAKE_VARS=LK_HEAP_IMPLEMENTATION=miniheap 56fi 57 58$DIR/make-parallel $MAKE_VARS $PROJECT && 59echo $QEMUM4 $ARGS $@ && 60$QEMUM4 $ARGS $@ 61