summaryrefslogtreecommitdiff
path: root/src/util/check-stack
diff options
context:
space:
mode:
authorBdale Garbee <bdale@gag.com>2012-09-12 20:01:22 -0600
committerBdale Garbee <bdale@gag.com>2012-09-12 20:01:22 -0600
commit3b612efcd1dddc6a3d59012f7ed57754b1f798c2 (patch)
tree18d50713491ef96c5c127a309f870efb6c33f98d /src/util/check-stack
parente076773c1693e2a62bb828dee71c04c20dbab0a5 (diff)
parent01eb36408d7e0e826b431fcc1d3b2deb23607e0b (diff)
Merge branch 'new-debian' into debian
Conflicts: ChangeLog debian/altos.install debian/changelog debian/control debian/copyright debian/dirs debian/docs debian/menu debian/rules src/Makefile
Diffstat (limited to 'src/util/check-stack')
-rwxr-xr-xsrc/util/check-stack24
1 files changed, 24 insertions, 0 deletions
diff --git a/src/util/check-stack b/src/util/check-stack
new file mode 100755
index 00000000..f4cada2b
--- /dev/null
+++ b/src/util/check-stack
@@ -0,0 +1,24 @@
+#!/bin/sh
+HEADER=$1
+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`
+
+if [ "$HEADER_STACK" -lt "$MEM_STACK" ]; then
+ echo $MEM_STACK | awk '{ printf ("Set AO_STACK_START to at least 0x%x\n", $1); }'
+ exit 1
+fi
+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
+