This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

C6455 SRIO_LSU_Transfer传输的疑问

我们知道c6455的srio传输就是设置lsu的几个寄存器(以nwrite传输为例),这几个寄存器作用是:

寄存器0和1表示目的端MEMORY地址支持64BIT地址 

寄存器2表示传输端 MEMORY地址支持32BIT范围 
寄存器3表示一次传输的BYTE_COUNT,12个BIT表示一次传4KB数据,大于256B时物理层自动拆分 
寄存器4表示输出口、目标ID、是否产生中断 
寄存器5表示LSU传输的触发字,PACKET TYPE表示包类型 寄存器6状态寄存器,传输启动BUSY1,传输结束BUSY0
设置寄存器代码如下:
SRIO_REGS->LSU[n].LSU_REG0 = 0;
SRIO_REGS->LSU[n].LSU_REG1 = uiRemoteAddress;
SRIO_REGS->LSU[n].LSU_REG2 = uiLocalAddress;
SRIO_REGS->LSU[n].LSU_REG3 = byte_count;
SRIO_REGS->LSU[n].LSU_REG4 = (uiDestID << 8)|(uiIdSize << 24)|(outPortId << 30);
SRIO_REGS->LSU[n].LSU_REG5 = (packetType)|(hopCount << 8)|(doorbellInfo << 16);
由于reg0 reg1 reg2是代表源、目的memory地址,那么我们只能用相当于内存拷贝的方式(源地址的内容拷贝到目的地址)来传输数据了,假如我想把数据1,2,3,4......通 过srio由dsp传到fpga,是不是我首先需要把这些数据暂时先存入到dsp端指定地址处,然后再用内存拷贝方式进行srio传输?