Hi, I have done with freertos on zynq 7k core0 . Now I want to to use it on a Zynq board, so with a dual core ARM, building an AMP system with One FreeRTOS instances on core0 and Bare-metal on core1 at the same time. From Xilinx notes, I saw that for bare metal applications the standard way to synchronize two cores is using polling on some shared variables in the OCM,. Is it possible to building an AMP system with One FreeRTOS instances on core0 and Bare-metal on core1, and how to do it on zynq 7k soc ?
It certainly is possible - but if you think of a FreeRTOS application as a bare metal application that happens to be using a multithreading library (i.e. FreeRTOS) then your question becomes how do you run two (or more) bare metal applications at once - one application per core - rather than anything FreeRTOS specific. Whichever core boots first will have to load the application into to the second (or however many cores) then release that core from reset. I have done that on a number of different processors, but not on the Zynq I’m afraid. Looking at some of Xilinx’s OpenAMP examples may help - they run FreeRTOS on one core and Linux on the other.
Thanks for your answer! Maybe I don’t make it clear that i want to run freertos on core0 to schedule all application and run bare-metal on core1 to run communication application , and swap data between two core . So can i port freertos on core0 myself and bare-metal on core1 , two core run like two bare-metal amp core?