Data mover for scope#

Please refer first to the description of the RPU code.

graph LR subgraph Transfer_ipc_Intr_Handler E(IPI from R5) E-->F(Flush Cache) F-->G(Copy javascope_data) end subgraph Queue G-->H H(FIFO) end subgraph process_request_thread H-.waits.->K(restructure data)-->L(ethernet frame) L-->M(lwip_write) end

Fig. 54 Signal flow of data mover#

Shared header file#

Please refer to description of the shared header file on more information about javascope_data_t.

Modification on A53#

in isr.c

#include "xil_cache.h"
#include "APU_RPU_shared.h"
// create pointer of type struct javascope_data_t named javascope_data located at MEM_SHARED_START
static struct javascope_data_t volatile * const javascope_data = (struct javascope_data_t*)MEM_SHARED_START;

void Transfer_ipc_Intr_Handler(void *data){
  // flush data cache to make sure shared memory is updated
  Xil_DCacheFlushRange(MEM_SHARED_START, JAVASCOPE_DATA_SIZE_2POW);
  // copy JAVASCOPE_DATA into queue to ethernet thread
  xQueueSendToBackFromISR(OsziData_queue, JAVASCOPE_DATA, &xHigherPriorityTaskWoken);
}

Known issues#

See also#