From 61b9820f7812314e75d965e914821ca37db26340 Mon Sep 17 00:00:00 2001 From: cpq Date: Thu, 9 Feb 2023 20:04:07 +0000 Subject: [PATCH] Update READMEs --- .../stm32/nucleo-f746zg-baremetal/README.md | 68 +------------------ .../nucleo-f746zg-freertos-mip/README.md | 41 +---------- .../stm32/nucleo-f746zg-usb-rndis/README.md | 3 + 3 files changed, 7 insertions(+), 105 deletions(-) create mode 100644 examples/stm32/nucleo-f746zg-usb-rndis/README.md diff --git a/examples/stm32/nucleo-f746zg-baremetal/README.md b/examples/stm32/nucleo-f746zg-baremetal/README.md index 6158fde0..6ea1a30c 100644 --- a/examples/stm32/nucleo-f746zg-baremetal/README.md +++ b/examples/stm32/nucleo-f746zg-baremetal/README.md @@ -1,67 +1,3 @@ -# Baremetal webserver on NUCLEO-F746ZG - -This firmware uses MIP, an experimental TCP/IP stack of the Mongoose Network Library, -which implements the following: - -- A complete [HTTP device dashboard](../../device-dashboard) with: - - User authentication - - Real-time device data graph - - Coninfiguration display and update - - MQTT communication with a remote MQTT server -- Implements SNTP time synchronisation -- No dependencies: no HAL, no CMSIS, no RTOS -- Hand-written [mcu.h](mcu.h) header based on the [datasheet](https://www.st.com/resource/en/reference_manual/rm0385-stm32f75xxx-and-stm32f74xxx-advanced-armbased-32bit-mcus-stmicroelectronics.pdf) -- Interrupt-driven [Ethernet driver](../../../mip/driver_stm32.c) -- Blue LED blinky, based on SysTick interrupt -- User button handler, turns off/on green LED, based on EXTI, interrupt-driven -- HardFault handler that blinks red LED -- Debug log on UART3 (st-link) - -## Requirements - -- [GNU make](http://mongoose.ws/tutorials/tools/#gnu-make) -- [ARM GCC](http://mongoose.ws/tutorials/tools/#arm-gcc) -- [stlink](http://mongoose.ws/tutorials/tools/#stlink) for flashing - -The links above will send you to tutorials on how to install each of those tools in your workstation for Linux, Mac, and Windows. - -## Usage - -Plugin your Nucleo board into USB, and attach an Ethernet cable. -To build and flash: - -```sh -$ 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: - -```sh -$ picocom /dev/ttyACM0 -i -b 115200 --imap=lfcrlf -``` - -There is also a [detailed tutorial on this example](https://mongoose.ws/tutorials/stm32/nucleo-f746zg-baremetal/) - -## Benchmark - -A quick comparison is made with several other implementations. -Note: `IP` in the table below is the IP address printed on the console after -boot. The benchmark command is the same: `siege -c 5 -t 5s http://IP` - -| | Zephyr | LWIP sockets | LWIP raw | MIP | -| ------------------- | -------- | ------------ | -------- | ---- | -| Requests per second | 3 | 16 | 286 | 1080 | -| Firmware size | 117k (*) | 160k | 114k | 28k | - -- Zephyr: uses Zehypr's RTOS and TCP stack, with Mongoose library on top, - [source code](https://github.com/cesanta/mongoose/tree/master/examples/zephyr/http-server). - (*) By default, Zephyr example is TLS-enabled. To compare sizes, a TLS-disabled - build was done by disabling TLS in `prj.conf` and `CMakeLists.txt` -- LWIP sockets: uses FreeRTOS and LWIP with sockets support, with Mongoose - library on top, [source code](https://github.com/mongoose-examples/stm32-nucleo-f746z). - built with `#define MG` in `Core/main.c` -- LWIP raw: uses FreeRTOS and LWIP without sockets, LWIP's httpd server, - [source code](https://github.com/mongoose-examples/stm32-nucleo-f746z). - built with `#define MG` line commented out in `Core/main.c` -- MIP: this repository +# Baremetal web device dashboard on NUCLEO-F746ZG +See https://mongoose.ws/tutorials/stm32/nucleo-f746zg-baremetal/ diff --git a/examples/stm32/nucleo-f746zg-freertos-mip/README.md b/examples/stm32/nucleo-f746zg-freertos-mip/README.md index b1938aae..c438f479 100644 --- a/examples/stm32/nucleo-f746zg-freertos-mip/README.md +++ b/examples/stm32/nucleo-f746zg-freertos-mip/README.md @@ -1,40 +1,3 @@ -# MIP webserver over FreeRTOS on NUCLEO-F746ZG +# FreeRTOS Web device dashboard 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](mcu.h) header based on the [datasheet](https://www.st.com/resource/en/reference_manual/rm0385-stm32f75xxx-and-stm32f74xxx-advanced-armbased-32bit-mcus-stmicroelectronics.pdf) -- Interrupt-driven [Ethernet driver](../../../drivers/driver_stm32.c) -- Blue LED blinky, based on another FreeRTOS task -- Debug log on UART3 (st-link) - -## Requirements - -- [GNU make](http://mongoose.ws/tutorials/tools/#gnu-make) -- [ARM GCC](http://mongoose.ws/tutorials/tools/#arm-gcc) -- [stlink](http://mongoose.ws/tutorials/tools/#stlink) for flashing - -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](https://github.com/FreeRTOS/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: - -```sh -$ 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: - -```sh -$ picocom /dev/ttyACM0 -i -b 115200 --imap=lfcrlf -``` - -There is also a [detailed tutorial on this example](http://mongoose.ws/tutorials/stm32/nucleo-f746zg-freertos-mip/) - -For more details and benchmark data on MIP, check the [baremetal example](../nucleo-f746zg-baremetal/) +See https://mongoose.ws/tutorials/stm32/nucleo-f746zg-freertos-mip/ diff --git a/examples/stm32/nucleo-f746zg-usb-rndis/README.md b/examples/stm32/nucleo-f746zg-usb-rndis/README.md new file mode 100644 index 00000000..1f437d6c --- /dev/null +++ b/examples/stm32/nucleo-f746zg-usb-rndis/README.md @@ -0,0 +1,3 @@ +# USB RNDIS Web device dashboard on NUCLEO-F746ZG + +See https://mongoose.ws/tutorials/stm32/nucleo-f746zg-usb-rndis/