|
|
@ -65,5 +65,36 @@ void SonoDevice::copy(int srcIndex, int dstIndex) |
|
|
|
|
|
|
|
const char* SonoDevice::getBufferPtr(int index) |
|
|
|
{ |
|
|
|
return _buffers[index]; |
|
|
|
return _buffers[index]; |
|
|
|
} |
|
|
|
|
|
|
|
QList<quint64> SonoDevice::readDmaAddr() |
|
|
|
{ |
|
|
|
quint64 bigEndianDmaAddr(0); |
|
|
|
QList<quint64> addrStack; |
|
|
|
|
|
|
|
for(quint8 idx = 0; idx < HW_BUFFER_NUM; idx++) |
|
|
|
{ |
|
|
|
quint64 upperAddr = device.readWord(BAR_BRAM, (DMA_UPPER_ADDR_ORIGIN + 8 * idx)); |
|
|
|
quint64 lowerAddr = device.readWord(BAR_BRAM, (DMA_LOWER_ADDR_ORIGIN + 8 * idx)); |
|
|
|
bigEndianDmaAddr = (upperAddr << 32) + lowerAddr & 0xFFFFFFFF; |
|
|
|
addrStack.append(bigEndianDmaAddr); |
|
|
|
} |
|
|
|
|
|
|
|
return addrStack; |
|
|
|
} |
|
|
|
|
|
|
|
void SonoDevice::writeDmaAddr(QList<quint64> addr) |
|
|
|
{ |
|
|
|
quint32 upperAddr; |
|
|
|
quint32 lowerAddr; |
|
|
|
|
|
|
|
for(quint8 idx = 0; idx < HW_BUFFER_NUM; idx++) |
|
|
|
{ |
|
|
|
upperAddr = addr.at(idx) >> 32; |
|
|
|
lowerAddr = addr.at(idx) & 0xFFFFFFFF; |
|
|
|
|
|
|
|
device.writeWord(BAR_BRAM, (DMA_UPPER_ADDR_ORIGIN + 8 * idx), upperAddr); |
|
|
|
device.writeWord(BAR_BRAM, (DMA_LOWER_ADDR_ORIGIN + 8 * idx), lowerAddr); |
|
|
|
} |
|
|
|
} |
|
|
|