$map = $ARGV[0]; shift;
$boot = $ARGV[0]; shift;
$boot = eval($boot);
$size = $ARGV[0]; shift;
if ($size eq '') {
    $size = 16 * 1024;
} else {
    $size = eval($size);
}
$size -= $boot;
open(F, "<$map") || die "can't open $map!\n";
while (<F>) {
    if ($_ =~ /0x(\S+)\s+__data_load_end/) {
        $bytes = hex($1);
        $bytes -= $boot;
        print int((100*$bytes)/($size));
        printf('%c of flash in use',37);
        print " ($bytes bytes out of $size)\n";
    }
}
