Sign inSign up

bbaskovc/gcc-arm-none-eabi

By bbaskovc

•Updated 3 months ago

Docker image for bare-metal ARM development and firmware builds with arm-none-eabi-gcc.

Image
Developer tools
0

39

bbaskovc/gcc-arm-none-eabi repository overview

⁠ARM GNU Toolchain XX.X Docker Image

Docker image for bare-metal ARM development and firmware builds with arm-none-eabi-gcc.

The image is based on:

ubuntu:24.04

It includes the official Arm GNU Toolchain environment plus extra tools for embedded development, changelog workflows, and USB/JTAG access.

⁠Included In The Image

The official Arm GNU Toolchain release provides:

  • Arm GNU Toolchain XX.X.rel1
  • arm-none-eabi-gcc
  • arm-none-eabi-g++
  • arm-none-eabi-gdb
  • arm-none-eabi-objcopy
  • arm-none-eabi-objdump
  • arm-none-eabi-size
  • Newlib
  • bare-metal ARM binutils

This image additionally installs:

  • build-essential
  • git
  • curl
  • udev
  • usbutils
  • ccache
  • cmake
  • ninja-build
  • make
  • openocd
  • python3
  • python3-pip
  • python3-venv
  • Node.js with npm

Global npm packages installed in the image:

  • conventional-changelog-cli
  • commitizen
  • cz-conventional-changelog

The Arm toolchain is installed to:

/opt/arm-gnu-toolchain

⁠Pull The Image

docker pull bbaskovc/gcc-arm-none-eabi:XX.X

⁠Run An Interactive Shell

docker run --rm -it bbaskovc/gcc-arm-none-eabi:XX.X

⁠Build A CMake Project

Run this from a firmware project directory:

docker run --rm -it \
  -v "$PWD:/workspaces/project" \
  -w /workspaces/project \
  bbaskovc/gcc-arm-none-eabi:XX.X \
  cmake -S . -B build -G Ninja

Then build:

docker run --rm -it \
  -v "$PWD:/workspaces/project" \
  -w /workspaces/project \
  bbaskovc/gcc-arm-none-eabi:XX.X \
  cmake --build build

⁠Build A Make Project

Run this from a firmware project directory:

docker run --rm -it \
  -v "$PWD:/workspaces/project" \
  -w /workspaces/project \
  bbaskovc/gcc-arm-none-eabi:XX.X \
  make

⁠Flash Or Debug Hardware

For OpenOCD or USB/JTAG debugging, the container may need broader USB access:

docker run --rm -it \
  --privileged \
  -v /dev/bus/usb:/dev/bus/usb \
  -v "$PWD:/workspaces/project" \
  -w /workspaces/project \
  bbaskovc/gcc-arm-none-eabi:XX.X \
  /bin/bash

Example OpenOCD command:

openocd -f interface/stlink.cfg -f target/stm32f4x.cfg

Adjust the OpenOCD interface and target configuration files for your board.

⁠Notes

  • The image is intended for Cortex-M and other bare-metal ARM firmware projects.
  • The default working directory is /workspaces.
  • The default command is /bin/bash.
  • The Arm toolchain path is added to PATH.
  • The image is suitable for local development, CI builds, and VS Code Dev Container workflows.
  • For USB debug probes, host USB forwarding and Docker device permissions must be configured correctly.
  • This image does not include vendor SDKs such as STM32Cube, Zephyr, or board-specific packages.

Tag summary

Content type

Image

Digest

sha256:7e422664f…

Size

527.7 MB

Last updated

3 months ago

docker pull bbaskovc/gcc-arm-none-eabi:15.2