/******************************************************************************* * Copyright (c) 2008, 2012 QNX Software Systems and others. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at * http://www.eclipse.org/legal/epl-v10.html * * Contributors: * QNX Software Systems - Initial API and implementation * Andy Jin - Hardware debugging UI improvements, bug 229946 *******************************************************************************/ package org.eclipse.cdt.debug.gdbjtag.core.jtagdevice; import java.util.Collection; /** * Provides device specific debug commands for different hardware * JTAG devices. See <code>DefaultGDBJtagDeviceImpl</code> for * the default implementations. * */ public interface IGDBJtagDevice { /** * Device reset command * * @param commands * implementation should populate the collection with the gdb * commands that will reset the device, or leave the collection * as-is if that operation is either unsupported or not * applicable */ public void doReset(Collection<String> commands); /** * Default device delay in millisecond * * @return delay in second */ public int getDefaultDelay(); /** * Target needs some delay in order to initialize * * @param delay * delay in second * @param commands * implementation should populate the collection with the gdb * commands that will carry out a delay, or leave the collection * as-is if that operation is either unsupported or not * applicable */ public void doDelay(int delay, Collection<String> commands); /** * Target needs to be in pause mode in order to do JTAG debug. This should * happen before the target MMU takes control * * @param commands * implementation should populate the collection with the gdb * commands that will halt the target, or leave the collection * as-is if that operation is either unsupported or not * applicable */ public void doHalt(Collection<String> commands); /** * Commands to connect to remote JTAG device * * @param ip * host name of IP address of JTAG device * @param port * TCP socket port number of JTAG device * @param commands * implementation should populate the collection with the gdb * commands that will connect to the device, or leave the * collection as-is if that operation is either unsupported or * not applicable * @deprecated an implementor should adapt to IGDBJtagConnection instead of * implementing this method (implementation should throw * UnsupportedOperationException) */ @Deprecated public void doRemote(String ip, int port, Collection<String> commands); /** * Commands to download the executable binary to target * * @param imageFileName * executable binary file name * @param imageOffset * executable binary memory offset * @param commands * implementation should populate the collection with the gdb * commands that will download the executable to the target, or * leave the collection as-is if that operation is either * unsupported or not applicable */ public void doLoadImage(String imageFileName, String imageOffset, Collection<String> commands); /** * Commands to get gdb to consume the symbolics information in the given * file * * @param symbolFileName * symbols file name * @param symbolOffset * symbols file memory offset * @param commands * implementation should populate the collection with the gdb * commands that will process the symbolics file, or leave the * collection as-is if that operation is either unsupported or * not applicable */ public void doLoadSymbol(String symbolFileName, String symbolOffset, Collection<String> commands); /** * Commands to set initial program counter * * @param pc * program counter * @param commands * implementation should populate the collection with the gdb * commands that will set the PC, or leave the collection as-is * if that operation is either unsupported or not applicable */ public void doSetPC(String pc, Collection<String> commands); /** * Commands to set initial breakpoint * * @param stopAt * initial breakpoint location * @param commands * implementation should populate the collection with the gdb * commands that will set the initial breakpoint, or leave the * collection as-is if that operation is either unsupported or * not applicable */ public void doStopAt(String stopAt, Collection<String> commands); /** * De-freeze the target in order to start debugging * * @param commands * implementation should populate the collection with the gdb * commands that will resume the target, or leave the collection * as-is if that operation is either unsupported or not * applicable */ public void doContinue(Collection<String> commands); /** * Device specific default hostname of IP address * * @return default hostname of IP address * @deprecated an implementor should adapt to IGDBJtagConnection instead of * implementing this method (implementation should throw * UnsupportedOperationException) */ @Deprecated public String getDefaultIpAddress(); /** * Device specific default port number * * @return default port number * @deprecated an implementor should adapt to IGDBJtagConnection instead of * implementing this method (implementation should throw * UnsupportedOperationException) */ @Deprecated public String getDefaultPortNumber(); }