This directory contains the build system for cross-compiling STM32 upload tools for ARM64 (aarch64) Linux platforms.
These scripts use Docker to cross-compile the following binaries from x86_64 to ARM64:
- dfu-util - Device Firmware Update utility
- dfu-prefix - DFU file prefix tool
- dfu-suffix - DFU file suffix tool
- hid-flash - HID bootloader flash utility
- upload_reset - STM32 reset utility
- Docker installed and running
- Sufficient disk space (~2GB for build)
From the repository root directory:
./src/linux-aarch64/build.shThis will:
- Build and run ARM64 test stage (validates binaries work via QEMU on x86_64)
- Build Docker image with the ARM64 cross-compilation toolchain
- Compile all required binaries for ARM64
- Extract the binaries to
linux/aarch64/ - Set executable permissions
- Verify binary architecture
- Clean up the Docker container
Main build orchestration script that performs the complete build and test workflow.
What it does:
- Validates prerequisites - Checks Docker is installed and running
- Builds test stage - Uses
docker buildx build --platform linux/arm64 --target test- Cross-compiles binaries for ARM64
- Tests all binaries on ARM64 (uses QEMU emulation on x86_64)
- Ensures binaries actually execute correctly
- Build fails if any binary doesn't work
- Builds export stage - Uses
docker buildto create final image - Extracts binaries - Copies binaries from container to
linux/aarch64/ - Sets permissions - Makes all binaries executable
- Verifies output - Runs
filecommand to confirm ARM64 architecture
Removes all built ARM64 binaries from the linux/aarch64/ directory.
Multi-stage Docker build with integrated testing.