#!/usr/bin/env python

import sys, os, subprocess

filename = sys.argv[1]
flash_size, sram_size = {
        'atmega328p-1k': (1024, 2048),
        'atmega328p-2k': (2048, 2048),
        }.get(sys.argv[2])

p = subprocess.Popen(['avr-size', '-A', filename], stdout=subprocess.PIPE)
out, err = p.communicate()

section = dict()
for line in out.split('\n'):
    line = line.split()
    if len(line) == 3 and line[0].startswith('.'):
        section[line[0]] = int(line[1])

flash_used = section.get('.data', 0) + section.get('.text', 0)
sram_used  = section.get('.data', 0) + section.get('.bss', 0)

print "%s usage:" % filename
print " - Flash: %5d/%5d bytes (%.1f%%)" % (flash_used, flash_size, flash_used*100.0/flash_size)
print " - SRAM:  %5d/%5d bytes (%.1f%%) -- excluding stack!" % (sram_used, sram_size, sram_used*100.0/sram_size)

