/*******************************************************************************
* This program and the accompanying materials
* are made available under the terms of the Common Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/cpl-v10.html
*
* Contributors:
* Synopsys, Inc. - ARC GNU Toolchain support
*******************************************************************************/
package com.arc.embeddedcdt.dsf.gdb.server;
import java.io.File;
import org.eclipse.cdt.dsf.service.DsfSession;
import org.eclipse.debug.core.ILaunchConfiguration;
import com.arc.embeddedcdt.dsf.GdbServerBackend;
import com.arc.embeddedcdt.dsf.utils.ConfigurationReader;
public class AshlingBackend extends GdbServerBackend {
private String commandLineTemplate = "%s"
+ " --jtag-frequency %s"
+ " --device arc"
+ " --gdb-port %s"
+ " --arc-reg-file %s";
public AshlingBackend(DsfSession session, ILaunchConfiguration launchConfiguration) {
super(session, launchConfiguration);
}
@Override
public String getCommandLine() {
ConfigurationReader cfgReader = new ConfigurationReader(launchConfiguration);
String ashlingPath = cfgReader.getAshlingPath();
String gdbServerPort = cfgReader.getGdbServerPort();
String ashlingXmlFile = cfgReader.getAshlingXmlPath();
String jtagFrequency = cfgReader.getAshlingJtagFrequency();
String commandLine = String.format(commandLineTemplate, ashlingPath, jtagFrequency,
gdbServerPort, ashlingXmlFile);
return commandLine;
}
@Override
public String getProcessLabel() {
return "Ashling GDBserver";
}
@Override
public String getCommandToConnect() {
ConfigurationReader cfgReader = new ConfigurationReader(launchConfiguration);
return "set tdesc filename " + cfgReader.getAshlingTDescPath() + "\n"
+ super.getCommandToConnect();
}
@Override
public File getWorkingDirectory() {
ConfigurationReader cfgReader = new ConfigurationReader(launchConfiguration);
return new File(cfgReader.getAshlingPath()).getParentFile();
}
}