Alternatively, users can setup the cross triggering to trigger the System ILA when the processor is suspended. This is useful to validate a hardware functionality in the PL by stepping through a software application in Vitis Unified IDE and view the corresponding PL transaction.
For example, I used the same hardware design as above. However, I updated the software application to write to the AXI GPIO. To build use the command below
cd Vitis_Cross_Probing/scripts
make build_sw LAB=3
int main(void)
{
int Status;
//volatile int Delay;
/* Initialize the GPIO driver */
#ifndef SDT
Status = XGpio_Initialize(&Gpio, GPIO_EXAMPLE_DEVICE_ID);
#else
Status = XGpio_Initialize(&Gpio, XGPIO_AXI_BASEADDRESS);
#endif
if (Status != XST_SUCCESS) {
xil_printf("Gpio Initialization Failed\r\n");
return XST_FAILURE;
}
/* Set the direction for all signals as output */
XGpio_SetDataDirection(&Gpio, 1, 0x0);
Xil_DCacheDisable();
while (1) {
XGpio_DiscreteWrite(&Gpio, 1, 0x12345678);
}
}
Open the lab3 workspace in Vitis, and follow the steps below
Highlight the gpio_test application component, and under FLOW, select Debug and Open Settings. Then select New Launch Configurations.
Select the Enable Cross Triggering as shown below
Select Cross Triggering Breakpoints, and Add Items and configurate as shown below. For example, here we want to trigger the ILA when there is a breakpoint on Cortex a53 #0
Select the Debug icon to launch the debug
Launch Vivado Hardware Manager, and connect to your target Note: If you are using the prebuilt XSA, then import the ltx file manually.
Here, I am just waiting on any Trigger.
Return to Vitis, and In the Debug View, highlight the Cortex-A53 #0 and Add a breakpoint on the XGpio_DiscreteWrite(&Gpio, 1) function.
8.Select Continue (play icon) to trigger the ILA. Users can just re-arm the ILA again and Continue (play icon) in Vitis Debug View as there is a while loop.