Software Application Development with Vitis
Table of Contents
1 Software Application Development
After design hardware and generate bitstream with Vivado, the hardware design shall be output as xsa file format to be used for software development.
During software development, Vitis shall be used. The AMD Vitis unified software platform is a development environment for heterogeneous applications. Vitis unified software platform is strong tools for software design, in a sense, it can be regarded as bridge between AMD Xilinx Hardware design and imaginary application design.
Here are two Vitis design flow

This blog follows the left part as traditional design, And Beyond this lab session, my final design shall use Vitis AI integrated XRT library to make machine learning acceleration design as right part of the design flow. That part shall be covered in final blog.
2 Import hardware design file
Find hardware design file in xsa format in Archive Manager, and double click the file to open it as extract file to see files inside this bundle.

Open VItis IDE

create the new platform project

import the hardware , select the xsa file,

Click Finish. Now the vitis project is created and ready for software design.

3 Update the BSP
The hardware platform is now visible under the Project Explorer.
double-click on platform.spr in Project Explorer under Ultra_96_Platform to view Hardware Platform Specification as is open in the working window

select the standalone BSP and press the Modify BSP Settings.

to see BSP settings

the libraries and settings within the BSP

press OK , and then pressing CTRL-B or pressing the hammer icon to build the application,

build the bsp

browse the file structure to understand what is in it and to modify as you wish,

most of the hardware definition can be seen in this xparameters.h file

go further with /lib and /include

the UART port can be changed to UART1 in standalone BSP

Press OK to see the BSP sources to be updated.

4 Create application
Now, create new projects

type project name

select bsp and wait for template to be loaded,

import empty template for now, there are FSBL template as well for fast booting bin file generation for SD card,

Press finish and the new application is created.

Build finish with errors since no elf file is generated.

create main code, new file name hello_zynq.c

import from psu_uart_1 template

the file can be open in new window, copy all the code

and paste into the hello_zynq.c, build without errors and elf files is created,


the link script can be modified in GUI

or source format,

the link script can be re-generated after revise.

5 Program the hardware
connect the debug port and usb cable

the usb device can be found as FTDI devices,

then program the device with the project

This is how the software can be designed and programmed. The lab session provide full instruction and source code in each lab.
This is really impressive that anyone can learn as fast as expected or skip some part and go deep into another part.