This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

memory allocation of TCP-stack

Hello all,

I'm using the MDK-ARM 3.11 and RTL-ARM 3.10 in combination with a MCB2300 Demo board. As a part of my application I want to transfer some files from the embedded board to a computer. Therefore I have written embedded client that sends a file blockwise through tcp to the computer.

The client is working but I have a problem with the error handling. To save the extra memory for a buffer and to avoid unnecessary memory copying I allocate a buffer with the correct blocksize from the TCPnet buffer and directly read the next fileblock into this buffer. It's working great.

But I have a problem in the case of an error on reading from the file. In this situation I dont send the already allocated buffer, because the data is invalid. As a result I'm unable to release this memory again. I tried to close and release the socket but this doesn't seem release the already allocated memory. After some errors I always get a "out of memory" error from the TCPnet.

1.Does the tcp_release_socket function automatically release TCPnet memory that was already allocated but not send yet?

2.How can I release memory from TCPnet, that I allocated before, without sending it?

Thanks in advance for your replies.

Rainer

0