new step method takes maximum cycle count argument
This commit is contained in:
parent
ae603b1450
commit
07834f08de
|
@ -26,7 +26,7 @@
|
||||||
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||||
* SUCH DAMAGE.
|
* SUCH DAMAGE.
|
||||||
*
|
*
|
||||||
* $Id: MspCodeWatcher.java,v 1.1 2008/02/07 14:55:18 fros4943 Exp $
|
* $Id: MspCodeWatcher.java,v 1.2 2008/02/11 11:50:44 fros4943 Exp $
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package se.sics.cooja.mspmote.plugins;
|
package se.sics.cooja.mspmote.plugins;
|
||||||
|
@ -50,7 +50,7 @@ import se.sics.cooja.mspmote.MspMote;
|
||||||
import se.sics.cooja.mspmote.MspMoteType;
|
import se.sics.cooja.mspmote.MspMoteType;
|
||||||
import se.sics.mspsim.core.CPUMonitor;
|
import se.sics.mspsim.core.CPUMonitor;
|
||||||
import se.sics.mspsim.core.MSP430;
|
import se.sics.mspsim.core.MSP430;
|
||||||
import se.sics.mspsim.util.DebugUI;
|
import se.sics.mspsim.ui.DebugUI;
|
||||||
import se.sics.mspsim.util.Utils;
|
import se.sics.mspsim.util.Utils;
|
||||||
|
|
||||||
@ClassDescription("Msp Code Watcher")
|
@ClassDescription("Msp Code Watcher")
|
||||||
|
@ -74,6 +74,9 @@ public class MspCodeWatcher extends VisPlugin {
|
||||||
|
|
||||||
private JLabel filenameLabel;
|
private JLabel filenameLabel;
|
||||||
|
|
||||||
|
private Vector<File> files;
|
||||||
|
private JComboBox fileComboBox;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Mini-debugger for MSP Motes.
|
* Mini-debugger for MSP Motes.
|
||||||
* Visualizes instructions, source code and allows a user to manipulate breakpoints.
|
* Visualizes instructions, source code and allows a user to manipulate breakpoints.
|
||||||
|
@ -106,7 +109,7 @@ public class MspCodeWatcher extends VisPlugin {
|
||||||
JPanel controlPanel = new JPanel();
|
JPanel controlPanel = new JPanel();
|
||||||
|
|
||||||
// Extract files found in debugging info
|
// Extract files found in debugging info
|
||||||
final Vector<File> files = new Vector<File>();
|
files = new Vector<File>();
|
||||||
Enumeration fileEnum = debuggingInfo.keys();
|
Enumeration fileEnum = debuggingInfo.keys();
|
||||||
while (fileEnum.hasMoreElements()) {
|
while (fileEnum.hasMoreElements()) {
|
||||||
File file = (File) fileEnum.nextElement();
|
File file = (File) fileEnum.nextElement();
|
||||||
|
@ -121,26 +124,18 @@ public class MspCodeWatcher extends VisPlugin {
|
||||||
files.add(index, file);
|
files.add(index, file);
|
||||||
}
|
}
|
||||||
String[] fileNames = new String[files.size() + 1];
|
String[] fileNames = new String[files.size() + 1];
|
||||||
fileNames[0] = "[select file]";
|
fileNames[0] = "[view sourcefile]";
|
||||||
for (int i=0; i < files.size(); i++) {
|
for (int i=0; i < files.size(); i++) {
|
||||||
fileNames[i+1] = files.get(i).getName();
|
fileNames[i+1] = files.get(i).getName();
|
||||||
}
|
}
|
||||||
JComboBox fileComboBox = new JComboBox(fileNames);
|
fileComboBox = new JComboBox(fileNames);
|
||||||
fileComboBox.setSelectedIndex(0);
|
fileComboBox.setSelectedIndex(0);
|
||||||
fileComboBox.addActionListener(new ActionListener() {
|
fileComboBox.addActionListener(new ActionListener() {
|
||||||
public void actionPerformed(ActionEvent e) {
|
public void actionPerformed(ActionEvent e) {
|
||||||
JComboBox source = (JComboBox)e.getSource();
|
sourceFileSelectionChanged();
|
||||||
int index = source.getSelectedIndex();
|
|
||||||
if (index == 0) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
File selectedFile = files.get(index-1);
|
|
||||||
Vector<String> codeData = readTextFile(selectedFile);
|
|
||||||
codeUI.displayNewCode(selectedFile, codeData, -1);
|
|
||||||
codeFile = null;
|
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
fileComboBox.setRenderer(new BasicComboBoxRenderer() {
|
fileComboBox.setRenderer(new BasicComboBoxRenderer() {
|
||||||
public Component getListCellRendererComponent(JList list, Object value,
|
public Component getListCellRendererComponent(JList list, Object value,
|
||||||
int index, boolean isSelected, boolean cellHasFocus) {
|
int index, boolean isSelected, boolean cellHasFocus) {
|
||||||
|
@ -172,7 +167,7 @@ public class MspCodeWatcher extends VisPlugin {
|
||||||
stepButton.addActionListener(new ActionListener() {
|
stepButton.addActionListener(new ActionListener() {
|
||||||
public void actionPerformed(ActionEvent e) {
|
public void actionPerformed(ActionEvent e) {
|
||||||
// TODO Perform single step here
|
// TODO Perform single step here
|
||||||
mspMote.getCPU().step();
|
mspMote.getCPU().step(mspMote.getCPU().cycles+1);
|
||||||
updateInfo();
|
updateInfo();
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
@ -209,6 +204,18 @@ public class MspCodeWatcher extends VisPlugin {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void sourceFileSelectionChanged() {
|
||||||
|
int index = fileComboBox.getSelectedIndex();
|
||||||
|
if (index == 0) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
File selectedFile = files.get(index-1);
|
||||||
|
Vector<String> codeData = readTextFile(selectedFile);
|
||||||
|
codeUI.displayNewCode(selectedFile, codeData, -1);
|
||||||
|
codeFile = null;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Contains currently active breakpoints.
|
* Contains currently active breakpoints.
|
||||||
*
|
*
|
||||||
|
@ -580,6 +587,8 @@ public class MspCodeWatcher extends VisPlugin {
|
||||||
} else {
|
} else {
|
||||||
filenameLabel.setText("");
|
filenameLabel.setText("");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fileComboBox.setSelectedIndex(0);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void closePlugin() {
|
public void closePlugin() {
|
||||||
|
|
|
@ -26,7 +26,7 @@
|
||||||
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||||
* SUCH DAMAGE.
|
* SUCH DAMAGE.
|
||||||
*
|
*
|
||||||
* $Id: MspCycleWatcher.java,v 1.1 2008/02/07 14:55:18 fros4943 Exp $
|
* $Id: MspCycleWatcher.java,v 1.2 2008/02/11 11:50:44 fros4943 Exp $
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package se.sics.cooja.mspmote.plugins;
|
package se.sics.cooja.mspmote.plugins;
|
||||||
|
@ -84,7 +84,7 @@ public class MspCycleWatcher extends VisPlugin {
|
||||||
|
|
||||||
JPanel controlPanel = new JPanel(new GridLayout(2,3,5,5));
|
JPanel controlPanel = new JPanel(new GridLayout(2,3,5,5));
|
||||||
controlPanel.setBorder(BorderFactory.createEmptyBorder(10, 10, 10, 10));
|
controlPanel.setBorder(BorderFactory.createEmptyBorder(10, 10, 10, 10));
|
||||||
controlPanel.add(new JLabel("Total cycles:"));
|
controlPanel.add(new JLabel("Cycle counter:"));
|
||||||
controlPanel.add(cycleTextField);
|
controlPanel.add(cycleTextField);
|
||||||
controlPanel.add(updateButton);
|
controlPanel.add(updateButton);
|
||||||
controlPanel.add(new JLabel("Since reset:"));
|
controlPanel.add(new JLabel("Since reset:"));
|
||||||
|
|
Loading…
Reference in a new issue