Sorry, you need to enable JavaScript to visit this website.

Possible to develop application on Zedboard and deploy on PicoZed ?

Unsolved
5 posts / 0 new
HannesF99's picture
HannesF99
Junior(0)
Possible to develop application on Zedboard and deploy on PicoZed ?

I have to develop an C++ application which shall run on the PicoZed 7015 SOM.

For development, I would prefer to compile the application on the Zedboard devlopment board.
As is noted in http://microzed.org/content/xillinux-run-ubuntu-linux-desktop-zedboard , it seems to be possible to use the Zedboard directly as a computer (with keyboard, monitor and mouse) with a ubuntu-like desktop. So i should be able to use the usual tools (cmake, gcc, ..) to compile my C++ application and all libraries (like OpenCV).

My question is now - can I run the binaries, which I have compiled on the Zedboard, directly on the PicoZed?

fletch's picture
fletch
Moderator(15)
Assuming all peripherals and

Assuming all peripherals and address map are identical, binaries are compatible on different Zynq devices, although you will require a bitstream change for the different device. (ZedBoard has a 7020, while the PZ 7015 has a 7015)
 
That said, the peripheral sets available on ZedBoard vs. PicoZed are different. You'd have to be cautious not to use a ZedBoard peripheral that doesn't exist on PicoZed. You'd also have to manipulate the PicoZed hardware platform design to use the same address map. Otherwise, you are looking at a devicetree change.
 
Bryan

hockeyman1972's picture
hockeyman1972
Junior(11)
Suggestion

If you cannot develop on the production target, this is how I would do it to minimize the possibility that you get bitten by an oversight in the conversion that might hold you up indefinitely:
1. Develop the PetaLinux project/applications for the Zedboard until you are satisfied it's complete.
2. Build a corresponding hardware project in Vivado using PicoZed as the target.
3. Generate a PetaLinux BSP for the new hardware platform.
4. Copy over your applications, device tree modifications, u-boot changes (if any).  Configure the rootfs, kernel and general settings identically to the Zedboard project.
5. Buiid, generate the boot files, and boot from uSD card.  That should work first time.
This is not the fastest way, but it is the safest. 
Ron

HannesF99's picture
HannesF99
Junior(0)
Ok, that sounds positive, but

Ok, that sounds positive, but I have some questions:

@Bryan:
* What do you mean with a 'bitstream change' ?
* What is a 'address map', and how can I change it ?

@Ron:
* I would prefer to use 'Xillinux' for compiling the application and not 'PetaLinux', because - as mentioned in the link I gave - i can develop in the 'usual way' with cmake, gcc, and a operating system with a GUI. Is that possible, or do I _have_ to use 'PetaLinux' for building the binaries ?

Maybe I should note that my application will _not_ use the FPGA or other peripherials, its algorithms will run only on the ARM Cortex A9 CPU.

hockeyman1972's picture
hockeyman1972
Junior(11)
Sorry, in my original comment

Sorry, in my original comment I somehow missed the part about you wanting to build on the target.   Yes, you can develop on the target, no requirement for PetaLinux.  In fact, I would actually recommend you give the Pulsar Linux a look, as it not only allows this type of development, but it also has facilities to make it easier to upgrade your target platform (using the smart package manager) to get the environment you want on your final build.   If you were also to use a Cloud based toolchain for creating application sources, you could develop directly on the PicoZed and still have a nice SDK-type environment.  The Wind River Helix Application Cloud is worth checking out.  However, you can definitely go your own way if you prefer.  If you want to try Pulsar on the Zedboard, I'm told the MicroZed BSP will work, although I have not actually tried that myself.  You can find links to Pulsar images on this website.
If you do not load a bitstream, you can definitely simply use the hard-core Processor System just as you would any other standalone processor.  The address map Bryan refers to is the location of memory-mapped peripherals, which can be critical when you are using a custom bitstream.  However, the Zynq PS memory map is static, so no problem there.
Ron