1 |
#!/bin/sh |
1 |
#!/bin/sh |
2 |
# Name: checksize |
2 |
# Name: checksize |
3 |
# Project: AVR Make system |
3 |
# Project: AVR Make system |
4 |
# Author: Christian Starkjohann |
4 |
# Author: Christian Starkjohann |
5 |
# Creation Date: 2004-12-29 |
5 |
# Creation Date: 2004-12-29 |
6 |
# Tabsize: 4 |
6 |
# Tabsize: 4 |
7 |
# Copyright: (c) 2005 OBJECTIVE DEVELOPMENT Software GmbH. |
7 |
# Copyright: (c) 2005 OBJECTIVE DEVELOPMENT Software GmbH. |
8 |
# Revision: $Id: checksize,v 1.1.1.1 2006/11/09 18:27:00 harbaum Exp $ |
8 |
# Revision: $Id: checksize,v 1.1.1.1 2006/11/09 18:27:00 harbaum Exp $ |
9 |
|
9 |
|
10 |
error=0 |
10 |
error=0 |
11 |
codelimit=2048 # default value |
11 |
codelimit=2048 # default value |
12 |
datalimit=96 # default value; leave 32 bytes for stack |
12 |
datalimit=96 # default value; leave 32 bytes for stack |
13 |
|
13 |
|
14 |
if [ $# -gt 1 ]; then |
14 |
if [ $# -gt 1 ]; then |
15 |
codelimit="$2" |
15 |
codelimit="$2" |
16 |
fi |
16 |
fi |
17 |
if [ $# -gt 2 ]; then |
17 |
if [ $# -gt 2 ]; then |
18 |
datalimit="$3" |
18 |
datalimit="$3" |
19 |
fi |
19 |
fi |
20 |
|
20 |
|
21 |
set -- `avr-size -d "$1" | awk '/[0-9]/ {print $1 + $2, $2 + $3, $2}'` |
21 |
set -- `avr-size -d "$1" | awk '/[0-9]/ {print $1 + $2, $2 + $3, $2}'` |
22 |
if [ $1 -gt $codelimit ]; then |
22 |
if [ $1 -gt $codelimit ]; then |
23 |
echo "*** code size $1 exceeds limit of $codelimit" |
23 |
echo "*** code size $1 exceeds limit of $codelimit" |
24 |
error=1 |
24 |
error=1 |
25 |
else |
25 |
else |
26 |
echo "ROM: $1 bytes (data=$3)" |
26 |
echo "ROM: $1 bytes (data=$3)" |
27 |
fi |
27 |
fi |
28 |
if [ $2 -gt $datalimit ]; then |
28 |
if [ $2 -gt $datalimit ]; then |
29 |
echo "*** data size $2 exceeds limit of $datalimit" |
29 |
echo "*** data size $2 exceeds limit of $datalimit" |
30 |
error=1 |
30 |
error=1 |
31 |
else |
31 |
else |
32 |
echo "RAM: $2 bytes" |
32 |
echo "RAM: $2 bytes" |
33 |
fi |
33 |
fi |
34 |
|
34 |
|
35 |
exit $error |
35 |
exit $error |