...
- Transmit small buffers
- Transmit large buffers
- Receive large buffers
- Network Buffers (Network Buffer header and pointer to data area)
- DMA receive descriptors
- DMA transmit descriptors
- Interface data area
- Device driver data area
- OS objects (Semaphore, mutex, stack)
- ICMP Echo request objects (note that object are only allocated when the ICMP Echo request is sent, not at during the Network Protocol Stack initialization)
In the following example, the use of a Network Device Driver with DMA support is assumed. DMA descriptors are included in the analysis. The size of Network Buffer Data Areas (1, 2, 3) vary based on configuration. Refer to Chapter 9, “Buffer Management”. However, for this example, the following object sizes in bytes are assumed:
...
The value determined by these expressions is only an estimate. In some cases, it may be possible to reduce the size of the µC/LIB memory heap by inspecting µC/LIB (see see libdoc) after all interfaces have been successfully initialized and any additional application allocations (if applicable) have been completed.