Build tools
The following instructions guide on setting up a development environment for building and running Mongoose Library examples, as well as developing new applications. The required tools are:
- Git, https://git-scm.com/ - for downloading source code and version control
- GCC / MinGW compiler - for compiling desktop / server programs
- GNU make, http://www.gnu.org/software/make/ - for build automation
If you are going to build for embedded systems, extra tools are required:
- for ARM embedded systems ARM GCC, https://developer.arm.com/Tools%20and%20Software/GNU%20Toolchain
- pick the right one for your platform and environment: hosted cross toolchain for the AArch-32 architecture on bare metal:
arm-none-eabi
- pick the right one for your platform and environment: hosted cross toolchain for the AArch-32 architecture on bare metal:
- for RISCV embedded systems RISCV GCC,https://github.com/riscv-collab/riscv-gnu-toolchain
- for RP2040 and RP2350 devices CMake, https://cmake.org - for building
- for STM32 devices STM32CubeProgrammer, https://www.st.com/en/development-tools/stm32cubeprog.html - for flashing
- Alternatively, you may wish to use stlink, https://github.com/stlink-org/stlink
- for NXP devices LinkServer (also included with MCUXpresso) - for flashing
- for TI devices Uniflash, https://www.ti.com/tool/UNIFLASH - for flashing
MacOS setup instructions
Start a terminal, and execute:
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
brew install gcc make git gcc-arm-embedded stlink cmake uniflash riscv-tools
- for STM32 devices Download and install STM32CubeProgrammer, or rely on stlink, installed above
Linux setup instructions
Assuming Ubuntu Linux. Start a terminal, and execute:
sudo apt -y update
sudo apt -y install build-essential make gcc-arm-none-eabi stlink-tools git cmake gcc-riscv64-unknown-elf
- for STM32 devices Download and install STM32CubeProgrammer, or rely on stlink, installed above
Windows setup instructions
- Enable "Developer Mode" in Windows 10/11, for symbolic link support: "Open Settings" / "Privacy & Security" / "For developers", then set "Developer Mode" to "on".
- Install Git from https://git-scm.com/download/win. Check "Enable symlink" during installation.
If you have Git already installed, either reinstall it with the symlink support on, or enter
git config --global core.symlinks true
in the command prompt to enable symlinks in Git - Download and run mingwInstaller.exe
- Set install destination to
c:\
- Accept suggested default settings
- Go to
c:\mingw32\bin
folder and renamemingw32-make.exe
tomake.exe
- Add
c:\mingw32\bin
to thePath
environment variable. For Windows 11 the steps are:- Open Start Search, type "env", and select "Edit the system environment variables"
- Click the "Environment Variables..."
- In the "System Variables" section, locate "Path", and click edit
- In the "Edit environment variable" UI, click "New" to add the new path
- Set install destination to
- for ARM embedded systems Download and install https://developer.arm.com/Tools%20and%20Software/GNU%20Toolchain
- Enable "Add path to environment variable" during the installation
- for RISCV embedded systems Download and install risc-v-gcc10.1.0.exe, accept default installation settings.
- for RP2040 and RP2350 devices Install CMake; choose "Add CMake to the system PATH". You may also need to install Python 3
- for STM32 devices
Create a
C:\tools
folder and addC:\tools
to thePath
environment variable- Download and install STM32CubeProgrammer
- Alternatively, you may wish to download stlink; unpack
bin/st-flash.exe
into theC:\tools
folder- If stlink does not work, you need a driver. Unplug your board and install ST's ST-LINK driver
- Alternatively, you may install Zadig; it will detect the device missing a driver and let you install a proper one. However, this is not compatible with Keil. Try WinUSB first:
- Alternatively, you may install Zadig; it will detect the device missing a driver and let you install a proper one. However, this is not compatible with Keil. Try WinUSB first:
- If stlink does not work, you need a driver. Unplug your board and install ST's ST-LINK driver