Hi svensonjoel,
up to speed? The ZPi was just released and I guess most of the sold units are in the hands of zynq beginners as we are.
It turns out it is a quite difficult task to get familiar with the zynq. We should share our experiences.
Major things I found out and some took me an enormous amount of time are:
- Trenz highly recommends to install Vivado to c:\Xilinx!
- A good place to start are the Trenz reference designs. They are good for deployment and to fulfill some tasks, but do not use them for development, the turn around times are far too slow and you do not have a debugger. Use the SDK instead!
- hdmi_fb does not work on all devices, you have a good chance if your monitor has an hdmi input. Many tv require a hdmi handshake or the screen will stay dark.
- Have a serial terminal opened before you start the flash or you will miss the uart outputs. Jtag uart and flash work in parallel!
How to create "Hello World" in SDK:
1. File/New/Application Project
Select a default location
Enter the project name: "Hello_World"
Push the Hardware Platform select button [...] and in the box "Target Hardware Specification" use the "Browse"-Button to import from the test_board reference design "test_board/prebuilt/hardware/TE0726-<your board version>/test_board.hdf".
Hardware Platform should now list "test_board_hw_platform_0" and you can immediately select that from now on.
Hit the "Next Button"
2. Select "Hello World" from the templates.
Hit "Finish" and wait patiently until the build is finished.
3. Now the really important! Many thanks to John Hartfield at Trenz, never I would have found that!
In "system.mss" (should initally be opened) hit "Modify this BSP's Settings".
Select "standalone"
Choose "ps7_uart_1" for stdin and stdout!
Hit OK and the project rebuilds.
4. Open a Terminal to your ZPi. I use Putty.
In the SDK, Project Explorer, right click on "Hello_World", select "Run as/Lauch on Hardware (GDB).
You now should see "Hello World" in your terminal and are ready to explore zynq baremetal.
I suggest next you try the "Peripheral Test" template.
This weekend I tried to get i2c working. I still use the test_board.hdf. The 40-pin connector of the board is not supported from the reference hdf's yet. But the 5 pin connector is.
I have not got that working. The experiences are typically the same I have since I got this board. There is always a show stopper, something that knocks me out. Too many questions arise, it is very time consuming to find answers (if there are any). Tutorials that you find in the net are often outdated, information that you get is misleading or wrong. Even from Xilinx. But I feel I make some progress.
Example: For an i2c_scan I used library function XIicPs_MasterSendPolled(). Xilinx documents say there is a timeout, but it is not, the function does not return! I did not find any additional information about that.
At least some days ago I got Petalinux to work, with USB and ethernet supported. I failed to extend to an OpenAmp-system, followed the PetaLinux Setup described in UG1186 until the selection of rootfs apps and modules which are not accessible.
If there is demand on a tutorial on how to get a 2 core Petalinux working I would write that down.
For all who want to learn about PL and AXI, here are really good video tutorials from Mohammad Sadri:
http://www.googoolia.com/wp/category/zynq-training/Have fun
Mike