The ioLibrary means “Internet Offload Library” for WIZnet chip. It includes drivers and application protocols. There are three kinds of libraries explained on this page The first two drivers (ioLibrary_BSD, ioLibrary) can be used for W5500 application designs. These will be updated continuously. The former BSD-Type driver will not be updated, as it is only meant to be a migration help from W5200 to W5500.
3. BSD Type driver for W5200 User
This driver provides the Berkeley Socket type APIs. The function names of this ioLibrary_BSD are the same as the function names of the ioLibrary.
< ioLibrary_BSD : latest version >
ioLibrary_BSD GitHub Repository
< ioLibrary_BSD : old version >
|Source code|| Ethernet |
(Berkeley Socket type APIs)
| Internet |
|Documents|| Socket APIs Help |
< Update History >
< Application code examples : latest version >
| STM32F103X |
CooCox CoIDE Project
| EnergyMicro |
| Loopback Test |
< Application code examples : old version >
| STM32F103X |
CooCox CoIDE Project
These projects do not contain [Ethernet] and [Internet] codes. (Empty directory)
Please download ioLibrary_BSD APIs and Application protocols,
and then insert to each of same named directory in provided project.
< History >
This driver provides BSD-type Socket APIs for W5500. Because the function names of this driver are more user-friendly than those of the older drivers, …, current WIZnet chip users can easily migrate from their WIZnet chip application to the W5500 application. All drivers for W5100, W5200 and W5300 will be merged into the ioLibrary in the near future. All application protocols will also be merged into ioLibrary based on this BSD-type Socket APIs.
This table shows the differences between other BSD drivers and new W5500 driver.
|Driver||Other BSD Drivers||W5500 Driver|
|Variables Type|| type.h (made by wiznet) |
| stdint.h (standard)
|Register Naming|| REGName + Index |
ex) SIPR0 , SIPR1, SIPR2, SIPR3
| REGName & WIZCHIP_OFFSET_INC
|Basic IO function|| IINCHIP_READ |
16bit Address Space
User should implement Functions
32bit Address Space
Since users implement MCU-dependent parts and then register them as Callback function, users don't need to implement the Function itself.
Supports IINCHIP_XXX function for backward compatiblity.
|Register Function||IINCHIP_XXX can be used. Supports some getREG() & setREG() functions.||
It is not recommended to use WIZCHIP_XXXX. Supports getREG() & setREG() functions or macros for all registers.
|Extra Functions||None||Optional and omissible Supports User-friendly named functions. All extra functions can be implemented by using setREG() & getREG().|
|Socket APIs||Other BSD Drivers||W5500 Driver|
|Return Value|| void |
Success or Fail
| Success or Fail
All functions return.
|Error Code||None|| SOCK_BUSY : 0
|IO Mode||Block & Non-Block Fixed||Block or Non-Block configurable|
|Block Function|| send |
|recvfrom||Should read data in received packet unit.||Can read data received packet separately.|
< ioLibrary with example project : latest version >
|Cookie board||Loopback test||1.0.2||-||Click|
< ioLibrary : latest version >
|Driver Source code||ioLibrary source code||1.0.2||-||Click|
< ioLibrary : old version >
|Driver Source code||ioLibrary source code||1.0.0||-||Click|
|Driver documents|| Socket APIs Help(chm, html) |
(To use html, open the index.html)
This ioLibrary has basic I/O functions, socket register access functions, common register access functions, utilities and functions for setting up a platform and network This code has been evaluated on the CooCox Cookie Board with ARM Cortex-M0 MCU.
Please refer to this link for more details.
The figure below shows the folder structure of this ioLibrary.
This driver has the same BSD as the API for W5200 users. We have been evaluating this code on the ARM-CortexM3(STM32F103 series) chipset.
This type of driver is the final version. We will not update it later. Please use the new (well coded ) driver code for new projects.