GCC ARM Embedded

Arm and GNU project contributors · Arm GNU command-line cross-toolchain for C/C++ bare-metal firmware, with arm-none-eabi compiler, binary utilities, libraries and debugger.

CaskLanguages & RuntimesApple silicon · Intel
From homebrew/cask
30-day installs795#200 in App
1-year installs15.6KLast 365 days
Latest version15.3.rel123 hours ago · Oct 7
Download size281MBarm64 / x86_64 · pkg
Release cadenceIrregular1 release in 30 days

About

GCC ARM Embedded is the catalog name for Arm's prebuilt GNU cross-toolchain for 32-bit Arm bare-metal development. The selected arm-none-eabi tools run on the Mac host and produce code for compatible Arm targets; the host processor and the firmware target architecture are separate choices. It is a command-line compiler/toolchain, not a graphical IDE, board emulator or complete firmware flashing application.

Features and audience

  • Compile C and C++ firmware with GCC and the arm-none-eabi target.
  • Assemble and link code with GNU Binutils.
  • Inspect symbols, disassemble objects and convert binary formats.
  • Debug through GDB when a suitable target and debug-server setup are available.
  • Use supplied bare-metal runtime libraries, Newlib and documented examples.
  • Select processor, instruction-set and floating-point ABI options for your board.

It is intended for embedded developers, firmware build systems and educators working with supported Cortex-M, Cortex-R or other AArch32 bare-metal targets. The wider Arm GNU Toolchain release also contains other target variants; this cask specifically selects arm-none-eabi. It does not install the AArch64 or Linux-target variants, and it does not turn a Mac into an Arm Linux host.

Install and Mac support

Install with brew install --cask gcc-arm-embedded, or use the matching official macOS package installer. The catalog's default 15.3.rel1 package is darwin-arm64: native Apple Silicon host tools targeting AArch32 bare-metal. Its official release notes require macOS 11 or later. It is not an Intel-only bundle and does not need Rosetta merely because the target code is Arm.

Intel Mac variations in the current cask remain on 14.2.rel1 with darwin-x86_64 tools; that release documents macOS 12 or later. Intel macOS host support was deprecated in 14.2 and is absent from the 15.3 host-support table. Do not assume Intel receives the newest default release, or that Rosetta can make an arm64-host package run on an Intel Mac. Historical releases and their requirements must be checked individually.

The cask installs under /Applications/ArmGNUToolchain/<version>/arm-none-eabi and links prefixed tools into Homebrew's bin directory. Direct installation may require adding the appropriate bin directory to PATH; using explicit tool paths makes build selection clearer. Other SDKs or toolchains can provide identically named arm-none-eabi programs. Review PATH order and pin the intended compiler in a project instead of assuming whichever executable appears first has the expected version or ABI.

Dependencies and operation

Choose compiler flags and linker scripts for the actual MCU, board memory map, floating-point ABI and runtime requirements. Board SDKs, startup code, build utilities and an editor/IDE are separate project dependencies. Building firmware does not require attaching a board, but programming or hardware debugging normally requires compatible hardware, a probe and separate software/debug-server configuration. GDB alone does not supply every probe driver or flash utility. The cask lists no extra formula dependency or explicit conflicting cask.

From 15.2, macOS packages include ordinary GDB and a separate -py GDB with Python scripting support, built against Python 3.9.7. Follow the release's Python setup requirements only when using that scripting-enabled debugger; ordinary compilation does not imply a blanket Python requirement. Earlier 14.2 macOS GDB has no Python scripting support. Dependencies described for Linux or Windows are not automatically Mac requirements.

Installing a system package may require administrator authorization. The toolchain otherwise uses command-line filesystem access to source files and build outputs; ordinary compilation is not documented as requiring Accessibility or Screen Recording permission. Arm warns that compiling untrusted source can cause arbitrary code execution or excessive resource consumption and recommends a sandboxed environment. Source files and build scripts should be treated as executable project inputs, not inherently safe documents.

Cost, license and product history

Arm GNU Toolchain is free to download and use; no paid compiler entitlement or online account is needed for local compilation. Optional IDEs, cloud services, boards and probes can have separate costs and licenses. Components carry different licenses: GCC, Binutils and GDB include GPL terms, applicable GCC runtime files have the GCC Runtime Library Exception, and Newlib and other libraries have their own notices. Consult the supplied EULA/license collection for redistribution rather than assigning one license to every component or generated program.

Arm unified the previous A-profile and GNU Arm Embedded release lines into Arm GNU Toolchain. The old download page is deprecated and newer releases are officially hosted on Arm GitLab; this does not mean the current cask itself is disabled or deprecated. The current cask is neither disabled nor deprecated. Arm's LLVM-based Arm Toolchain for Embedded is a different product, not an interchangeable version label for this GNU package.

The default Apple Silicon 15.3.rel1 package is 280,574,793 bytes according to official HTTP HEAD metadata. Installed files and other host builds have different sizes. Release notes include known limitations, including MVE intrinsic nesting, CMSE cloning/linking and debugging with discarded sections; check them when the relevant features are used.

Sources: Official project, 15.3 release notes, 14.2 release notes, Official installation guide, Component licenses.

New What’s new in 15.3.rel1 Oct 7 · OpenNavo editorial

  • ComponentsGCC is based on version 15.3; Binutils on 2.45; GDB on 16.
  • LTOSupports zstd-compressed LTO objects on all supported host platforms.
  • Other OSFixes slow Windows GDB startup caused by network-like debug search paths.

An open-source interface for Homebrew. Installs run through the macOS app or the brew command.

© 2026 OpenNavo