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.
Hi,
I am exploring the idea of writing data into L3 memory in DSS and reading the data from MSS (via Mailbox) and sending it over multiple frames using UART. It wouldn't work only if the L3 memory is refreshed (reset) every frame cycle; I went through both demo and MRR codes but could not find if the L3 memory used by DSS is refreshed (reset) at start of every frame. If it is, could you direct me to the relevant file and code? Also, if it is, is it possible to refresh it after multiple frames instead?
Additionally, from my understanding, MSS operate independently of DSS. More specifically, MSS can keep sending data from DSS L3 memory over multiple frame periods, while DSS performs its own operations. Is that correct?
Thank you
Hi,
What I understood that you are trying to write some data on L3 memory location and same location you are trying to read from MSS to send that data over UART.
In mmw demo of mmwave SDK it does the almost same thing but over HSRAM and using mailbox communication.
Do you want to reset the L3 memory content? you can do memset from DSS to set those memory region to zero at every frame interval.
Your understanding for MSS and DSS operation is correct.
Regards,
Jitendra
Hi Jitendra,
Thank you for replying. I'm trying to a little different that the implementation in mmw demo, and I've attached a timing diagram of my design. What I want to achieve is storing some data over the DSS processing time (frame quiet time) in L3. Since this time required to send this data via UART is significantly higher than the frame period, I want to send the data over multiple frame periods. Once it is sent (say over 5 frame periods), I'd refill processed data every 6th frame cycle.
From my analysis, the issues would arise if:
I went through both MRR and demo codes, but did not find any such mention.
Could you please let me know your thoughts about this implementation? Are there any potential issues, and how could I address them? Also, please let me know if something is still unclear.
Thank you
Arvind
As I understood, you are trying to make UART transfer (from MSS) parallel as DSP processing happens on DSS core.
W.r.t. to your concern
* L3 memory section will be overwritten by the DSS for storing next frame result (2/3D FFT). Due to that reason only in the given applications output results are copied to HSRAM so MSS can pickup from there to send over UART and it won't get overwritten by DSS.
* MSS UART transfer is independent of DSS, provided new data is copied to HSRAM and MSS is notified for that event over mailbox.
As per your note snapshot,if you use L3 memory to store result data for multiple frames then it may affect your memory requirement for processing chain.
I would suggest you to use HSRAM only to store the data (which you want to transfer over UART). Use HSRAM as circular buffer so DSS can store mutliple results at every next buffer location of HSRAM without waiting for 'MMWDEMO_MSS2DSS_DETOBJ_SHIPPED' event from MSS.
As HSRAM is 32KB, you can divide it to says 2KB each (assuming your result data size if 2KB generated at every frame); 16 blocks of 2KB each. Set a flag in each block from DSS to notify data status as new. On MSS as soon as it transfers the selected block it clears the status flag of that block and move to next block; and transfers that data if flag says it is new.
This way MSS copies data independently of DSS processing chain and on DSS end it doesn't need to wait for last result data to go out (at least till 16th block result now).
Regards,
Jitendra