You can debug the AI Engine graph application in a standalone capacity to run and debug just the AI Engine. Or, you can debug the system project, including the top-level PS application, as well as the AI Engine graph. Within this framework, you can also debug applications built from the command line, or system projects built in the Vitis™ IDE. You can debug applications running on the Linux OS, or in bare-metal systems. Finally, you can debug hardware emulation builds that let you simulate the application, or debug the actual application running on hardware. All of these configurations are addressed in the following topics.
Note: It is recommended to follow the following steps while debugging AI Engine applications.
- Use x86 simulation for both single and multi-kernel debug. It supports breakpoints and single stepping using the GNU debugger.
- Use AI Engine simulation to verify timing and to check that it will fit within the program memory and stack/heaps size within the available hardware memory space.
- Software emulation for system level functional verification including host code, along with any c-models for user PL code.
- Hardware emulation for complete integration testing including PL, PS, and AI Engine domains as applicable.
- It is recommended to use the compiler optimization option
--xlopt = 0because higher compiler optimizations will reduce debug visibility.
If code changes are applicable, repeat steps 1 through 4.