altos: Check for cc1111 flash overflow
authorKeith Packard <keithp@keithp.com>
Tue, 10 Apr 2012 05:25:13 +0000 (22:25 -0700)
committerKeith Packard <keithp@keithp.com>
Tue, 10 Apr 2012 05:25:13 +0000 (22:25 -0700)
The linker is supposed to do this, but it ignores the static
initializer data added after the code.

Signed-off-by: Keith Packard <keithp@keithp.com>
src/util/check-stack

index 3b639d700eca8db38ba8faaf14f4871f2e82c7c8..7b62e460fd66bd550881cf41b680ce3532bca4c4 100755 (executable)
@@ -5,6 +5,8 @@ MEM=$2
 HEADER_STACK=`awk '/#define AO_STACK_START/ {print strtonum($3)}' $HEADER`
 MEM_STACK=`awk '/Stack starts at/ {print strtonum ($4)}' $MEM`
 XRAM_END=`awk '/EXTERNAL RAM/ { print strtonum ($4)}' $MEM`
+FLASH_END=`awk '/ROM\/EPROM\/FLASH/ { print strtonum ($3)}' $MEM`
+echo FLASH_END $FLASH_END
 
 if [ "$HEADER_STACK" -lt "$MEM_STACK" ]; then
         echo $MEM_STACK | awk '{ printf ("Set AO_STACK_START to at least 0x%x\n", $1); }'
@@ -14,6 +16,10 @@ if [ "$XRAM_END" -ge 65024 ]; then
     echo $XRAM_END | awk '{ printf ("Uses too much XRAM, 0x%x >= 0x%x\n", $1, 65024); }'
     exit 1
 fi
+if [ "$FLASH_END" -ge 32768 ]; then
+    echo $FLASH_END | awk '{ printf ("Uses too much FLASH, 0x%x >= 0x%x\n", $1, 32768); }'
+    exit 1
+fi
 
 exit 0