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#