Home | History | Annotate | Download | only in stm32f4xx
      1 #!/bin/bash
      2 
      3 # Exit in error if we use an undefined variable (i.e. commit a typo).
      4 set -u
      5 
      6 function getvar {
      7 	hex=$(nm $1 | grep -v "U" | grep "$2" |awk '{print "16#" $1 }')
      8 	echo $(($hex))
      9 }
     10 
     11 
     12 heap_start=$(getvar $1 __heap_start)
     13 heap_end=$(getvar $1 __heap_end)
     14 heap_sz=$(($heap_end-$heap_start))
     15 
     16 bss_start=$(getvar $1 __bss_start)
     17 bss_end=$(getvar $1 __bss_end)
     18 bss_sz=$(($bss_end-$bss_start))
     19 
     20 data_start=$(getvar $1 __data_start)
     21 data_end=$(getvar $1 __data_end)
     22 data_sz=$(($data_end-$data_start))
     23 
     24 stack_start=$(getvar $1 __stack_bottom)
     25 stack_end=$(getvar $1 __stack_top)
     26 stack_sz=$(($stack_end-$stack_start))
     27 
     28 code_start=$(getvar $1 __code_start)
     29 code_end=$(getvar $1 __text_end)
     30 code_sz=$(($code_end-$code_start))
     31 
     32 echo
     33 echo "SIZES:"
     34 
     35 printf "  BSS SIZE:         %6d bytes\n" $bss_sz
     36 printf "  DATA SIZE:        %6d bytes\n" $data_sz
     37 printf "  STACK SIZE:       %6d bytes\n" $stack_sz
     38 printf "  HEAP SIZE:        %6d bytes\n" $heap_sz
     39 printf "  CODE SIZE:        %6d bytes\n" $code_sz
     40 
     41 flash_use=$(($code_sz+$data_sz))
     42 ram_use=$(($heap_sz+$bss_sz+$data_sz+$stack_sz))
     43 
     44 echo
     45 printf "  OS RAM USE:       %6d bytes\n" $ram_use
     46 printf "  OS FLASH USE:     %6d bytes\n" $flash_use
     47