Hello everyone, let me first share with you the situation of my project:
1. I use IMX6ULL and FPGA for communication(NO_SYS,SDK 2.2 for windows), which includes two parts: control instructions (bidirectional receiving and sending) and a large amount of data (only receiving, with a rate requirement of approximately 5MB/s), as shown in the following figure,
Levear_0-1697265077762.png
My colleague's design is an EIM interface to implement this function,0x50000000--0x50000018 with a total of 9 addresses for instruction transmission
0x50000020 address receives a large amount of data (SDMA Burst)
As I am just starting this field of work, I would like to ask if this design is reasonable and if there is a better design?
2. The communication method for a large amount of data between FPGA and 6uLL is:
(1) The FPGA keeps writing data to the FIFO, and when the FIFO is half full, an interrupt is generated to 6uLL
(2) After receiving the interrupt signal, 6ULL uses SDMA to read FIFO data to ensure that FIFO is not satisfied and data is not lost.
The current situation is
(1) If EIM is configured as asynchronous read and write, a maximum of 20 bytes can be received per 6ull interrupt.
(2) If EIM is configured to read synchronously, write synchronously, and cannot read data at 6ull, the program will get stuck waiting for SDMA's transferdone signal.
3. My program uses SDMA to read data, and the transmission method should be set to fixed source address and incremented target address. The corresponding method was not found in SDK2.2.
Can you provide some suggestions for those who have worked on related projects? Thank you