07-30-2017 09:32 AM
Hi, I´m ussing zybo a digilent Zynq development board for my PhD, i´m tryin to run two standalone program in each arm core. There is an example for this application in XAPP1079, but i don´t have the stadalone_AMP option in SDK. I don´t now if this is only for olders version or i need to install it. Anyone nows how can i fix this problem or another way to run this two programsclose in the two cores
07-31-2017 08:21 AM
You need to uncheck "Reset Processor" on the 2nd one.
When it resets it does both.
07-30-2017 12:08 PM
@javierperez Hello Javier
PhD and Zybo user here too!
There is no standalone_amp option in Vivado/SDK, I can assure you that.
You just select standalone/core0 and standalone/core1 for each of the binaries.
Be careful with your link script so you dont overlap memory locations.
Hope that helps.
07-30-2017 12:38 PM
07-30-2017 12:45 PM - edited 07-30-2017 12:45 PM
In the SDK go Run/Run Configurations...
Select "System Debugger using ...."
Then in the tab "Aplication" you can choose what ELF to run on each core.
Then Click "Run"
Once you are done with testing, you can then create a BIN file to place on your SD card or burn into the QSPI (or equivalent).
07-31-2017 02:26 AM
I made a simple example with two programs one for the cpu0 with a 0.5sec blinking leds and for the cpu1 an empty while loop, when i select both programs on the run cofigurations only the last cpu1 runs the blinking one doesnt work, and if i change the order the leds starts to blink. I take some pictures of the procces maybe im doing something wrong thanks again fr your help, i really appreciate that
07-31-2017 08:21 AM
You need to uncheck "Reset Processor" on the 2nd one.
When it resets it does both.
07-31-2017 08:56 AM
Sorry i uncheck "Reset Processor" on the 2nd core, but i get the same results. You know if there is some example code that i can test to start with. Thanks
07-31-2017 10:37 AM
Finally i find the last error, thanks for all your help, the only thing i should do is change the base addres in the lscript.ld file. I was writing both programs at the same spot in the memory, i select the default value for the cpu0 0x100000, and give same space for the cpu1 0x200000, and thats all. It finally works, thanks is really difficult find goods resources. I think i should do a tutorial for begginers when i end this project. Thanks again
07-31-2017 07:49 PM
I just ran two hello worlds printing "Hello World 1" and "Hello World 2" every second - I am sure it works.
One thing very important: make sure the two program sections dont overlap in memory
So edit your link script such that ps7_ddr_0_S_AXI_BASEADDR (where all programs go by default) have different addresses (see pics below)
07-31-2017 08:05 PM
@javierperez Oh I responded and I haven't seen your last comment. Well glad you worked out the solution.
It is a great feeling to get things running isnt it? Very happy.
07-31-2017 09:25 PM
Video/tutorial - running two baremetal apps in each core on Zynq
http://www.vitorian.com/x1/archives/587
08-01-2017 09:39 AM
Yes this little thing make me really happy, its so great to get things running in the good way. Thanks also for the video im sure that im not the only one with this problem, and you are going to help more people at the community. Keep working hard in you PhD and i wish you luck. Thanks again from spain
02-08-2018 07:59 AM
Would this work if you needed inter-processor communication? What would be necessary to achieve that?
I'm a master's student currently working on my thesis and I've never used any Xilinx tool besides a few tutorials now so I'm a little overwhelmed.
02-08-2018 08:22 AM
@helena yes it will work.
Open a new post with your question and the community will sure help you.