Continue to Site

Welcome to EDAboard.com

Welcome to our site! EDAboard.com is an international Electronics Discussion Forum focused on EDA software, circuits, schematics, books, theory, papers, asic, pld, 8051, DSP, Network, RF, Analog Design, PCB, Service Manuals... and a whole lot more! To participate you need to register. Registration is free. Click here to register now.

Adding example embedded designs to Vitis

Status
Not open for further replies.

arminb73

Junior Member level 3
Joined
Nov 9, 2021
Messages
26
Helped
0
Reputation
0
Reaction score
1
Trophy points
3
Activity points
185
Hello,
I am to use AXI UART16550 IP connected with ZYNQ7 PS to do some examples created by Xilinx in their software program Vitis: https://github.com/Xilinx/embeddedsw/tree/master/XilinxProcessorIPLib/drivers/uartns550
The main problem is I don't know how to add these examples to Vitis... The bitstream in Vivado has been created, and the platform project has also been created. All that is left is to add the code to Vitis.

unknown.png
 

@arminb73
The main problem is I don't know how to add these examples to Vitis..
What do you mean by this?
Vitis is just a unified software from Xilinx which as several sub-parts.

Do you want to write the software targeted for the Zynq that will exercise the UART IP core?
 

Yes, that is what I am to accomplish.
Hello,

the first thing that you should to do is to check in your block design the memory map of your components in it - this values will be eksported to SDK (and then in software for PS). Vivado 2019.1 is the last wich have Xilinx SDK - the SDK is simpler to use comparing to Vitis. So maybe it is not stupid to make your block design in Vivado 2019.1 and then later write software in SDK. In the series of tutorials for wich I gave link it is exactly explain how to write software for block design in SDK. I\ didn;t use Vitis so far, but it looks similiar to SDK. Probably you should make "First Stage Bootloader" project for Zynq then load the bitstream an FSB to hardware (your FPGA board). The second stage is to make your software for PS (if there is "hello World" example just choose it. The first thing in software is initialization of PS, and then programing data exchange beetwen PL and PS. Writing software for PS is usually reading and writing proper values to used components registers - it is next to impossible to write it without study documentation.

Best regards
 
Last edited:

    arminb73

    Points: 2
    Helpful Answer Positive Rating
You conclude by saying that writing software for PS involves reading and writing proper values to used component registers. I am fairly new to C, and I know that registers are found using their addresses, but I'm not sure how to get to this register, and if I do, what can I achieve by changing some bits in it? Having trouble understanding the different capabilities of IPs, such as AXI UART16550

...
Hello,

it isn't easy (especially for newbie). On this WWW page you can find example of implementation In C language for this IP Core:

https://xilinx-wiki.atlassian.net/wiki/spaces/A/pages/18842080/AXI+UART+16550+standalone+driver

Here is example source code in Xilinx Github:

https://github.com/Xilinx/embeddedsw/tree/master/XilinxProcessorIPLib/drivers/uartns550/examples

In this file (header file) you can find important UART hardware parameters :

https://github.com/Xilinx/embeddeds...essorIPLib/drivers/uartns550/src/xuartns550.h

Best regards
--- Updated ---

hello,

I think that in your case it is a good idea ot watch this series of video tutorials (many thing will be clear after watching them):


Best regards
 
Last edited:
@arminb73
The main problem is I don't know how to add these examples to Vitis..
What do you mean by this?
Vitis is just a unified software from Xilinx which as several sub-parts.

Do you want to write the software targeted for the Zynq that will exercise the UART IP core?
Yes, that is what I am to accomplish.
 

Hello,

the first thing that you should to do is to check in your block design the memory map of your components in it - this values will be eksported to SDK (and then in software for PS). Vivado 2019.1 is the last wich have Xilinx SDK - the SDK is simpler to use comparing to Vitis. So maybe it is not stupid to make your block design in Vivado 2019.1 and then later write software in SDK. In the series of tutorials for wich I gave link it is exactly explain how to write software for block design in SDK. I\ didn;t use Vitis so far, but it looks similiar to SDK. Probably you should make "First Stage Bootloader" project for Zynq then load the bitstream an FSB to hardware (your FPGA board). The second stage is to make your software for PS (if there is "hello World" example just choose it. The first thing in software is initialization of PS, and then programing data exchange beetwen PL and PS. Writing software for PS is usually reading and writing proper values to used components registers - it is next to impossible to write it without study documentation.

Best regards
You conclude by saying that writing software for PS involves reading and writing proper values to used component registers. I am fairly new to C, and I know that registers are found using their addresses, but I'm not sure how to get to this register, and if I do, what can I achieve by changing some bits in it? Having trouble understanding the different capabilities of IPs, such as AXI UART16550

1637939629530.png


Best regards
 

@arminb73
The main problem is I don't know how to add these examples to Vitis..
What do you mean by this?
Vitis is just a unified software from Xilinx which as several sub-parts.

Do you want to write the software targeted for the Zynq that will exercise the UART IP core?
Good day, dpaul. Yes, that is what I want to be able to achieve.
 

@arminb73
Did you study the tutorials mentioned above FlyingDutch?
Did you understand them?
Do you have a specific problem?
 

Status
Not open for further replies.

Part and Inventory Search

Welcome to EDABoard.com

Sponsor

Back
Top