mongoose/examples/stm32/nucleo-f746zg-freertos-mip
2022-11-25 16:57:35 -03:00
..
boot.c Add FreeRTOS + MIP example on F746 2022-11-25 16:57:35 -03:00
FreeRTOSConfig.h Add FreeRTOS + MIP example on F746 2022-11-25 16:57:35 -03:00
link.ld Add FreeRTOS + MIP example on F746 2022-11-25 16:57:35 -03:00
main.c Add FreeRTOS + MIP example on F746 2022-11-25 16:57:35 -03:00
Makefile Add FreeRTOS + MIP example on F746 2022-11-25 16:57:35 -03:00
mcu.h Add FreeRTOS + MIP example on F746 2022-11-25 16:57:35 -03:00
mongoose_custom.h Add FreeRTOS + MIP example on F746 2022-11-25 16:57:35 -03:00
README.md Add FreeRTOS + MIP example on F746 2022-11-25 16:57:35 -03:00
syscalls.c Add FreeRTOS + MIP example on F746 2022-11-25 16:57:35 -03:00

MIP webserver over FreeRTOS on NUCLEO-F746ZG

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
  • No dependencies: no HAL, no CMSIS
  • Hand-written mcu.h header based on the datasheet
  • Interrupt-driven Ethernet driver
  • 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 baremetal example