---
title: "w5500-lwip-freertos"
url: "https://maker.wiznet.io/lawrence/projects/w5500-lwip-freertos/"
markdown_url: "https://maker.wiznet.io/lawrence/projects/w5500-lwip-freertos/md"
type: "UCC: User Created Content"
author: "Peter"
author_url: "https://github.com/PeterBorisenko/w5500-lwip-freertos"
editor: "WIZnet"
editor_url: "https://maker.wiznet.io/"
original_author: "Peter"
original_url: "https://github.com/PeterBorisenko/w5500-lwip-freertos"
published: "2023-10-06"
language: "en"
likes: 0
views: 908
comments: 0
source: "WIZnet Makers (https://maker.wiznet.io/)"
---

# w5500-lwip-freertos

> w5500-lwip-freertos

Original author: Peter (source: https://github.com/PeterBorisenko/w5500-lwip-freertos)

## Article

## [W5500 LwIp binding](https://github.com/PeterBorisenko/w5500-lwip-freertos#w5500-lwip-binding)

W5500 is used in MAC RAW mode. Hardware address filtering is switched off (this important if you are intended to use it as one of bridge interfaces) Interrupts are used only for RECV signal. Uses FreeRTOS. Tested with STM32.

## [How to use](https://github.com/PeterBorisenko/w5500-lwip-freertos#how-to-use)

1. Patch your LwIp tree with files from `external_libs/lwip/port/FreeRTOS` folder

2. Implement your low level init (SPI, GPIO, NVIC, clocks, etc.) and low level IO functions in `device/wizchip/wizchip_port.c`

3. Check interrupt handler example in `app/interrupts.c`. Change in accordance with your platform and GPIO setup (i.e. external interrupt number and so on)

4. Call `lwipInit()` in your main function.

---

Source: https://maker.wiznet.io/lawrence/projects/w5500-lwip-freertos/
