Bug 552597: Add PEmicro definitions

Change-Id: If6a75356be914f3fc53ead1094cd78dc49998cce
Signed-off-by: John Dallaway <john@dallaway.org.uk>
diff --git a/jtag/org.eclipse.cdt.debug.gdbjtag.core/META-INF/MANIFEST.MF b/jtag/org.eclipse.cdt.debug.gdbjtag.core/META-INF/MANIFEST.MF
index 2017101..f299161 100644
--- a/jtag/org.eclipse.cdt.debug.gdbjtag.core/META-INF/MANIFEST.MF
+++ b/jtag/org.eclipse.cdt.debug.gdbjtag.core/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: %pluginName
 Bundle-SymbolicName: org.eclipse.cdt.debug.gdbjtag.core;singleton:=true
-Bundle-Version: 9.3.100.qualifier
+Bundle-Version: 9.4.0.qualifier
 Bundle-Activator: org.eclipse.cdt.debug.gdbjtag.core.Activator
 Bundle-Localization: plugin
 Require-Bundle: org.eclipse.core.runtime,
diff --git a/jtag/org.eclipse.cdt.debug.gdbjtag.core/plugin.properties b/jtag/org.eclipse.cdt.debug.gdbjtag.core/plugin.properties
index 47099c2..c25660b 100644
--- a/jtag/org.eclipse.cdt.debug.gdbjtag.core/plugin.properties
+++ b/jtag/org.eclipse.cdt.debug.gdbjtag.core/plugin.properties
@@ -13,6 +13,7 @@
 #     IBM Corporation
 #     John Dallaway - migrate device extensions to core plugin, bug 538282
 #     John Dallaway - SEGGER J-Link extension, bug 548281
+#     John Dallaway - PEmicro extension, bug 552597
 ###############################################################################
 launchConfig.name=GDB Hardware Debugging
 pluginName=Eclipse GDB Hardware Debug Core Plug-in
@@ -25,6 +26,7 @@
 GenericSerial.name=Generic Serial
 OpenOCDPipe.name=OpenOCD (via pipe)
 OpenOCDSocket.name=OpenOCD (via socket)
+PEMicro.name=PEmicro
 SeggerJLink.name=SEGGER J-Link
 Generic.name=Generic TCP/IP
 
diff --git a/jtag/org.eclipse.cdt.debug.gdbjtag.core/plugin.xml b/jtag/org.eclipse.cdt.debug.gdbjtag.core/plugin.xml
index 7c9c4a6..3c2e244 100644
--- a/jtag/org.eclipse.cdt.debug.gdbjtag.core/plugin.xml
+++ b/jtag/org.eclipse.cdt.debug.gdbjtag.core/plugin.xml
@@ -58,6 +58,11 @@
             name="%OpenOCDSocket.name">
       </device>
       <device
+            class="org.eclipse.cdt.debug.gdbjtag.core.jtagdevice.PEMicro"
+            id="org.eclipse.cdt.debug.gdbjtag.core.jtagdevice.PEMicro"
+            name="%PEMicro.name">
+      </device>
+      <device
             class="org.eclipse.cdt.debug.gdbjtag.core.jtagdevice.SeggerJLink"
             id="org.eclipse.cdt.debug.gdbjtag.core.jtagdevice.SeggerJLink"
             name="%SeggerJLink.name">
diff --git a/jtag/org.eclipse.cdt.debug.gdbjtag.core/src/org/eclipse/cdt/debug/gdbjtag/core/jtagdevice/PEMicro.java b/jtag/org.eclipse.cdt.debug.gdbjtag.core/src/org/eclipse/cdt/debug/gdbjtag/core/jtagdevice/PEMicro.java
new file mode 100644
index 0000000..0fc57d3
--- /dev/null
+++ b/jtag/org.eclipse.cdt.debug.gdbjtag.core/src/org/eclipse/cdt/debug/gdbjtag/core/jtagdevice/PEMicro.java
@@ -0,0 +1,51 @@
+/*******************************************************************************
+ * Copyright (c) 2008, 2019 QNX Software Systems and others.
+ *
+ * This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     QNX Software Systems - Initial API and implementation
+ *     Andy Jin - Hardware debugging UI improvements, bug 229946
+ *     John Dallaway - PEmicro extension, bug 552597
+ *******************************************************************************/
+package org.eclipse.cdt.debug.gdbjtag.core.jtagdevice;
+
+import java.util.Collection;
+
+/**
+ * @since 9.4
+ */
+public class PEMicro extends DefaultGDBJtagDeviceImpl {
+
+	@Override
+	public String getDefaultPortNumber() {
+		return "7224"; //$NON-NLS-1$
+	}
+
+	@Override
+	public void doDelay(int delay, Collection<String> commands) {
+		/* not supported */
+	}
+
+	@Override
+	public void doHalt(Collection<String> commands) {
+		/* not supported */
+	}
+
+	@Override
+	public void doReset(Collection<String> commands) {
+		doResetAndHalt(commands);
+		doContinue(commands);
+	}
+
+	@Override
+	public void doResetAndHalt(Collection<String> commands) {
+		addCmd(commands, "monitor reset"); //$NON-NLS-1$
+	}
+
+}