ECOMMENDATIONS FOR LAYOUT OF RACE IGNALS LED ..........................9 RONT PANEL STATUS 1.10 ..............................9 RECAUTIONS QTRACE ANALYSER OVERVIEW ........................10 ..............................10 NSTALLATION ..........................10 RACE NALYSER LAYOUT 2.2.1 Drop-down menu and toolbar ......................11 2.2.2 Status bar .............................. 12 2.2.2.1...
Page 3
........................34 RACE CONFIGURATION DIALOG 6.1.1 Manufacturer ............................35 6.1.2 Part/Family ............................35 6.1.3 ROM start address ..........................35 6.1.4 ROM size ............................... 36 6.1.5 Trace clock divider ..........................36 6.1.6 C++ project ............................36 6.1.7 Save paths relative to configuration file ....................36 6.1.8 Vector table address ..........................
Page 4
Document History Revision Date Changes 1.00 12/07/18 First release 1.01 06/08/18 Finalising trace configuration section added...
20 way target trace connector. The target JTAG signals connect separately to the users' JTAG adapter. A USB 3.0 connection from on the development PC is used to power the QTrace probe and to stream trace data from it. A standalone Windows application, the QTrace Analyser, configures the probe then decodes and displays its streamed trace data.
Figure 1 QTrace block diagram The QTrace system does not control the target JTAG interface and so does not configure target trace hardware directly. Instead, a debug script is run from the IDE to configure the target trace pins and registers.
3) Do not force the USB lead connector into the QTrace probe. If it does not mate easily then the USB lead connector may be damaged and the lead should be replaced.
2. QTrace Analyser Overview The QTrace Analyser is a standalone application that runs on 64-bit Microsoft Windows 7, 8.1 and 10. It interfaces to the QTrace probe via a USB3 connection and configures it for the chosen target device. The analyser then decodes and displays streamed trace data, independently of the IDE.
2.2.2.1 Taskbar icon As well as the main status bar, the application icon in the Windows Taskbar is also used to convey system status. This is useful when the QTrace Analyser is hidden by another application. The following colours indicate key events:...
Because the QTrace Analyser does not have access to the JTAG port it cannot flush the buffer and thus there will be latency in execution count updates. This does not result in any trace data being lost however.
Search results 3.2.8 Find function from clipboard When switching between the IDE and QTrace Analyser there is an option to find a function implementation from a name saved on the Clipboard. In the IDE copy the function name of interest to ...
_write() function. This is typically implemented as a stub function in a file usually named syscalls.c. For further details of writing to the ITM debug port, refer to the example C code installed with the QTrace Analyser here: C:\Users\Public\PDQLogic\QTraceAnalyser\Firmware\Examples\ITM ...
RACE ANUAL 3.4 General Settings There are a number of QTrace Analyser settings that are accessible from the Settings tab in Settings / Status window in the Source Viewer: Figure 19 General settings These settings are persistent and are summarised below:...
ANUAL 4. Trace Capture The QTrace Analyser will continually decode trace data streamed data from the QTrace probe. It maintains a buffer of the last 8 million instructions traced and can freeze the buffer at any time. This is referred to as trace capture. After the trace buffer has been frozen it can be viewed and analysed while trace data decoding continues as normal.
When a trace configuration is created (see section 6, page 34), a trace capture trigger is also created for the exception handlers. The QTrace Analyser determines the locations of the handlers from the vector table, specified in the trace configuration, and configures a trigger to cover all instructions in the handlers.
However, if the handlers are not in contiguous memory then the QTrace Analyser will either be unable to set trace capture for exceptions (range > 8K) or it will generate false exception triggers when non-exception handler code is executed that has been placed by the linker in between exception handlers.
This is a drop-down list of the supported device manufacturers. Currently ST Microelectronics is supported but this will be updated in subsequent QTrace Analyser releases. There is a ‘Generic’ option to allow devices that aren’t currently supported by the QTrace Analyser to be trialled.
The ARM Cortex-M parts allow the vector table to be relocated which is helpful for custom bootloaders. Having the correct vector table address allows the QTrace Analyser to determine the address of interrupt handlers used by the profiling view, see section 5.
Each entry can be selected as a path relative to the configuration file or an absolute path which is useful for library files. The QTrace Analyser will try to locate all source files but occasionally these can’t be found either because they’re not on the file system e.g. library source files, or because there was not enough information in the ELF file.
Page 38
If the file was found, simply double click on its file path in the Open File dialog and the QTrace Analyser will then remove the entry from the missing files list. It will also remove any other missing files that are located in the same folder.
Figure 45 Additional code range dialog If an image file is selected then the QTrace Analyser will attempt to disassemble it to create a database of instructions to allow the QTrace Analyser to decode trace data for the additional code range e.g.
GPIO configuration registers or to the trace hardware registers as this will likely cause tracing to fail. 6.1.16 Trace port voltage The QTrace probe supports two nominal voltage ranges, 1.8V and 3.3V. Refer to Table 2 on page 7 for minimum and maximum voltage levels.
Once this is done, and the QTrace Analyser has detected a valid trace data stream, the display will change to that shown in Figure 49. If the QTrace Analyser is unable to synchronise with the trace data stream then an error message will be displayed.
Page 43
Figure 49 QTrace Analyser configured and ready to trace When the target is commanded to run by the IDE, it will start streaming trace data which the QTrace Analyser will decode and display. The CPU speed and coverage in the status bar will be updated to reflect their new values.
QTrace system although it is recommended that a STM32-Eval board is used if a custom target board is not available as this will showcase all QTrace Analyser features. In self test mode a dedicated trace configuration file is loaded into the QTrace Analyser which configures the trace probe to generate a sequence of trace data which was recorded from a STM32-Eval board running at 180MHz.
Disable instruction simulation when using a Segger J-Link, see section 12.3. Connect a second screen to display the QTrace Analyser so that it can be viewed side by side with the IDE/debugger. Do not place breakpoints on exception handlers. The buffered trace data is several instructions behind the current instruction and a breakpoint will prevent the exception being decoded.
ANUAL 10. PC Specification The specification of the PC on which the QTrace Analyser is running will have a significant impact on the target speed that can be reliably traced. The QTrace Analyser application continuously decompresses and decodes data streamed by the QTrace probe into machine instructions executed by the target. It must do this quickly enough to avoid missing incoming data and with minimal latency to give a responsive UI.
• Try a different USB3 hub • If the PC was in sleep mode then try rebooting Trace probe not found USB3 Try a different USB3 port and USB3 hub, check 'QTrace' found communications in device manager issue No visible trace activity...
Page 48
Perform a project clean and rebuild synchronisation after sync trace was working OK Repeatable loss of ELF file issue or Rebuild ELF file and retry. Send ELF file to PDQLogic for sync. in specific code QTrace Analyser analysis if issue persists areas Trace buffer overflow...
12. Tracing with common IDEs Although every IDE performs the same basic functions, each one has a different way of interacting with the target. This section details how to configure the debugger scripts supplied with the QTrace Analyser for a number of common IDEs.
Page 52
(as of V9.0.0) issue a hard reset and then re-run the debugger script. As a result, the QTrace Analyser will not detect a target reset and will not automatically clear its internal state, including code coverage.
ANUAL Appendix A Manual driver installation A USB3 driver is installed with the QTrace Analyser installation and the installer will request Administrator privileges to do this. If the request fails then this will prevent the driver from being installed and a manual installation process is required.
Page 64
1) Connect the QTrace probe to a USB 3.0 port 2) If a Windows update message is displayed then cancel it 3) When no driver is installed, QTrace will be identified as ‘WestBridge’ in the Device Manager: Figure 71 QTrace probe shown as 'WestBridge' Right click on WestBridge and select the option ‘Update Driver Software…’...
USB. The application source, project, trace configuration files, the QTrace Analyser installer and a quick start guide are also on the SD card. This allows the QTrace system to be evaluated with no additional hardware or software.
If the source is unavailable e.g. part of a library file, then a command line utility called NoSleep.exe supplied with the QTrace Analyser can be used to replace WFE/WFI instructions in an ELF file with NOP instructions.
Need help?
Do you have a question about the QTrace and is the answer not in the manual?
Questions and answers