Supported hardware
As described in the Build Options guide, Mongoose is configured via the mongoose_config.h file.
One of the most important settings is the platform selection, which determines the target environment Mongoose runs on.
Build environments
The build environment is driven by the MG_ARCH setting in the mongoose_config.h configuration file.
For example, in order to build in STM32 Cube framework, set this in your mongoose_config.h:
#define MG_ARCH MG_ARCH_CUBE // Build in STM32 Cube
// ... other build options ...
Below is the list of supported build environments
| MG_ARCH_* | Platform / notes |
|---|---|
| MG_ARCH_CUSTOM | Custom user-defined platform (via mongoose_config.h) |
| MG_ARCH_UNIX | Unix-like systems (Linux, BSD, macOS, POSIX) |
| MG_ARCH_WIN32 | Microsoft Windows |
| MG_ARCH_ESP32 | Espressif ESP32 |
| MG_ARCH_ESP8266 | Espressif ESP8266 |
| MG_ARCH_FREERTOS | FreeRTOS-based systems |
| MG_ARCH_THREADX | ThreadX RTOS (Azure RTOS) |
| MG_ARCH_ZEPHYR | Zephyr RTOS |
| MG_ARCH_ARMGCC | Bare-metal ARM (GCC toolchain) |
| MG_ARCH_ARMCC | Arm Compiler / Keil MDK |
| MG_ARCH_CMSIS_RTOS1 | CMSIS-RTOS v1 (RTX, Keil) |
| MG_ARCH_CMSIS_RTOS2 | CMSIS-RTOS v2 (RTX5, CMSIS wrapper) |
| MG_ARCH_CUBE | STM32Cube environment (HAL-based projects) |
| MG_ARCH_TIRTOS | Texas Instruments TI-RTOS |
| MG_ARCH_ARMCGT | TI ARM Code Generation Tools |
| MG_ARCH_RTTHREAD | RT-Thread RTOS |
| MG_ARCH_PICOSDK | Raspberry Pi Pico SDK (RP2040, RP2350) |
| MG_ARCH_NEWLIB | Alias of ARM GCC (deprecated compatibility define) |
Network drivers
When a built-in TCP/IP stack is enabled in Mongoose, it requires a network driver.
This is a typical snippet from mongoose_config.h that enables built-in TCP/IP
for STM32 H7 series:
#define MG_ENABLE_TCPIP 1
#define MG_ENABLE_DRIVER_STM32H 1
// .... other build options ...
Below is the list of all supported drivers
| Build constant | Platform |
|---|---|
| MG_ENABLE_DRIVER_CMSIS | CMSIS-Driver Ethernet - generic ARM CMSIS-Driver MAC/PHY backend |
| MG_ENABLE_DRIVER_CYW | Infineon Cypress CYW Wi-Fi - SPI-connected CYW wireless chips |
| MG_ENABLE_DRIVER_CYW_SDIO | Infineon Cypress CYW Wi-Fi - SDIO-connected CYW wireless chips |
| MG_ENABLE_DRIVER_IMXRT10 | NXP i.MX RT10xx - on-chip Ethernet MAC driver |
| MG_ENABLE_DRIVER_IMXRT11 | NXP i.MX RT11xx - on-chip Ethernet MAC driver |
| MG_ENABLE_DRIVER_MCXE | NXP MCX E series - on-chip Ethernet driver |
| MG_ENABLE_DRIVER_MCXN | NXP MCX N series - on-chip Ethernet driver |
| MG_ENABLE_DRIVER_NXP_WIFI | NXP Wi-Fi driver - wireless backend for supported NXP Wi-Fi platforms |
| MG_ENABLE_DRIVER_PICO_W | Raspberry Pi Pico W - CYW43 Wi-Fi via Pico SDK |
| MG_ENABLE_DRIVER_RA6 | Renesas RA6 series - on-chip Ethernet MAC driver |
| MG_ENABLE_DRIVER_RA8 | Renesas RA8 series - on-chip Ethernet MAC driver |
| MG_ENABLE_DRIVER_RW612 | NXP RW612 - integrated wireless networking driver |
| MG_ENABLE_DRIVER_SAME54 | Microchip SAM E54 - on-chip Ethernet MAC driver |
| MG_ENABLE_DRIVER_ST67W6 | STMicroelectronics ST67W6 - wireless networking driver |
| MG_ENABLE_DRIVER_STM32F | STM32F1/F2/F4/F7 families - STM32 Ethernet MAC driver |
| MG_ENABLE_DRIVER_STM32H | STM32H5/H7 families - STM32 Ethernet MAC driver |
| MG_ENABLE_DRIVER_STM32N | STM32N6 family - STM32 Ethernet MAC driver |
| MG_ENABLE_DRIVER_TM4C | Texas Instruments TM4C - on-chip Ethernet MAC driver |
| MG_ENABLE_DRIVER_TMS570 | Texas Instruments TMS570 - on-chip Ethernet MAC driver |
| MG_ENABLE_DRIVER_XMC | Infineon XMC - on-chip Ethernet MAC driver |
| MG_ENABLE_DRIVER_XMC7 | Infineon XMC7000 family - on-chip Ethernet MAC driver |