From 27c09d7894f13b8aee5ee0968ad28c86ed923182 Mon Sep 17 00:00:00 2001 From: Niclas Finne Date: Wed, 18 May 2022 01:05:02 +0200 Subject: [PATCH 1/6] Corrected bit shift in CC2420 log output --- se/sics/mspsim/chip/CC2420.java | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/se/sics/mspsim/chip/CC2420.java b/se/sics/mspsim/chip/CC2420.java index 455428e..88ba4ca 100644 --- a/se/sics/mspsim/chip/CC2420.java +++ b/se/sics/mspsim/chip/CC2420.java @@ -147,6 +147,9 @@ public class CC2420 extends Radio802154 implements USARTListener { public static final int SFDMUX = 0x3E0; public static final int CCAMUX = 0x1F; + public static final int SFDMUX_SHIFT = 5; + public static final int CCAMUX_SHIFT = 0; + // CCAMUX values public static final int CCAMUX_CCA = 0; public static final int CCAMUX_XOSC16M_STABLE = 24; @@ -741,8 +744,8 @@ public class CC2420 extends Radio802154 implements USARTListener { case REG_IOCFG1: if (logLevel > INFO) log("IOCFG1: SFDMUX " - + ((registers[address] & SFDMUX) >> SFDMUX) - + " CCAMUX: " + (registers[address] & CCAMUX)); + + ((registers[address] & SFDMUX) >> SFDMUX_SHIFT) + + " CCAMUX: " + ((registers[address] & CCAMUX) >> CCAMUX_SHIFT)); updateCCA(); break; case REG_MDMCTRL0: From 9400ad406911d613a4ee4c27f4397919ea635dbc Mon Sep 17 00:00:00 2001 From: Niclas Finne Date: Wed, 18 May 2022 01:06:52 +0200 Subject: [PATCH 2/6] Make some inner classes static --- se/sics/mspsim/chip/I2CUnit.java | 2 +- se/sics/mspsim/core/CRC16.java | 2 +- se/sics/mspsim/debug/DwarfReader.java | 6 +++--- se/sics/mspsim/debug/StabFunction.java | 2 +- 4 files changed, 6 insertions(+), 6 deletions(-) diff --git a/se/sics/mspsim/chip/I2CUnit.java b/se/sics/mspsim/chip/I2CUnit.java index e273fe8..31a753d 100644 --- a/se/sics/mspsim/chip/I2CUnit.java +++ b/se/sics/mspsim/chip/I2CUnit.java @@ -55,7 +55,7 @@ public abstract class I2CUnit implements USARTListener { * * @author Víctor Ariño */ - public class I2CData { + public static class I2CData { /** * Several mask for messages. This may not implement a real i2c but is diff --git a/se/sics/mspsim/core/CRC16.java b/se/sics/mspsim/core/CRC16.java index bb685e7..0853a18 100644 --- a/se/sics/mspsim/core/CRC16.java +++ b/se/sics/mspsim/core/CRC16.java @@ -86,7 +86,7 @@ public class CRC16 extends IOUnit { * * @author Víctor Ariño */ - private class CRC16Java { + private static class CRC16Java { private int crc = CCITTSeed; private int polynomial = 0x1021; // 0001 0000 0010 0001 (0, 5, 12) diff --git a/se/sics/mspsim/debug/DwarfReader.java b/se/sics/mspsim/debug/DwarfReader.java index 4a5cc9e..da92f04 100644 --- a/se/sics/mspsim/debug/DwarfReader.java +++ b/se/sics/mspsim/debug/DwarfReader.java @@ -77,7 +77,7 @@ public class DwarfReader implements ELFDebug { ELF elfFile; /* Address ranges */ - class Arange { + static class Arange { int length; int version; int offset; @@ -85,7 +85,7 @@ public class DwarfReader implements ELFDebug { int segmentSize; } - class LineEntry { + static class LineEntry { int address; int line; int file; @@ -96,7 +96,7 @@ public class DwarfReader implements ELFDebug { } } /* Line number lookup data */ - class LineData { + static class LineData { String[] includeDirs; String[] sourceFiles; LineEntry[] lineEntries; diff --git a/se/sics/mspsim/debug/StabFunction.java b/se/sics/mspsim/debug/StabFunction.java index fa9b0ce..fccc5c2 100644 --- a/se/sics/mspsim/debug/StabFunction.java +++ b/se/sics/mspsim/debug/StabFunction.java @@ -36,7 +36,7 @@ public class StabFunction { return sb.toString(); } - class Param { + static class Param { String name; Param(String name) { this.name = name; From 5c9b6f7dba43b08b4cd7b5a8a11e351c07004835 Mon Sep 17 00:00:00 2001 From: Niclas Finne Date: Wed, 18 May 2022 01:21:36 +0200 Subject: [PATCH 3/6] Remove deprecated and unused methods --- se/sics/mspsim/platform/GenericNode.java | 18 +++--------------- 1 file changed, 3 insertions(+), 15 deletions(-) diff --git a/se/sics/mspsim/platform/GenericNode.java b/se/sics/mspsim/platform/GenericNode.java index 4776a6f..d810bd5 100644 --- a/se/sics/mspsim/platform/GenericNode.java +++ b/se/sics/mspsim/platform/GenericNode.java @@ -297,10 +297,6 @@ public abstract class GenericNode extends Chip implements Runnable { } public ELF loadFirmware(URL url) throws IOException { - return loadFirmware(url, cpu.memory); - } - - @Deprecated public ELF loadFirmware(URL url, int[] memory) throws IOException { DataInputStream inputStream = new DataInputStream(url.openStream()); ByteArrayOutputStream byteStream = new ByteArrayOutputStream(); byte[] firmwareData = new byte[2048]; @@ -311,27 +307,19 @@ public abstract class GenericNode extends Chip implements Runnable { inputStream.close(); ELF elf = new ELF(byteStream.toByteArray()); elf.readAll(); - return loadFirmware(elf, memory); + return loadFirmware(elf); } public ELF loadFirmware(String name) throws IOException { - return loadFirmware(name, cpu.memory); - } - - @Deprecated public ELF loadFirmware(String name, int[] memory) throws IOException { - return loadFirmware(ELF.readELF(firmwareFile = name), memory); + return loadFirmware(ELF.readELF(firmwareFile = name)); } public ELF loadFirmware(ELF elf) { - return loadFirmware(elf, cpu.memory); - } - - @Deprecated public ELF loadFirmware(ELF elf, int[] memory) { if (cpu.isRunning()) { stop(); } this.elf = elf; - elf.loadPrograms(memory); + elf.loadPrograms(cpu.memory); MapTable map = elf.getMap(); cpu.getDisAsm().setMap(map); cpu.setMap(map); From b7b1a213d9707da427989358826c461f7ce45eaa Mon Sep 17 00:00:00 2001 From: Niclas Finne Date: Wed, 18 May 2022 01:26:49 +0200 Subject: [PATCH 4/6] Corrected Javadoc argument names --- se/sics/mspsim/core/MSP430Core.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/se/sics/mspsim/core/MSP430Core.java b/se/sics/mspsim/core/MSP430Core.java index da7ed56..8c6d06b 100644 --- a/se/sics/mspsim/core/MSP430Core.java +++ b/se/sics/mspsim/core/MSP430Core.java @@ -662,7 +662,7 @@ public class MSP430Core extends Chip implements MSP430Constants { /** * Schedules a new Time event using the cycles counter * @param event - * @param time + * @param cycles */ public void scheduleCycleEvent(TimeEvent event, long cycles) { long currentNext = cycleEventQueue.nextTime; @@ -703,7 +703,7 @@ public class MSP430Core extends Chip implements MSP430Constants { /** * Schedules a new Time event msec milliseconds in the future * @param event - * @param time + * @param msec */ public long scheduleTimeEventMillis(TimeEvent event, double msec) { /* System.out.println("MAX_DCO " + bcs.getMaxDCOFrequency());*/ From 8951db5b0ee75a04b1a82bcb94fede76833022a3 Mon Sep 17 00:00:00 2001 From: Niclas Finne Date: Wed, 18 May 2022 01:44:19 +0200 Subject: [PATCH 5/6] Minor code cleanup --- se/sics/mspsim/chip/CC1120.java | 8 ++++---- se/sics/mspsim/chip/M25P80.java | 10 ++++------ se/sics/mspsim/core/DisAsm.java | 8 ++++---- se/sics/mspsim/core/MSP430Core.java | 5 ++--- se/sics/mspsim/extutil/highlight/TextScanner.java | 2 +- se/sics/mspsim/ui/DebugUI.java | 2 +- 6 files changed, 16 insertions(+), 19 deletions(-) diff --git a/se/sics/mspsim/chip/CC1120.java b/se/sics/mspsim/chip/CC1120.java index 8a3b22e..0366124 100755 --- a/se/sics/mspsim/chip/CC1120.java +++ b/se/sics/mspsim/chip/CC1120.java @@ -830,16 +830,16 @@ public class CC1120 extends Radio802154 implements USARTListener { } private void printRXFIFO() { - System.out.print(String.format("RXFIFO[%03d]: ", rxfifo.size())); + System.out.printf("RXFIFO[%03d]: ", rxfifo.size()); for (int i = 0; i < rxfifo.size(); i++) { - System.out.print(String.format("%02x", rxfifo.get(i))); + System.out.printf("%02x", rxfifo.get(i)); } System.out.println(); } private void printTXFIFO() { - System.out.print(String.format("TXFIFO[%03d]: ", txfifo.size())); + System.out.printf("TXFIFO[%03d]: ", txfifo.size()); for (int i = 0; i < txfifo.size(); i++) { - System.out.print(String.format("%02x", txfifo.get(i))); + System.out.printf("%02x", txfifo.get(i)); } System.out.println(); } diff --git a/se/sics/mspsim/chip/M25P80.java b/se/sics/mspsim/chip/M25P80.java index abef6e8..8aa8d93 100644 --- a/se/sics/mspsim/chip/M25P80.java +++ b/se/sics/mspsim/chip/M25P80.java @@ -41,6 +41,8 @@ package se.sics.mspsim.chip; import java.io.IOException; +import java.util.Arrays; + import se.sics.mspsim.core.*; import se.sics.mspsim.core.EmulationLogger.WarningType; import se.sics.mspsim.util.Utils; @@ -170,9 +172,7 @@ public class M25P80 extends ExternalFlash implements USARTListener, PortListener pos++; if (pos == 3) { // Clear buffer - for (int i = 0; i < buffer.length; i++) { - buffer[i] = (byte) 0xff; - } + Arrays.fill(buffer, (byte) 0xff); blockWriteAddress = readAddress & 0xfff00; if (DEBUG) { log("programming at $" + Integer.toHexString(readAddress)); @@ -356,9 +356,7 @@ public class M25P80 extends ExternalFlash implements USARTListener, PortListener writeStatus(SECTOR_ERASE_MILLIS); int sectorAddress = address & 0xf0000; loadedAddress = -1; - for (int i = 0; i < buffer.length; i++) { - buffer[i] = (byte)0xff; - } + Arrays.fill(buffer, (byte) 0xff); // Erase a complete sector blockWriteAddress = sectorAddress; for (int i = 0; i < 0x100; i++) { diff --git a/se/sics/mspsim/core/DisAsm.java b/se/sics/mspsim/core/DisAsm.java index 2682902..1ec0dda 100644 --- a/se/sics/mspsim/core/DisAsm.java +++ b/se/sics/mspsim/core/DisAsm.java @@ -630,14 +630,14 @@ public class DisAsm implements MSP430Constants { } private static String dumpMem(int pc, int size, int[] memory) { - String output = ""; + StringBuilder output = new StringBuilder(); for (int i = 0, n = size; i < n; i++) { if (size > i) { - output += Utils.hex8(memory[pc + i]) + " "; + output.append(Utils.hex8(memory[pc + i])).append(" "); } else { - output += " "; + output.append(" "); } } - return output; + return output.toString(); } } diff --git a/se/sics/mspsim/core/MSP430Core.java b/se/sics/mspsim/core/MSP430Core.java index 8c6d06b..5c747b9 100644 --- a/se/sics/mspsim/core/MSP430Core.java +++ b/se/sics/mspsim/core/MSP430Core.java @@ -38,6 +38,7 @@ package se.sics.mspsim.core; import java.io.PrintStream; import java.util.ArrayList; +import java.util.Arrays; import se.sics.mspsim.core.EmulationLogger.WarningType; import se.sics.mspsim.core.Memory.AccessMode; @@ -267,9 +268,7 @@ public class MSP430Core extends Chip implements MSP430Constants { config.setup(this, ioUnits); /* timers after ports ? */ - for (int i = 0; i < timers.length; i++) { - ioUnits.add(timers[i]); - } + ioUnits.addAll(Arrays.asList(timers)); watchdog = new Watchdog(this, config.watchdogOffset); ioSegment.setIORange(config.watchdogOffset, 1, watchdog); diff --git a/se/sics/mspsim/extutil/highlight/TextScanner.java b/se/sics/mspsim/extutil/highlight/TextScanner.java index 677763f..777a2af 100644 --- a/se/sics/mspsim/extutil/highlight/TextScanner.java +++ b/se/sics/mspsim/extutil/highlight/TextScanner.java @@ -15,7 +15,7 @@ public class TextScanner extends Scanner { + "7333333333333333333333333337777473333333333333333333333333377771"; static final byte[] kinds = new byte[cs.length()]; - { + static { for (int i = 0; i < cs.length(); i++) { kinds[i] = (byte) (cs.charAt(i) - '0'); } diff --git a/se/sics/mspsim/ui/DebugUI.java b/se/sics/mspsim/ui/DebugUI.java index a8b96e5..e536810 100644 --- a/se/sics/mspsim/ui/DebugUI.java +++ b/se/sics/mspsim/ui/DebugUI.java @@ -78,7 +78,7 @@ public class DebugUI extends JPanel { listModel = new DbgListModel(); disList = new JList(listModel); - disList.setFont(new Font("courier", 0, 12)); + disList.setFont(new Font("courier", Font.PLAIN, 12)); disList.setCellRenderer(new MyCellRenderer()); disList.setPreferredSize(new Dimension(500, 350)); add(disList, BorderLayout.CENTER); From 15d8882d21713445e45b6ba84687f4c4a8128ddf Mon Sep 17 00:00:00 2001 From: Niclas Finne Date: Wed, 18 May 2022 01:49:32 +0200 Subject: [PATCH 6/6] Use StringBuilder instead of StringBuffer --- se/sics/mspsim/debug/StabFile.java | 2 +- se/sics/mspsim/debug/StabFunction.java | 2 +- se/sics/mspsim/extutil/highlight/LineNumberedBorder.java | 2 +- se/sics/mspsim/util/DotDiagram.java | 2 +- se/sics/mspsim/util/GDBStubs.java | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/se/sics/mspsim/debug/StabFile.java b/se/sics/mspsim/debug/StabFile.java index 33ae33a..82082c0 100644 --- a/se/sics/mspsim/debug/StabFile.java +++ b/se/sics/mspsim/debug/StabFile.java @@ -130,7 +130,7 @@ public class StabFile { } public String toString() { - StringBuffer sb = new StringBuffer(); + StringBuilder sb = new StringBuilder(); sb.append("File: " + path + file + " starts at: " + startAddress + "\n"); for (int i = 0; i < functions.size(); i++) { sb.append(" ").append(functions.get(i)).append("\n"); diff --git a/se/sics/mspsim/debug/StabFunction.java b/se/sics/mspsim/debug/StabFunction.java index fccc5c2..fd24957 100644 --- a/se/sics/mspsim/debug/StabFunction.java +++ b/se/sics/mspsim/debug/StabFunction.java @@ -21,7 +21,7 @@ public class StabFunction { } public String toString() { - StringBuffer sb = new StringBuffer(); + StringBuilder sb = new StringBuilder(); sb.append("Function: " + name); if (params != null) { sb.append("("); diff --git a/se/sics/mspsim/extutil/highlight/LineNumberedBorder.java b/se/sics/mspsim/extutil/highlight/LineNumberedBorder.java index 40610da..4b84bc9 100644 --- a/se/sics/mspsim/extutil/highlight/LineNumberedBorder.java +++ b/se/sics/mspsim/extutil/highlight/LineNumberedBorder.java @@ -264,7 +264,7 @@ public class LineNumberedBorder extends AbstractBorder { * @return the line number for drawing */ private static String padLabel(int lineNumber, int length, boolean addSpace) { - StringBuffer buffer = new StringBuffer(); + StringBuilder buffer = new StringBuilder(); buffer.append(lineNumber); for (int count = (length - buffer.length()); count > 0; count--) { buffer.insert(0, ' '); diff --git a/se/sics/mspsim/util/DotDiagram.java b/se/sics/mspsim/util/DotDiagram.java index 4086a96..1ff8c03 100644 --- a/se/sics/mspsim/util/DotDiagram.java +++ b/se/sics/mspsim/util/DotDiagram.java @@ -180,7 +180,7 @@ public class DotDiagram extends JComponent { // names = new String[diagrams]; // } // names[index] = name; -// StringBuffer sb = new StringBuffer(); +// StringBuilder sb = new StringBuilder(); // for (int i = 0, n = names.length; i < n; i++) { // // Setup JLables... // } diff --git a/se/sics/mspsim/util/GDBStubs.java b/se/sics/mspsim/util/GDBStubs.java index 2565afe..2e44565 100644 --- a/se/sics/mspsim/util/GDBStubs.java +++ b/se/sics/mspsim/util/GDBStubs.java @@ -201,7 +201,7 @@ public class GDBStubs implements Runnable { public static String stringToHex(String base) { - StringBuffer buffer = new StringBuffer(); + StringBuilder buffer = new StringBuilder(); int intValue; for(int x = 0; x < base.length(); x++) {