diff --git a/Makefile b/Makefile index e9d521e..01a5ff7 100644 --- a/Makefile +++ b/Makefile @@ -54,8 +54,7 @@ CCARGS=-deprecation -classpath . FIRMWAREFILE = blinker2.ihex -CPUTEST := tests/cputest.ihex -CPUTESTMAP := $(CPUTEST:.ihex=.map) +CPUTEST := tests/cputest.firmware PACKAGES := ${addprefix se/sics/mspsim/,core platform/esb platform/sky util} @@ -79,7 +78,7 @@ help: .PHONY: run run: compile - java se.sics.util.IHexReader $(FIRMWAREFILE) $(MAPFILE) + java se.sics.mspsim.util.IHexReader $(FIRMWAREFILE) $(MAPFILE) runesb: compile java se.sics.mspsim.platform.esb.ESBNode $(FIRMWAREFILE) $(MAPFILE) @@ -91,19 +90,19 @@ runsky: compile test: cputest cputest: $(CPUTEST) - java se.sics.util.Test $(CPUTEST) $(CPUTESTMAP) + java se.sics.mspsim.util.Test $(CPUTEST) $(CPUTEST): (cd tests && $(MAKE)) test: cd tests && make - java se.sics.util.Test $(CPUTEST) $(CPUTESTMAP) + java se.sics.mspsim.util.Test $(CPUTEST) .PHONY: mtest mtest: compile $(CPUTEST) @-$(RM) mini-test_cpu.txt - java se.sics.util.Test -debug $(CPUTEST) $(CPUTESTMAP) >mini-test_cpu.txt + java se.sics.util.Test -debug $(CPUTEST) >mini-test_cpu.txt ############################################################### diff --git a/se/sics/mspsim/util/Test.java b/se/sics/mspsim/util/Test.java index c416d1a..1606532 100644 --- a/se/sics/mspsim/util/Test.java +++ b/se/sics/mspsim/util/Test.java @@ -40,9 +40,10 @@ */ package se.sics.mspsim.util; import se.sics.mspsim.core.*; +import java.io.IOException; /** - * Test - tests a ihex file and exits when reporting "FAIL:" first + * Test - tests a firmware file and exits when reporting "FAIL:" first * on a line... */ public class Test implements USARTListener { @@ -89,24 +90,21 @@ public class Test implements USARTListener { index++; } - IHexReader reader = new IHexReader(); - String ihexFile = args[index++]; - int[] memory = cpu.getMemory(); - reader.readFile(memory, ihexFile); - cpu.reset(); + try { + int[] memory = cpu.getMemory(); + ELF elf = ELF.readELF(args[index++]); + elf.loadPrograms(memory); + MapTable map = elf.getMap(); + cpu.getDisAsm().setMap(map); + cpu.setMap(map); + cpu.reset(); - if (index < args.length && cpu.getDisAsm() != null) { - try { - MapTable map = new MapTable(args[index++]); - cpu.getDisAsm().setMap(map); - } catch (Exception e) { - e.printStackTrace(); - System.exit(1); - } + // Create the "tester" + new Test(cpu); + cpu.cpuloop(); + } catch (IOException ioe) { + ioe.printStackTrace(); } - // Create the "tester" - new Test(cpu); - cpu.cpuloop(); } }