I am working with the FreeRTOS+TCP and FreeRTOS+FAT on a Zynq platform, and when the size file is above 500 Kbytes the file stored into the RAM disk is corrupted.
If the received bytes are stored in a static local buffer that I have created to test, and then they are checked the data are right. In fact, if I create a file to write all this buffer, and after closing this file, I open it again and I read it, the data are right. But if I write the data as they are received (from my local buffer into a file), when the transmission finishes, the checking fails.
I have done a lot of tests during the last weeks, but I don´t find what happens. Any information will be appreciated.
I use SDK2019.1, FreeRTOS+TCP from FreeRTOSv202012.00-LTS (with BufferAllocation_1.c), IP protocols from FreeRTOSv202012.00 and FreeRTOS+FAT from FreeRTOS-Plus-FAT-191108a-MIT.
Other settings that I have used are:
#define ipconfigNUM_NETWORK_BUFFER_DESCRIPTORS 96
#define ipconfigNETWORK_MTU 1500
#define ipconfigFTP_TX_BUFSIZE ( 256 * 1024 )
#define ipconfigFTP_TX_WINSIZE ( 8 )
#define ipconfigFTP_RX_BUFSIZE ( ( 256 * 1024 ) - 1 )
#define ipconfigFTP_RX_WINSIZE ( 12 )
#define niBUFFER_1_PACKET_SIZE 1536