Common Use Cases - 2021.2 English

Vitis Unified Software Platform Documentation: Embedded Software Development (UG1400)

Document ID
UG1400
ft:locale
English (United States)
Release Date
2021-12-15
Version
2021.2 English
Checking the JTAG status of the board
In the new board bring-up phase, after verifying the power circuits, the first job for hardware verification is to test the JTAG status; checking whether the FPGA or SoC device can be scanned, and whether the processors can be found properly. XSCT can do this job with JTAG access and target connection management commands such as jtag targets, connect, and targets. If you suspect that the board is in an abnormal status and you need to check the basic hardware, it is also recommended to check the JTAG and processor status.
Initializing the board with a single script through JTAG
In some debugging cases (for example, debugging a PL module that needs a PS generated clock), the PS simply needs to be initialized into a certain status. Running customized initialization scripts can be faster and more lightweight than launching runs with the Vitis IDE. The Vitis IDE shows the equivalent XSCT debug commands in the console. To repeat an initialization cycle easily, copy these commands into a Tcl file and use XSCT to execute this Tcl script.
Loading U-Boot with a single script through JTAG
If you need to customize U-Boot, the easiest way to test and iterate is to use XSCT to initialize the board, load the U-Boot binary into DDR, and run it. This can be executed on the fly. Otherwise, you might have to package the boot.bin file and write it to an SD card or the flash memory every time you update the code.
Reading and writing registers with or without applications
When debugging peripherals or their drivers, the status of the peripheral registers is important. The status can be read from XSCT or it can be viewed in the Vitis IDE memory view. Using XSCT commands to read and write registers is quick and lightweight. The register read and write commands can be written into a script to automate repeated processes. You can also save the register values into a file for comparison.