This section uses the system project built using the Vitis IDE and launch the IDE debugger to debug the host code and AI Engine kernel source code. Unlike debugging at simulation level, this topic walks you through connecting the harware to the IDE debugger, placing breakpoints in the host code and kernel source code, and observing intermittent values in the Varibale view, register view, and memory inspector.
Download the Vitis IDE project from Download the Vitis IDE project and import in Vitis IDE.
Invoke the Vitis IDE, and select File -> Import -> Vitis project exported zip file.
Browse to the
PeakDetect.ide.zip
, enable the System Projects checkbox , and click Finish.Click the arrow button next to the Manage configurations to the current project icon in the taskbar, and select Hardware.
Right-click the PeakDetect_system, and select the Build Project. It takes 20-25 minutes to completely build for the hardware target.
Prepare the target hardware by flashing the
sd_card.img
on to the VCK190. (Refer to the following note).NOTE: The
sd_card.img
at the{Project}/Hardware/package
directory is for regular use, and thesd_card.img
at the{Project}/Hardware/package_aie_debug
directory is for the debug run on the board.Plug in the sd_card into the SD card slot, and power up the board.
Once the boot completes, type
ifconfig
in the hardware console. This is required to set up the Linux TCF agent to connect with the host.versal-rootfs-common-20231:/run/media/mmcblk0p1# ifconfig eth0 Link encap:Ethernet HWaddr 72:5D:6F:74:88:C9 UP BROADCAST MULTICAST MTU:1500 Metric:1 RX packets:0 errors:0 dropped:0 overruns:0 frame:0 TX packets:0 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:0 (0.0 B) TX bytes:0 (0.0 B) Interrupt:34 eth1 Link encap:Ethernet HWaddr F6:94:91:C7:19:B0 inet addr:10.140.179.228 Bcast:10.140.179.255 Mask:255.255.252.0 inet6 addr: fe80::f494:91ff:fec7:19b0/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:1325 errors:0 dropped:6 overruns:0 frame:0 TX packets:565 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:103454 (101.0 KiB) TX bytes:94168 (91.9 KiB) Interrupt:35 lo Link encap:Local Loopback inet addr:127.0.0.1 Mask:255.0.0.0 inet6 addr: ::1/128 Scope:Host UP LOOPBACK RUNNING MTU:65536 Metric:1 RX packets:2 errors:0 dropped:0 overruns:0 frame:0 TX packets:2 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:140 (140.0 B) TX bytes:140 (140.0 B)
NOTE: It is required to connect the VCK190 board to the Ethernet cable to get the ethernet address.
Set up the connnection to the target hardware board.
Run the hardware server from the computer that connects to the target board. To do so, launch the hw_server from the computer that has the JTAG connection to the VCK190 board.
Create the debug target connection from the Vitis IDE by right-clicking the PeakDetect_system, and select the Debug -> Debug configuraions.
Under the Main tab -> Target section -> Hardware server option -> Local target -> New as follows.
In the Target Connection Details window, enter the Target name and Host. The Host name should match with what you see in the launch hardware server window, and hit Test Connection.
You should see the following Connection Successful! message:
You can also click the >>Advanced button to view the details of the VCK190 as follows.
Similarly, set up the Linux TCF Agent. Under the Main tab -> Target section -> Linux TCF Agent option, select New and enter the Target and Host details. Enter the
inet addr
address you see after issuing theifconfig
command in the hardware Linux console in the Host field. Click Test Connection. You see Connection Successful message as shown above.Now, in the Vitis IDE, right-click the PeakDetect_system, and select the Debug As -> Launch Hardware.
The Vitis IDE switches automatically to the debug mode, and the debugger suspends the host application at an automatic breakpoint in the
host.cpp
as follows.