Writing data on CF card using EDK 10.1 and xilfatfs

Hi there,

I'm making a kind of sniffer for a small network with very low traffic. I need to capture the traffic and store the packets in a permanent storage medium. At this time I'm using the ML403 board from Xilinx, EDK 10.1 and the xilfats library.

As a preliminary test, I'm sending controlled individuals packets, and the device receive the packet and save it in a file into the CF card. This works for a time but the application crash after some time.

With the xilfatfs library, I open a file, and at the reception of a packet I write the content and close the file. This step is repeated for every packet. I'm using a 64 K BRAM memory for the system. Using the defaults options for the linker script, the system hangs after receiving 15 packets (15 files). Increasing the stack size allows to handle more files but the system always hangs. Increasing too much the stack size is not a valid option, because in practice I need the system being able to handle large amount of data.

Also, saving more packets in a single file allows to manage more information. For example, in this case I can save a total of 60 KB of data instead of 15 KB with small files before the system hangs. But in any case, this is far for the limits imposed for the FAT16 file- system, which is used in the CF card.

In summary, I save the data in a temporal array which have fixed size, at the end I write the content of the array in a file and close the file. So, my question is: If I'm using a fixed amount of memory for the temporal data, and just one file open at any time, why the system go out of memory?

I'm new on the embedded applications and I don't manage all the concepts about memory maps, linkers, etc. So I'm generally using the default options from the tools. I don't know if I 'm doing something wrong or there are some conceptual misconceptions. But I have been reading and trying a lot of hours without success.

Any clue would be really appreciated.

Cheers!

Reply to
G. Carvajal
Loading thread data ...

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.