LPC1768
- Max. CPU speed: 100 MHz
- Flash: 512 kB
- Total SRAM: 64 kB
IROM1 : 0x0000 0000 - 0x0008 0000 : 512 kB on-chip flash
IRAM1 : 0x1000 0000 - 0x1000 8000 : 32 kB local static RAM
IRAM2 : 0x2007 C000 - 0x2008 4000 : 32 kB AHB SRAM (2 blocks of 16 kB)
RAM usage = ZI-data + RW-data
Flash usage = Code + RO-data + RW-data
ZI-data - Zero initialized data, data variables set to 0
RW-data - Data variables that are different from 0
RO-data - Constants placed in flash
***Note: Check if data + heap + stack exceeds RAM limit... ? < 32 kB (0x8000)
***Note: That MicroLIB will remove the HEAP entirely...
MicroLIB is a library that is made for ARM-based embedded platforms, it uses less memory than the normal C library...
The Peripheral RAM blocks are used for Ethernet, USB, and DMA memory, as well as for general purpose CPU instruction and data storage.
***Note: For the LPC17xx, the Ethernet descriptors and buffers MUST be located only in peripheral RAM or external memory. For the LPC18xx/43xx, descriptors and buffers can be located anywhere.
Zero-copy describes computer operations in which the CPU does not perform the task of copying data from one memory area to another. This is frequently used to save CPU cycles and memory bandwidth when transmitting a file over a network.
Zero-Copy عملیاتی را توصیف میکند که CPU وظیفه انتقال داده از قسمتی از حافظه به قسمتی دیگر را ندارد. این ویژگی معمولاً برای صرفه جویی در تعداد پالسهای مورد نیاز پردازنده و همچنین صرفه جویی در پهنای باند گذرگاه حافظه در هنگام انتقال یک فایل از طریق شبکه، مورد استفاده قرار میگیرد.
The EMAC drivers uses zero-copy buffer support for both transmit and receive buffers. On systems with slow memory or non-DMA capable memory, the driver will automatically create a transmit pbuf and relocate the data to the new pbuf prior to transfer.
/* pbuf buffers in pool. In zero-copy mode, these buffers are
located in peripheral RAM. In copied mode, they are located in
internal IRAM */
#define PBUF_POOL_SIZE 7
Copied Mode: copy from Ethernet driver buffer to stack buffer...
یعنی صرف زمان، کاهش کارایی، کاهش سرعت...
...RX/TX Packet Buffers (PBUF) ↔ User-Space Buffers...
در حالت ارسال .... داریم!...در RAW Mode...
Zero-copy pbuf means that lwIP stack is not copying the user buffer to a pbuf and a REFERENCE to the user buffer is used instead of copying it.