]> oss.titaniummirror.com Git - tinyos-2.x.git/commitdiff
added new extra target tos_buildinfo to create an xml file containing metrics and...
authorbeutel <beutel>
Fri, 17 Aug 2007 15:47:30 +0000 (15:47 +0000)
committerbeutel <beutel>
Fri, 17 Aug 2007 15:47:30 +0000 (15:47 +0000)
support/make/avr/avr.rules
support/make/msp/msp.rules
support/make/tos_buildinfo.extra [new file with mode: 0644]
tools/configure.ac
tools/tinyos/misc/Makefile.am
tools/tinyos/misc/tos-write-buildinfo.in [new file with mode: 0644]

index d61f14f001d2b357a2fdbbb52f94f141874775e8..9d398109da857f1058fdb5d93fb54c49a32f2c1c 100644 (file)
@@ -48,7 +48,7 @@ ifndef DEFAULT_PROGRAM
 DEFAULT_PROGRAM = dapa
 endif
 
-BUILDLESS_DEPS += bytes
+BUILDLESS_DEPS += bytes 
 
 ifndef NOWIRING
 include $(TINYOS_MAKE_PATH)/wiring.extra
@@ -83,6 +83,9 @@ delsetid: FORCE
 srec: exe FORCE
        $(OBJCOPY) --output-target=srec $(MAIN_EXE) $(MAIN_SREC)
 
+tos_buildinfo: ihex build_buildinfo FORCE
+  @:
+  
 tosimage: ihex build_tosimage FORCE
        @:
 
index 0c98cf45e247fc91b009c2f7ac057ba12001ddb4..6253da4ed7648a436cb263e12f9b8209e4cebfd5 100644 (file)
@@ -72,6 +72,9 @@ endif
 setid: FORCE
        @cmd () { echo "$$@"; $$@; }; if [ x = x$(NODEID) ]; then cmd cp $(MAIN_IHEX) $(INSTALL_IHEX); else cmd $(SET_ID) --objcopy $(OBJCOPY) --objdump $(OBJDUMP) --target ihex $(MAIN_IHEX) $(INSTALL_IHEX) TOS_NODE_ID=$(NODEID) $(AMADDR)=$(NODEID); fi
 
+tos_buildinfo: ihex build_buildinfo FORCE
+  @:
+  
 tosimage: ihex build_tosimage FORCE
        @:
 
diff --git a/support/make/tos_buildinfo.extra b/support/make/tos_buildinfo.extra
new file mode 100644 (file)
index 0000000..b4c18fe
--- /dev/null
@@ -0,0 +1,9 @@
+#-*-Makefile-*- vim:syntax=make
+#$Id$
+
+TOS_BUILDINFO_PL ?= tos-write-buildinfo
+IDENT_PROGRAM_NAME ?= $(COMPONENT)
+
+build_buildinfo: FORCE
+       @echo "    writing TOS buildinfo"
+       @$(TOS_BUILDINFO_PL) $(IDENT_FLAGS) --exe="$(MAIN_EXE)" --size="$(SIZE)" --platform="$(PLATFORM)" > $(BUILDDIR)/tos_buildinfo.xml
index a024efa06e370e7f5961f9dd4dbc46e37d0873f9..8b90e8872e8febaf84ba1e52a131a7d24d57ee8c 100644 (file)
@@ -138,6 +138,7 @@ AC_OUTPUT(
        tinyos/misc/tos-ident-flags
        tinyos/misc/tos-install-jni
        tinyos/misc/tos-set-symbols
+       tinyos/misc/tos-write-buildinfo
        tinyos/misc/tos-write-image
        tinyos/misc/tos-storage-at45db
        tinyos/misc/tos-storage-stm25p
index 6c2ee1533bc846e8fb867ac8bb204ad5d3e692ce..276314be167fd27a9fb6f39a0a327a7dc461f7d3 100644 (file)
@@ -23,6 +23,7 @@ bin_SCRIPTS = tos-ident-flags \
               tos-mviz    \
              tos-serial-configure \
              tos-set-symbols \
+             tos-write-buildinfo \
              tos-write-image \
              tos-check-env \
              tos-storage-stm25p \
diff --git a/tools/tinyos/misc/tos-write-buildinfo.in b/tools/tinyos/misc/tos-write-buildinfo.in
new file mode 100644 (file)
index 0000000..980e0c9
--- /dev/null
@@ -0,0 +1,59 @@
+#!@pathperl@ -w
+#
+# This script generates an XML description of the buildinformation. This is 
+# primarily used by other tools such as checkers, tests and continuous 
+# integration.
+#
+#$Id$
+#@author Jan Beutel <j.beutel@ieee.org>
+#
+use strict;
+
+my $MaxNameLength = 10;
+
+if ( @ARGV == 0 ) {
+  print "usage: tos-write-buildinfo [ident_flags] [exe_file]\n";
+  exit 0;
+}
+
+my %ident_flags = ();
+my $exe = "";
+my $size = "avr-size";
+my $platform = "";
+
+for my $arg (@ARGV) {
+  if ($arg =~ /^-DIDENT_(.+)=0x(.+)$/) {
+    $ident_flags{lc($1)} = uc($2);
+  }
+  elsif ($arg =~ /^-DIDENT_(.+)="(.+)"$/) {
+    $ident_flags{lc($1)} = $2;
+  }
+  elsif ($arg =~ /^--exe=(.+)$/) {
+    $exe = $1;
+  }
+  elsif ($arg =~ /^--size=(.+)$/) {
+    $size = $1;
+  }
+  elsif ($arg =~ /^--platform=(.+)$/) {
+    $platform = $1;
+  }
+}
+
+
+my @text;
+my $rc2 = qx"$size $exe |grep main ";
+#print $rc2;
+print $size;
+@text =  split(' ', $rc2);
+
+print "<metrics>\n";
+print "  <ram>";
+print $text[1];
+print "<ram>\n";
+print "  <flash>";
+print $text[0];
+print "<flash>\n";
+print "  <stack>";
+print $text[2];
+print "<stack>\n";
+print "</metrics>\n";