Sign inSign up

zfields/particle-toolchain

By zfields

Updated almost 7 years ago

The toolchain required to build Particle firmware

Image
0

1.8K

zfields/particle-toolchain repository overview

Particle build container

The Particle build container will execute <particle-iot/device-os>/build/release.sh, which can be provided with the following parameters:

  • --debug - Generate debug binaries (as opposed to release).
  • --platform - The name of the platform you wish to build (argon|asom|boron|bsom|core|electron|photon|p1|xenon|xsom).
  • --platform-id - The id of the platform you wish to build (0|6|8|10|12|13|14|22|23|24).
  • --output-directory - The directory where you would like to resulting binary files to be placed.
  • --tests - Generate test binaries for the current platform.

Although more verbose, the Docker build container has a couple of advantages over native installation.

  1. Isolation of build dependencies required by the Particle firmware
  2. Dependencies are always in sync and are managed by Particle
Building Particle firmware
docker run --rm --volume <local device-os repository>:/particle-iot/device-os --volume <local binary output folder>:/particle-iot/binaries  zfields/particle-toolchain --platform (core|electron|p1|photon) --output-directory /particle-iot/binaries

Option breakdown:

  • <local device-os repository> - This is the path to the device-os folder on your local machine.
  • <local binary output folder>- This is the path to the directory where you would like the resulting binaries to be placed.
  • (core|electron|p1|photon) - Select the option from this list that matches the device for which you are compiling.
Building a user application
docker run --entrypoint make --rm --volume <local device-os repository>:/particle-iot/device-os --volume <user application folder>:/particle-iot/app --workdir /particle-iot/device-os/main zfields/particle-toolchain clean all PLATFORM=(core|electron|p1|photon) APPDIR=/particle-iot/app TARGET_FILE=<user application>

Option breakdown:

  • <local device-os repository> - This is the path to the device-os folder on your local machine.
  • <user application folder> - This is the path to the user application folder on your local machine.
  • (core|electron|p1|photon) - Select the option from this list that matches the device for which you are compiling.
  • <user application> - This will be the name of the resulting binary (i.e. my_app).
Generating a debug build

Pass the following parameters to the container:

DEBUG_BUILD=y MODULAR=n USE_SWD=y

NOTE: Special thanks to Kevin Sidwar for pioneering containerized builds in his blog.

Tag summary

Content type

Image

Digest

Size

165.5 MB

Last updated

almost 7 years ago

docker pull zfields/particle-toolchain