Difference between revisions of "BELK-TN-008: Integrating Visual Studio Code and Lauterbach PowerView TRACE32"

From DAVE Developer's Wiki
Jump to: navigation, search
(Debugging in VSC by using PVT32 as a communication bridge)
(Integrating VSC e PVRT32)
Line 43: Line 43:
 
==Integrating VSC e PVRT32==
 
==Integrating VSC e PVRT32==
 
===Debugging in VSC by using PVT32 as a communication bridge===
 
===Debugging in VSC by using PVT32 as a communication bridge===
After opening VSC from the root directory of the <code>freertos_hello_world</code> project, install the ''Native Debug'' extension.
+
*After opening VSC from the root directory of the <code>freertos_hello_world</code> project, install the ''Native Debug'' extension.
 
+
*Then, create a <code>launch.json</code> file by selecting ''Debug->Add Configuration->GDB''. The file should look like this:
Then, create a <code>launch.json</code> file by selecting ''Debug->Add Configuration->GDB''. The file should look like this:
 
 
<pre>
 
<pre>
 
{
 
{
Line 70: Line 69:
 
}
 
}
 
</pre>
 
</pre>
 
+
*Edit the PVT32's configuration file (ususally named <code>config.t32</code>) and add the following lines:
 
 
4) Avvia TRACE32 (simulatore o anche jtag debugger, è indifferente) con abilitato il controllo remoto come GDB backend
 
 
 
Vedi file config-gdb.t32, il tuo config file deve avere:
 
 
<pre>
 
<pre>
 
; Remote Control Access
 
; Remote Control Access
Line 81: Line 76:
 
PROTOCOL=TCP
 
PROTOCOL=TCP
 
</pre>
 
</pre>
+
*Run PVT32 and start a debuggin session (see for instance [[BELK-TN-007:_FreeRTOS_on_single-core_Bora_Lite_SoM#Running_the_application|this section]].
 
+
*On VSC side, start a debugging session by pressing F5. VSC will start a debug session that is synchronized with PVT32 as shown in the following image.
Per avviare t32 con questo config file si usa t32marm.exe -c config-gdb.t32
+
[[File:TBD.png|thumb|center|600px|caption]]
 
 
Si può usare il link nello .zip, magari correggendo i path:
 
  
C:\T32\bin\windows64\t32marm.exe -c C:\T32+\T32-demo\VSCode\config-gdb.t32
 
  
 
===Jumping from PVT32 to VSC to edit source files===
 
===Jumping from PVT32 to VSC to edit source files===
  
 
===Catching cross-tool chain output===
 
===Catching cross-tool chain output===

Revision as of 14:15, 17 February 2020

Info Box
Bora5-small.jpg Applies to Bora
BORA Xpress.png Applies to BORA Xpress
BORALite-TOP.png Applies to BORA Lite


Warning-icon.png This technical note was validated against specific versions of hardware and software. What is described here may not work with other versions. Warning-icon.png

History[edit | edit source]

Version Date Notes
1.0.0 February 2020 First public release

Introduction[edit | edit source]

This Technical Note (TN) shows how to integrate Visual Studio Code (VSC) and Lauterbach PowerView TRACE32 (PVT32). The integration aims to:

  • Debug the program in VSC by using PVT32 as a communication bridge with the target
  • Jump from PVT32 to VSC (in editing mode) to edit the source file where the a was found.

This article also shows how to configure VSC in order to cross-build a Makefile-based application. This configuration supports cross-toolchain error messages to jump on erroneous lines with a simple click.

Testbed[edit | edit source]

To test the procedure, the same testbed described here was used. Therefore, the application used to validate the procedure is freertos_hello_world.

With regard to VSC, the following version was used:

Version: 1.41.1 (system setup)
Commit: 26076a4de974ead31f97692a0d32f90d735645c0
Date: 2019-12-18T14:58:56.166Z
Electron: 6.1.5
Chrome: 76.0.3809.146
Node.js: 12.4.0
V8: 7.6.303.31-electron.0
OS: Windows_NT x64 6.1.7601

Integrating VSC e PVRT32[edit | edit source]

Debugging in VSC by using PVT32 as a communication bridge[edit | edit source]

  • After opening VSC from the root directory of the freertos_hello_world project, install the Native Debug extension.
  • Then, create a launch.json file by selecting Debug->Add Configuration->GDB. The file should look like this:
{
    // Use IntelliSense to learn about possible attributes.
    // Hover to view descriptions of existing attributes.
    // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
    "version": "0.2.0",
    "configurations": [
        {
            "name": "Debug (PowerView TRACE32)",
            "type": "gdb",
            "request": "launch",
            //"target": "${workspaceRoot}/Debug/freertos_hello_world.elf",
            "target": "r:/home/llandre/devel/formulasae/ecu/boralite/workspace-2019.1/freertos_hello_world/Debug/freertos_hello_world.elf",
            "gdbpath": "e:/Xilinx/SDK/2019.1/gnu/aarch32/nt/gcc-arm-none-eabi/bin/arm-none-eabi-gdb.exe",
            "cwd": "${workspaceRoot}",
            "valuesFormatting": "parseText",
            "autorun": [
                "target remote localhost:30000",
                "symbol-file ${workspaceRoot}/Debug/freertos_hello_world.elf",
            ]
        }
    ]
}
  • Edit the PVT32's configuration file (ususally named config.t32) and add the following lines:
; Remote Control Access
GDB=NETASSIST
PORT=30000
PROTOCOL=TCP
  • Run PVT32 and start a debuggin session (see for instance this section.
  • On VSC side, start a debugging session by pressing F5. VSC will start a debug session that is synchronized with PVT32 as shown in the following image.
caption


Jumping from PVT32 to VSC to edit source files[edit | edit source]

Catching cross-tool chain output[edit | edit source]