ArmBuilderX
Cross-platform CLI that turns a Keil/MDK Arm Cortex-M project into a CMake project, builds it with the Arm GNU Toolchain, flashes it with pyOCD, and streams the DAPLink/CMSIS-DAP virtual COM port log.
It is built on top of official tooling rather than a custom project parser:
- CMSIS-Toolbox
(
csolution/cbuild/cbuild2cmake/cpackget) resolves the CMSIS-Pack device data (CPU, FPU, memory map, startup/linker files) and generates the actualCMakeLists.txt. - pyOCD flashes the target over CMSIS-DAP/DAPLink and can also list/open the debug probe's serial port.
- CMake + Arm GNU Toolchain (
arm-none-eabi-gcc) builds the generated CMake project.ninjais used as the CMake generator.
Install
pip install armbuilderx
Usage
# One-time: point ArmBuilderX at the vendor pack(s) that describe your device.
armbuilderx init --pack path/to/Vendor.PackName.x.y.z.pack
# Generate (or refresh) the GCC/CMake project for one example, from its
# existing MDK project.
armbuilderx generate examples/device_support/ns800rt5xxx/examples/gpio/gpio_ex2_output
# Build it (adds arm-none-eabi-gcc/cmake/ninja/git to ~/.armbuilderx/tools
# automatically if they are missing from PATH).
armbuilderx build examples/device_support/ns800rt5xxx/examples/gpio/gpio_ex2_output
# Flash the built ELF over CMSIS-DAP/DAPLink with pyOCD.
# (the build step also emits matching .hex and .bin images alongside the .elf)
armbuilderx flash examples/device_support/ns800rt5xxx/examples/gpio/gpio_ex2_output
# Open the DAPLink virtual COM port and stream log output.
armbuilderx monitor
# All of the above, in one shot.
armbuilderx run examples/device_support/ns800rt5xxx/examples/gpio/gpio_ex2_output
SDK adapters
ArmBuilderX keeps vendor-specific SDK rules behind SDK adapters. The current
ns800rt5xxx adapter contains the NS800 project-layout detection, GCC startup
file replacement, linker-script selection, and NS800-only compiler defines.
The command layer remains independent of those details and can select an
adapter explicitly when needed:
armbuilderx generate <example-dir> --sdk ns800rt5xxx
Without --sdk, ArmBuilderX detects the adapter from the example layout. To
add another SDK such as GR551x, implement a new adapter under
src/armbuilderx/sdk/ and register it in sdk/registry.py; do not add its
directory rules to the NS800 adapter or the generic generator.
GR551x
The gr551x adapter supports Goodix GR551x projects that ship a GCC/
CMSIS-Toolbox project. It verifies the Goodix::GR5xxx_DFP@1.0.0 pack and
Goodix::GR551x device, preserves the SDK's source groups and BLE library,
and resolves the selected GCC toolchain's Cortex-M4 softfp runtime libraries.
armbuilderx init --pack ../GR551x_SDK_V2.1.1/Goodix.GR5xxx_DFP.1.0.0.pack
armbuilderx build ../GR551x_SDK_V2.1.1/projects/peripheral/gpio/app_gpio --sdk gr551x --clean
Each project keeps its generated CMake project under a GCC/ folder
next to the existing MDK//IAR/ folders, matching the SDK's own
convention.
Metadata
Release files for armbuilderx 0.1.2
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| armbuilderx-0.1.2.tar.gz | 27.2 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| armbuilderx-0.1.2-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 56.8 kB
Release files / armbuilderx-0.1.2.tar.gz
| Download URL | armbuilderx-0.1.2.tar.gz |
|---|---|
| Size | 27.2 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
ebc56ae98f8d34635220353cb36d4d4a787d3a6a370518cbabc7c6d3d083add3
|
|
BLAKE2b-256 checksum How to use checksums |
2fdcf5c2bd00134c6b5bcc886033869c599d2d3165bb094f7a186077024d30b4
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 22, 2026.
Transparency logRelease files / armbuilderx-0.1.2-py3-none-any.whl
| Download URL | armbuilderx-0.1.2-py3-none-any.whl |
|---|---|
| Size | 29.6 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
502c2dcfae0e4b7926b93a4bb2c933b022eb436400f868bddce6c362a55cb985
|
|
BLAKE2b-256 checksum How to use checksums |
de29bcc60b06e11dbbcdbc18be3c450cd1ebc17b73e2250b901bd0c448e18673
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 22, 2026.
Transparency log