mongoose/examples/stm32/nucleo-f429zi-freertos-mip
2022-12-01 17:23:16 -03:00
..
cmsis Add nucleo-f429zi-freertos-mip example 2022-11-09 18:25:11 +00:00
FreeRTOSConfig.h Add nucleo-f429zi-freertos-mip example 2022-11-09 18:25:11 +00:00
link.ld Add nucleo-f429zi-freertos-mip example 2022-11-09 18:25:11 +00:00
main.c change MIP MAC to LAA 2022-11-15 14:56:51 -03:00
Makefile actually be able to flash target 2022-11-23 16:13:37 -03:00
mcu.h Add nucleo-f429zi-freertos-mip example 2022-11-09 18:25:11 +00:00
mongoose_custom.h Add nucleo-f429zi-freertos-mip example 2022-11-09 18:25:11 +00:00
README.md Add links to tool installation in MIP hw examples 2022-12-01 17:23:16 -03:00
startup.c Add nucleo-f429zi-freertos-mip example 2022-11-09 18:25:11 +00:00
syscalls.c Add nucleo-f429zi-freertos-mip example 2022-11-09 18:25:11 +00:00

MIP webserver over FreeRTOS on NUCLEO-F429ZI

This firmware uses MIP, an experimental TCP/IP stack of the Mongoose Network Library, running as a FreeRTOS task. It implements the following:

  • Minimal elementary web server, as simple as possible
  • Interrupt-driven Ethernet driver
  • Basic HAL header mcu.h based on CMSIS
  • Blue LED blinky, based on another FreeRTOS task
  • Debug log on UART3 (st-link)

Requirements

The Makefile defaults to using Docker for the compiler, so you don't actually need to install it if you are using a Linux/Mac workstation. If you are not, or you want to run your local ARM compiler, just append DOCKER= to the make commands depicted below to call the compiler directly; it must be in your executable path.

In any case, the links above will send you to tutorials on how to install each of those tools in your workstation for Linux, Mac, and Windows.

You'll also need git so the Makefile can clone the FreeRTOS-Kernel repository. We assume you have it since you got to get this repository somehow. If you don't, and don't want to install it, just get the proper FreeRTOS-Kernel version (see the Makefile) from its repository, as you did with the Mongoose repository.

Usage

Plugin your Nucleo board into USB, and attach an Ethernet cable. To build and flash:

$ make clean flash

To see debug log, use any serial monitor program like picocom at 115200 bps and configure it to insert carriage returns after line feeds:

$ picocom /dev/ttyACM0 -i -b 115200 --imap=lfcrlf

There is also a detailed tutorial on this example

For more details and benchmark data on MIP, check the F746ZG example