Guess platform based on firmware filename suffix

This commit is contained in:
Niclas Finne 2013-08-21 00:51:00 +02:00
parent c9e43466d7
commit dbf2fbd23e
3 changed files with 22 additions and 7 deletions

View File

@ -128,7 +128,7 @@ help:
@echo "Usage: make [all,compile,clean,run,runsky,runesb]"
run: compile
$(JAVA) $(JAVAARGS) se.sics.mspsim.util.IHexReader $(ARGS) $(FIRMWAREFILE) $(MAPFILE)
$(JAVA) $(JAVAARGS) se.sics.mspsim.Main $(ARGS) $(FIRMWAREFILE) $(MAPFILE)
runesb: compile
$(JAVA) $(JAVAARGS) se.sics.mspsim.platform.esb.ESBNode $(ARGS) $(ESBFIRMWARE) $(MAPFILE)

View File

@ -94,7 +94,12 @@
</java>
</target>
<target name="run" depends="runsky"/>
<target name="run" depends="jar" description="run MSPSim">
<property name="FIRMWAREFILE" value="firmware/sky/blink.sky"/>
<java fork="true" classpath="${jarfile}" classname="se.sics.mspsim.Main">
<arg value="${FIRMWAREFILE}"/>
</java>
</target>
<target name="cputest" depends="jar" description="run MSPSim CPU test">
<property name="FIRMWAREFILE" value="tests/cputest.sky"/>

View File

@ -28,16 +28,12 @@
*
* This file is part of MSPSim.
*
* $Id$
*
* -----------------------------------------------------------------
*
* Main
*
* Authors : Joakim Eriksson, Niclas Finne
* Created : 6 nov 2008
* Updated : $Date$
* $Revision$
*/
package se.sics.mspsim;
@ -104,7 +100,21 @@ public class Main {
if (nodeType != null) {
node = createNode(nodeType);
} else {
platform = config.getProperty("platform", "sky");
platform = config.getProperty("platform");
if (platform == null) {
// Default platform
platform = "sky";
// Guess platform based on firmware filename suffix.
// TinyOS firmware files are often named 'main.exe'.
String[] a = config.getArguments();
if (a.length > 0 && !"main.exe".equals(a[0])) {
int index = a[0].lastIndexOf('.');
if (index > 0) {
platform = a[0].substring(index + 1);
}
}
}
nodeType = getNodeTypeByPlatform(platform);
node = createNode(nodeType);
}