Update Remote Procedure Call authored by jesseg64's avatar jesseg64
The communication between the two cores is managed using a Remote Procedure Call (RPC) framework. This framework designates the main core as the client and the other cores as servers, making it ideal for Asymmetric Multiprocessing (AMP) applications like CyDAQ. The server remains in a "busy-wait" state, ready to be interrupted by a CPU interrupt to handle any incoming commands. Our implementation of this framework builds on existing frameworks and libraries. We use openAMP to manage the setup of RPMsg (Remote Protocol Messaging) and to configure remoteproc (remote processors). This API is chosen for its compatibility with both Linux and bare-metal environments. It employs VirtIO Media Access Control to facilitate the primary communication channel between the two cores via shared memory.
Here are some links to pages we would recommend:
Here are some links to pages we would recommend reading for an in-depth understanding:
- https://openamp.readthedocs.io/en/latest/protocol_details/asymmetric_mp.html
- https://digilent.com/shop/zybo-z7-zynq-7000-arm-fpga-soc-development-board/?srsltid=AfmBOoq8brIDJFF60fSDJ60ZQ2oY3zIEItWX5_pe8OOn96tjDG4svwk2
......
......