check_size.sh 2.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. PL_MAX_RAM_SIZE=43008
  2. # Keep ROM size smaller than 252 KB
  3. # Keep ROM size smaller than 0x0022_0000 - 0x0020_1000 =0x1F000 (126976) Bytes
  4. # start address is 0x0020_1000, GFH file is placed in the front of the start address
  5. # - Hash(32) - Signature(260) ) (292)
  6. PL_MAX_ROM_SIZE=$(( 126976 - 292 ))
  7. ROM_RPT_SIZE=500
  8. RAM_RPT_SIZE=500
  9. # check image rom size
  10. PL_ROM_SIZE=$(stat -c%s "${PL_IMAGE}")
  11. if [ $PL_ROM_SIZE -gt $PL_MAX_ROM_SIZE ]; then
  12. echo "===================== Building Fail ==========================="
  13. echo " IMG ROM Size: ${PL_ROM_SIZE} bytes > ${PL_MAX_ROM_SIZE} bytes!! "
  14. echo " WARNING: Reduce your code size first then compile again!! "
  15. echo "==============================================================="
  16. echo " ROM SIZE REPORT (>${ROM_RPT_SIZE} bytes) "
  17. echo "---------------------------------------------------------------"
  18. cat ${PRELOADER_OUT}/report-codesize.txt | awk -F' ' '{if ($3=="FUNC" && $2>sz) print $0}' sz=${ROM_RPT_SIZE}
  19. echo "---------------------------------------------------------------"
  20. rm -f ${PL_IMAGE}
  21. echo "BUILD FAIL."
  22. exit 1;
  23. fi
  24. # check image ram size
  25. PL_RAM_SIZE=$(mawk '{if($3=="_bss_start") {BSS_START=("0x" $1)+0} ;
  26. if($3=="_bss_end") {BSS_END=("0x" $1)+0}}
  27. END{printf("%d\n",BSS_END-BSS_START)}' ${PL_FUN_MAP})
  28. if [ $PL_RAM_SIZE -gt $PL_MAX_RAM_SIZE ]; then
  29. echo "===================== Building Fail ==========================="
  30. echo " IMG RAM Size: ${PL_RAM_SIZE} bytes > ${PL_MAX_RAM_SIZE} bytes!!"
  31. echo " WARNING: Reduce your code size first then compile again!! "
  32. echo "==============================================================="
  33. echo " RAM SIZE REPORT (>${RAM_RPT_SIZE} bytes) "
  34. echo "---------------------------------------------------------------"
  35. cat ${PRELOADER_OUT}/report-codesize.txt | awk -F' ' '{if ($3=="OBJECT" && $2>sz) print $0}' sz=${RAM_RPT_SIZE}
  36. echo "---------------------------------------------------------------"
  37. rm -f ${PL_IMAGE}
  38. echo "BUILD FAIL."
  39. exit 1;
  40. fi
  41. # check image dram size
  42. PL_DRAM_SIZE=$(mawk '{if($3=="_dram_start") {DRAM_START=("0x" $1)+0} ;
  43. if($3=="_dram_end") {DRAM_END=("0x" $1)+0}}
  44. END{printf("%d\n",DRAM_END-DRAM_START)}' ${PL_FUN_MAP})
  45. PL_SIZE=`expr $PL_RAM_SIZE + $PL_ROM_SIZE`
  46. echo "===================== Building Success ==========================="
  47. echo " PL MAX ROM size : ${PL_MAX_ROM_SIZE} bytes"
  48. echo " PL ROM size: ${PL_ROM_SIZE} bytes"
  49. echo " PL RAM size: ${PL_RAM_SIZE} bytes"
  50. echo " PL DRAM size: ${PL_DRAM_SIZE} bytes"
  51. echo " PL ROM+RAM size: ${PL_SIZE} bytes"
  52. echo "=================================================================="