forked from qt-creator/qt-creator
BareMetal: Long live support for KEIL uVision v5.x debugger
This patch adds debugger integration from the KEIL uVision IDE: * http://www2.keil.com/mdk5/uvision/ This IDE has the uVision Socket Interface (UVSC) that allows to the applications configuration, building and debugging: * http://www.keil.com/appnotes/docs/apnt_198.asp Besides, it provides a binary client libraries for Windows, which are implements some API which we are use in this patch. Currently implemented the following features: * Enumeration of a stack frames. * Enumeration of a threads (tasks). * Registers view (read/write). * Local variables view (read/write). * Watchers view (read/write). * Disassembler view. * Current location marker. * Break-points. * Step-in. * Step-over. * Step-out. * Step-by-instruction. * Start/stop/pause/continue debugger. * Auto-detection for the installed uVision instances (as debuggers). * Wizard for choosing and configuring of the UVSC debug providers. At this moment added support only for the 32-bit ARM devices, provided by the STMicroelectronics: https://www.st.com/en/microcontrollers-microprocessors/stm32-32-bit-arm-cortex-mcus.html For this are implemented two debugger providers: * Simulator - allow to simulate the target device. * ST-Link v2 - it is a HW debugger. This implementation tested only with the QBS using the following target boards: * NUCLEO-F767ZI (based on STM32F767ZIT6 MCU). * STM32F4DISCOVERY (based on STM32F407VG MCU). * STM32F103x (based on STM32F103C8T6 MCU). A more detailed information about this patch can be found in a bug-tracker. Fixes: QTCREATORBUG-23426 Change-Id: Ie36a1f7430b56c33d6665cc35e43fe9bd95d28f1 Reviewed-by: hjk <hjk@qt.io> Reviewed-by: Alessandro Portale <alessandro.portale@qt.io>
This commit is contained in:
@@ -93,6 +93,7 @@ DebuggerEngine *createGdbEngine();
|
||||
DebuggerEngine *createPdbEngine();
|
||||
DebuggerEngine *createQmlEngine();
|
||||
DebuggerEngine *createLldbEngine();
|
||||
DebuggerEngine *createUvscEngine();
|
||||
|
||||
class LocalProcessRunner : public RunWorker
|
||||
{
|
||||
@@ -598,6 +599,9 @@ void DebuggerRunTool::start()
|
||||
QTC_CHECK(false); // Called from DebuggerRunTool constructor already.
|
||||
// m_engine = createPdbEngine();
|
||||
break;
|
||||
case UvscEngineType:
|
||||
m_engine = createUvscEngine();
|
||||
break;
|
||||
default:
|
||||
if (!m_runParameters.isQmlDebugging) {
|
||||
reportFailure(DebuggerPlugin::tr("Unable to create a debugging engine. "
|
||||
|
Reference in New Issue
Block a user