ioLibrary 100% 활용하기 (1)


ioLibray ?

ioLibrary는 WIZnet의 W5XXX(W5100,W5200,W5300,W5500) 기반의 통합 BSD socket Library를 제공한다.
칩별로 차이가 있는 Hardware dependent code들을 Driver로 분리하여 각각 구현되었고, 이를 이용하여 BSD Socket API를 구현함으로써, Webserver, FTP와 같은 Application Protocol을 구현함에 있어 Hardware적 제약 조건으로부터 자유로워질 수 있으며, Application의 최소한의 수정으로 쉽게 원하는 WIZnet Chip들로 Porting이 가능하다.

ioLibrary 특징

  • DRIVER 분리
    • Basic IO function
      1. WIZCHIP_READ and WIZCHIP_WRITE
      2. 모든 Register & Memory Access를 WIZCHIP_READ & WIZCHIP_WRITE로 통일
      3. Hardware dependent I/F code는 Callback Function으로 분리
      4. Driver 수정없이 callback function 등록만으로 바로 사용
    • Extra Function
      1. Optional : Omissble for code optimization
      2. User-freindly name : 같은 기능 다른 이름의 Register 들을 통일
  • SOCKET API
    • Berkeley Socket API와 유사
    • 네트워크 응용 개발 경험자들은 쉽게 ioLibrary 활용 가능
    • 모든 함수의 상황별 Error Code 지원
    • Blocked or Non-Blocked function 지원
    • Datagram Data 처리의 유연성 : 한 Packet을 원하는 크기로 나누어 수신 가능
  • APPLICATIION PROTOCOL
    • 더욱 풍부해지는 Standard application protocol
    • WIZnet Chip별로 각각 제공되는 Application protocol을 Chip에 관계없이 재사용 가능
  • User Application
    • Easy to migration
    • Easy to upgrade
    • Easy to Maintainment
  • The smallest resouces usage for TCP/IP stack
  • The highest performance at the same board

ioLibrary Version 3.0 Directory 구조

  • [ioLibrary]
    • [Ethernet]
      • wizchip_conf.h & wizchip_conf.c
      • socket.h & socket.c
      • [W5100]
        • w5100.h & w5100.c
      • [W5200]
        • W5200.h & W5200.c
      • [W5300]
        • w5300.h & w5300.c
      • [W5500]
        • w5500.h & w5500.c
    • [Internet]
      • [DHCP]
        • DHCP.h & DHCP.c
      • [DNS]
        • dns.h & dns.c
      • [FTPClient]
        • ftpc.h & ftpc.c
        • stdio_private.h
      • [FTPServer]
        • ftpd.h & ftpd.c
        • stdio_private.h
      • [httpServer]
        • httpParser.h & httpParser.c
        • httpServer.h & httpServer.c
        • httpUtil.h & httpUtil.c
      • [SNMP]
        • snmp.h & snmap.c
        • snmap_custom.h & smtp_custom.c
      • [SNTP]
        • sntp.h & sntp.c
      • [TFTP]
        • tftp.h & tftp.c
      • [Others Will be Added]

Download

[Download on GitHub]

How to Porting into your application

  • TODO
  • How to Register your call-back functions

Refer to My post - W5500 ioLibrary_BSD를 MCU 8051에 포팅하기(1)~(8)

목차

  1. W5500 ioLibrary_BSD를 MCU 8051로 포팅하기(1)
  2. W5500 ioLibrary_BSD를 MCU 8051로 포팅하기(2)
  3. W5500 ioLibrary_BSD를 MCU 8051로 포팅하기(3)
  4. W5500 ioLibrary_BSD를 MCU 8051로 포팅하기(4)
  5. W5500 ioLibrary_BSD를 MCU 8051로 포팅하기(5)
  6. W5500 ioLibrary_BSD를 MCU 8051로 포팅하기(6)
  7. W5500 ioLibrary_BSD를 MCU 8051로 포팅하기(7)
  8. W5500 ioLibrary_BSD를 MCU 8051로 포팅하기(8)

블로그 이미지

MidnightCow

위즈네트 칩(W5300, W5200, W7100, W7500) 개발자

,