debugger: work in progress (new trk runner)

Basic TRK/adapter communication now works using "rfcomm listen /dev/rfcomm0 1
&& ./adapter -f -v /dev/rfcomm0 127.0.0.1:3222 && ./cs-gdb"

This is wrapped up in a "runner" binary
This commit is contained in:
hjk
2009-09-03 09:26:27 +02:00
parent 0915d3e206
commit 809117892c
4 changed files with 1465 additions and 236 deletions

View File

@@ -38,6 +38,7 @@ rfcomm listen /dev/rfcomm0 1 $PWD/trklauncher -v -f {}
#The same with the debug adapter: #The same with the debug adapter:
rfcomm listen /dev/rfcomm0 1 $PWD/run.pl -af -av -w {} rfcomm listen /dev/rfcomm0 1 $PWD/run.pl -af -av -w {}
rfcomm listen /dev/rfcomm0 1 $PWD/runner -af -av -w {}
#Important options: -w wait for adapter, -af omit serial frame. #Important options: -w wait for adapter, -af omit serial frame.

View File

@@ -115,7 +115,9 @@ public:
void setRegisterEndianness(Endianness r) { m_registerEndianness = r; } void setRegisterEndianness(Endianness r) { m_registerEndianness = r; }
void setUseSocket(bool s) { m_useSocket = s; } void setUseSocket(bool s) { m_useSocket = s; }
void setBufferedMemoryRead(bool b) { qDebug() << "Buffered=" << b; m_bufferedMemoryRead = b; } void setBufferedMemoryRead(bool b) { qDebug() << "Buffered=" << b; m_bufferedMemoryRead = b; }
bool startServer();
public slots:
void startServer();
private slots: private slots:
void handleResult(const trk::TrkResult &data); void handleResult(const trk::TrkResult &data);
@@ -247,12 +249,14 @@ void Adapter::setGdbServerName(const QString &name)
} }
} }
bool Adapter::startServer() void Adapter::startServer()
{ {
QString errorMessage; QString errorMessage;
if (!openTrkPort(m_trkServerName, &errorMessage)) { if (!openTrkPort(m_trkServerName, &errorMessage)) {
logMessage(errorMessage, true); logMessage(errorMessage, true);
return false; logMessage("LOOPING");
QTimer::singleShot(1000, this, SLOT(startServer()));
return;
} }
sendTrkInitialPing(); sendTrkInitialPing();
@@ -271,7 +275,8 @@ bool Adapter::startServer()
logMessage(QString("Unable to start the gdb server at %1:%2: %3.") logMessage(QString("Unable to start the gdb server at %1:%2: %3.")
.arg(m_gdbServerName).arg(m_gdbServerPort) .arg(m_gdbServerName).arg(m_gdbServerPort)
.arg(m_gdbServer.errorString()), true); .arg(m_gdbServer.errorString()), true);
return false; QCoreApplication::exit(5);
return;
} }
logMessage(QString("Gdb server running on %1:%2.\nRegister endianness: %3\nRun arm-gdb now.") logMessage(QString("Gdb server running on %1:%2.\nRegister endianness: %3\nRun arm-gdb now.")
@@ -279,7 +284,6 @@ bool Adapter::startServer()
connect(&m_gdbServer, SIGNAL(newConnection()), connect(&m_gdbServer, SIGNAL(newConnection()),
this, SLOT(handleGdbConnection())); this, SLOT(handleGdbConnection()));
return true;
} }
void Adapter::logMessage(const QString &msg, bool force) void Adapter::logMessage(const QString &msg, bool force)
@@ -1521,9 +1525,8 @@ int main(int argc, char *argv[])
adapter.setRegisterEndianness(options.registerEndianness); adapter.setRegisterEndianness(options.registerEndianness);
adapter.setUseSocket(options.useSocket); adapter.setUseSocket(options.useSocket);
adapter.setSerialFrame(options.serialFrame); adapter.setSerialFrame(options.serialFrame);
if (adapter.startServer()) QTimer::singleShot(0, &adapter, SLOT(startServer()));
return app.exec(); return app.exec();
return 4;
} }
#include "adapter.moc" #include "adapter.moc"

File diff suppressed because it is too large Load Diff

View File

@@ -1,9 +1,15 @@
TEMPLATE = app TEMPLATE = app
QT += network
win32:CONFIG+=console win32:CONFIG+=console
HEADERS += HEADERS += \
trkutils.h \
trkdevice.h \
SOURCES += \ SOURCES += \
runner.cpp \ runner.cpp \
trkutils.cpp \
trkdevice.cpp \