cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
javierperez
Visitor
Visitor
6,884 Views
Registered: ‎07-30-2017

Zynq 7000 Bare-Metal System Running on Both Cortex-A9 Processors

Jump to solution

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

1 Solution

Accepted Solutions
hbucher
Scholar
Scholar
9,703 Views
Registered: ‎03-22-2016

@javierperez

You need to uncheck "Reset Processor" on the 2nd one. 

When it resets it does both.

vitorian.com --- We do this for fun. Always give kudos. Accept as solution if your question was answered.
I will not answer to personal messages - use the forums instead.

View solution in original post

13 Replies
hbucher
Scholar
Scholar
6,864 Views
Registered: ‎03-22-2016

@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.

 

vitorian.com --- We do this for fun. Always give kudos. Accept as solution if your question was answered.
I will not answer to personal messages - use the forums instead.
javierperez
Visitor
Visitor
6,856 Views
Registered: ‎07-30-2017
Yes i select both on the run properties but only the core 1 app run, i dont know how to make that link script im new in soc applications and its really dificult to find information. Can you help me. thanks
hbucher
Scholar
Scholar
6,855 Views
Registered: ‎03-22-2016

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).

 

 

 

vitorian.com --- We do this for fun. Always give kudos. Accept as solution if your question was answered.
I will not answer to personal messages - use the forums instead.
2cores.PNG
javierperez
Visitor
Visitor
6,764 Views
Registered: ‎07-30-2017

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

1.png
2.png
3.png
4.png
0 Kudos
Reply
hbucher
Scholar
Scholar
9,704 Views
Registered: ‎03-22-2016

@javierperez

You need to uncheck "Reset Processor" on the 2nd one. 

When it resets it does both.

vitorian.com --- We do this for fun. Always give kudos. Accept as solution if your question was answered.
I will not answer to personal messages - use the forums instead.

View solution in original post

javierperez
Visitor
Visitor
6,726 Views
Registered: ‎07-30-2017

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

0 Kudos
Reply
javierperez
Visitor
Visitor
6,714 Views
Registered: ‎07-30-2017

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

hbucher
Scholar
Scholar
6,658 Views
Registered: ‎03-22-2016

@javierperez  

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)

 

vitorian.com --- We do this for fun. Always give kudos. Accept as solution if your question was answered.
I will not answer to personal messages - use the forums instead.
core1.PNG
core2.PNG
0 Kudos
Reply
hbucher
Scholar
Scholar
6,655 Views
Registered: ‎03-22-2016

@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.

vitorian.com --- We do this for fun. Always give kudos. Accept as solution if your question was answered.
I will not answer to personal messages - use the forums instead.
0 Kudos
Reply
hbucher
Scholar
Scholar
5,119 Views
Registered: ‎03-22-2016

@javierperez

 

Video/tutorial - running two baremetal apps in each core on Zynq

http://www.vitorian.com/x1/archives/587

 

vitorian.com --- We do this for fun. Always give kudos. Accept as solution if your question was answered.
I will not answer to personal messages - use the forums instead.
javierperez
Visitor
Visitor
5,097 Views
Registered: ‎07-30-2017

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

0 Kudos
Reply
helena
Visitor
Visitor
4,364 Views
Registered: ‎02-08-2018

@hbucher

 

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.

0 Kudos
Reply
hbucher
Scholar
Scholar
4,355 Views
Registered: ‎03-22-2016

@helena yes it will work. 

Open a new post with your question and the community will sure help you.

vitorian.com --- We do this for fun. Always give kudos. Accept as solution if your question was answered.
I will not answer to personal messages - use the forums instead.
0 Kudos
Reply