/** * Prepares CPU, memory and ELF module. * * @param fileELF ELF file * @param cpu MSP430 cpu * @throws IOException Preparing mote failed */ protected void prepareMote(File fileELF, GenericNode node) throws IOException { LineOutputStream lout = new LineOutputStream( new LineListener() { public void lineRead(String line) { for (LineListener l : commandListeners.toArray(new LineListener[0])) { if (l == null) { continue; } l.lineRead(line); } } }); PrintStream out = new PrintStream(lout); this.commandHandler = new CommandHandler(out, out); node.setCommandHandler(commandHandler); ConfigManager config = new ConfigManager(); node.setup(config); this.myCpu = node.getCPU(); this.myCpu.setMonitorExec(true); this.myCpu.setTrace(0); /* TODO Enable */ int[] memory = myCpu.getMemory(); logger.info("Loading firmware from: " + fileELF.getAbsolutePath()); GUI.setProgressMessage("Loading " + fileELF.getName()); node.loadFirmware(((MspMoteType) getType()).getELF(), memory); /* Throw exceptions at bad memory access */ /*myCpu.setThrowIfWarning(true);*/ /* Create mote address memory */ MapTable map = ((MspMoteType) getType()).getELF().getMap(); MapEntry[] allEntries = map.getAllEntries(); myMemory = new MspMoteMemory(allEntries, myCpu); heapStartAddress = map.heapStartAddress; myCpu.reset(); }
/** * Prepares CPU, memory and ELF module. * * @param fileELF ELF file * @param cpu MSP430 cpu * @throws IOException Preparing mote failed */ protected void prepareMote(File fileELF, GenericNode node) throws IOException { LineOutputStream lout = new LineOutputStream( new LineListener() { @Override public void lineRead(String line) { LineListener listener = commandListener; if (listener != null) { listener.lineRead(line); } } }); PrintStream out = new PrintStream(lout); this.commandHandler = new CommandHandler(out, out); node.setCommandHandler(commandHandler); ConfigManager config = new ConfigManager(); node.setup(config); this.myCpu = node.getCPU(); this.myCpu.setMonitorExec(true); int[] memory = myCpu.getMemory(); if (GUI.isVisualizedInApplet()) { myELFModule = node.loadFirmware(new URL(GUI.getAppletCodeBase(), fileELF.getName()), memory); } else { myELFModule = node.loadFirmware(fileELF.getPath(), memory); } /* Throw exceptions at bad memory access */ /*myCpu.setThrowIfWarning(true);*/ /* Create mote address memory */ MapTable map = myELFModule.getMap(); MapEntry[] allEntries = map.getAllEntries(); myMemory = new MspMoteMemory(allEntries, myCpu); heapStartAddress = map.heapStartAddress; myCpu.reset(); }