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