...
In order for a device driver to be platform independent, it is necessary to provide a layer of code that abstracts details such as configuring clocks, interrupt controllers, general-purpose input/ouput (GPIO) pins, direct-memory access (DMA) modules, and other such hardware modules. The board support package (BSP) code layer enables you to implement certain high-level functionality in µCµC/TCP-IP that is independent of any specific hardware. It also allows you to reuse device drivers from various architectures and bus configurations without having to customize µCµC/TCP-IP or the device driver source code for each architecture or hardware platform.
...