check_size.sh 2.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  1. # L2 Cache Share SRAM contains:
  2. # 4 KB GFH : 0x0020_0000 ~ 0x0020_1000
  3. # 124 KB Preloader : 0x0020_1000 ~ 0x0022_0000
  4. PL_START_ADDR=0x00201000
  5. PL_END_ADDR=0x00220000
  6. # Preloader BSS2: 0x0010_8900 ~ 0x0010_DC00
  7. PL_MAX_RAM_SIZE=21248
  8. # Keep ROM size smaller than 124 KB
  9. # Keep ROM size smaller than 0x0022_0000 - 0x0020_1000 - Signature
  10. SIG_SIZE=$(cat "${PRELOADER_OUT}/bin/sig_size.txt")
  11. if [ -z "$SIG_SIZE" ]
  12. then
  13. SIG_SIZE=292
  14. fi
  15. PL_MAX_ROM_SIZE=$((PL_END_ADDR - PL_START_ADDR - SIG_SIZE))
  16. ROM_RPT_SIZE=500
  17. RAM_RPT_SIZE=500
  18. # check image rom size
  19. PL_ROM_SIZE=$(stat -c%s "${PL_IMAGE}")
  20. if [ $PL_ROM_SIZE -gt $PL_MAX_ROM_SIZE ]; then
  21. echo "===================== Building Fail ==========================="
  22. echo " IMG ROM Size: ${PL_ROM_SIZE} bytes > ${PL_MAX_ROM_SIZE} bytes!! "
  23. echo " WARNING: Reduce your code size first then compile again!! "
  24. echo "==============================================================="
  25. echo " ROM SIZE REPORT (>${ROM_RPT_SIZE} bytes) "
  26. echo "---------------------------------------------------------------"
  27. cat ${PRELOADER_OUT}/report-codesize.txt | awk -F' ' '{if ($3=="FUNC" && $2>sz) print $0}' sz=${ROM_RPT_SIZE}
  28. echo "---------------------------------------------------------------"
  29. rm -f ${PL_IMAGE}
  30. echo "BUILD FAIL."
  31. exit 1;
  32. fi
  33. # check image ram size
  34. PL_RAM_SIZE=$(awk '{if($3=="_bss2_start") {BSS_START=("0x" $1)+0} ;
  35. if($3=="_bss2_end") {BSS_END=("0x" $1)+0}}
  36. END{printf("%d\n",BSS_END-BSS_START)}' ${PL_FUN_MAP})
  37. if [ $PL_RAM_SIZE -gt $PL_MAX_RAM_SIZE ]; then
  38. echo "===================== Building Fail ==========================="
  39. echo " IMG RAM Size: ${PL_RAM_SIZE} bytes > ${PL_MAX_RAM_SIZE} bytes!!"
  40. echo " WARNING: Reduce your code size first then compile again!! "
  41. echo "==============================================================="
  42. echo " RAM SIZE REPORT (>${RAM_RPT_SIZE} bytes) "
  43. echo "---------------------------------------------------------------"
  44. cat ${PRELOADER_OUT}/report-codesize.txt | awk -F' ' '{if ($3=="OBJECT" && $2>sz) print $0}' sz=${RAM_RPT_SIZE}
  45. echo "---------------------------------------------------------------"
  46. rm -f ${PL_IMAGE}
  47. echo "BUILD FAIL."
  48. exit 1;
  49. fi
  50. # check image dram size
  51. PL_DRAM_SIZE=$(awk '{if($3=="_dram_start") {DRAM_START=("0x" $1)+0} ;
  52. if($3=="_dram_end") {DRAM_END=("0x" $1)+0}}
  53. END{printf("%d\n",DRAM_END-DRAM_START)}' ${PL_FUN_MAP})
  54. PL_SIZE=`expr $PL_RAM_SIZE + $PL_ROM_SIZE`
  55. echo "===================== Building Success ==========================="
  56. echo " PL MAX ROM size : ${PL_MAX_ROM_SIZE} bytes"
  57. echo " PL ROM size : ${PL_ROM_SIZE} bytes"
  58. echo " PL RAM size : ${PL_RAM_SIZE} bytes"
  59. echo " PL DRAM size : ${PL_DRAM_SIZE} bytes"
  60. echo " PL ROM+RAM size : ${PL_SIZE} bytes"
  61. echo "=================================================================="