mirror of
https://github.com/cesanta/mongoose.git
synced 2025-01-14 09:48:01 +08:00
Update READMEs
This commit is contained in:
parent
a383a45269
commit
61b9820f78
@ -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/
|
||||
|
@ -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/
|
||||
|
3
examples/stm32/nucleo-f746zg-usb-rndis/README.md
Normal file
3
examples/stm32/nucleo-f746zg-usb-rndis/README.md
Normal file
@ -0,0 +1,3 @@
|
||||
# USB RNDIS Web device dashboard on NUCLEO-F746ZG
|
||||
|
||||
See https://mongoose.ws/tutorials/stm32/nucleo-f746zg-usb-rndis/
|
Loading…
x
Reference in New Issue
Block a user