Hello
We use CPU to access the DSP through the PCIE.The driver code is generated by Windriver 10.20.And we set 2 BAR:BAR0 and BAR1,the size of BAR1 is 32MB.there is several address spaces: core0-core7 L2 SRAM, MSMC,DDR,device registers.
The access code is like that:
temp = space base addr;
WriteDword(m_hPD, BAR0, IB_OFFSET0,temp); //write new base addr to IB_OFFSET
for(i=0;i<num_words;i++)
WriteDword(m_hPD,BAR1, offset+i*4, *(data+i); //write data stream to BAR1 memory
But then we change the addr space frequently,we found that some error will happen in large acount of datas.If we change inbound map each dword of data,there will be about 100 errors in 1MB data. Then we insert a delay between writing IB_OFFSET and writing datas to memory,the error disappers.
So can you tell us why it happens?Does DSP need some time to finish the Inbound map configuration?Do we have other way to solve this?If we must delay,then how much time is appropriate?
Looking forward to your reply,thank you