#!/bin/sh
# Name: checksize
# Project: PowerSwitch/AVR-USB
# Author: Christian Starkjohann
# Creation Date: 2004-12-29
# Tabsize: 4
# Copyright: (c) 2005 OBJECTIVE DEVELOPMENT Software GmbH.
# Revision: $Id: checksize 83 2006-01-05 22:20:53Z cs $

error=0
codelimit=2048  # default value
datalimit=96    # default value; leave 32 bytes for stack
mode=0			# 0=ROM/RAM  1=EEPROM

if [ $# -gt 1 ]; then
	codelimit="$2"
fi
if [ $# -gt 2 ]; then
	datalimit="$3"
fi
if [ $# -gt 3 ]; then
	mode="$4"
fi


#avr-size -d "$1"

set -- `avr-size -d "$1" | gawk '/[0-9]/ {print $1 + $2, $2 + $3, $2}'`
if [ $1 -gt $codelimit ]; then
	echo ""
	if [ $mode -eq 1 ]; then
		echo "********************************************"
		echo "*** eeprom size $1 exceeds limit of $codelimit"
		echo "********************************************"
	else
		echo "********************************************"
		echo "*** code size $1 exceeds limit of $codelimit"
		echo "********************************************"
	fi
	echo ""
	error=1
else
	if [ $mode -eq 1 ]; then
		echo "EEP: $1 bytes"	
	else
		echo "ROM: $1 bytes (data=$3)"
	fi
fi

if [ $mode -ne 1 ]; then
	if [ $2 -gt $datalimit ]; then
		echo ""
		echo "********************************************"
		echo "*** data size $2 exceeds limit of $datalimit"
		echo "********************************************"

		error=1
	else
		echo "RAM: $2 bytes"
	fi
fi

exit $error
