Post-Build Command#

Execute a Project Post-Build File#

Simplicity Commander takes a project post-build description file in Yaml Ain't Markup Language (YAML) format, produced by Simplicity Studio, and executes sequentially the specified tasks in the file.

Command Line Syntax

$ commander postbuild <filename> [--parameter <name:value>]

Command Line Input Example

$ commander postbuild project_name.slpb --parameter "build_dir:path_to_build_dir"

Executes the steps in the post-build pipeline defined in project_name.slpb.

Command Line Output Example

Parsing file project_name.slbp...
Running task copy...
Running task convert...
Running task GBL create...
Running task OTA create...
DONE

The post-build pipeline consists of three sections:

  • Parameters: named variables whose value is taken from the command line upon pipeline invocation.

  • Constants: named variables whose value is taken from the post-build file itself or a path to another post-build file from which constants are inherited.

  • Steps: list of tasks to be invoked, making use of the above declared variables.

See below for an example post-build file:

parameters:
  - name: artifact
  - name: build_dir
constants:
  - name: project_name
    value: my_project
steps:
  - task: copy
    input: "{{build_dir}}/{{project_name}}.s37"
    output: "{{artifact}}/{{project_name}}.s37"
  - task: convert
    input: "{{build_dir}}/{{project_name}}.out"
    include-section: P2 ro
    output: "{{artifact}}/{{project_name}}.bin"

Tasks#

Seven different types of tasks are supported. The tasks are identified with the following names:

  • copy

  • convert

  • convert_rps

  • create_gbl

  • create_ota

  • create_rps

  • usage

The tables below summarize the required options and optional options for each task.

Table: copy

Required Options

input: <filename>

output: <filename>

Optional Options

export: <constant value>

Table: convert

Required Options

input: <filename>

output: <filename>

Optional Options

export: <constant value>

keyfile: <key file>

crc: <true>

certificate: <certificate file>

include-section: <ELF section>

exclude-section: <ELF section>

signature: <signature file>

verify: <key file>

Table: convert_rps

Required Options

output: <RPS filename>

Optional Options

app: <M4 RPS filename>

taapp: <TA RPS filename>

app-version: <version number>

fw-info: <firmware info>

sign: <key filename>

sha-type: <SHA-XXX>

encrypt: <key filename>

mic: <key filename>

combinedimage: <true>

Table: create_gbl

Required Options

output: <filename>

Optional Options

export: <constant value>

app: <app image>

bootloader: <bootloader image>

seupgrade: <SE upgrade image>

metadata: <metadata bin file>

compress: <app compression algorithm>

certificate: <certificate file>

sign: <key file>

encrypt: <AES key file>

extsign: <true>

include-section: <section>

exclude-section: <section>

Table: create_ota

Required Options

input: <filename> (same as upgrade-image)

output: <filename>

manufacturer-id: <ID>

firmware-version: <version>

image-type: <image type>

string <text>

Optional Options

export: <constant value>

upgrade-image: <filename>

manufacturer-tag: <tag ID>

stack-version: <version>

credentials: <credentials>

destination: <EUI64>

min-hw: <version>

max-hw: <version>

certificate: <filename>

sign: <true>

Table: create_rps

Required Options

input: <application filename>

output: <RPS filename>

Optional Options

address: <address>

app-version: <version number>

include-section: <section>

exclude-section: <section>

fw-info: <firmware info>

sign: <key filename>

sha-type: <SHA-XXX>

encrypt: <key filename>

mic: <key filename>

combinedimage: <true>

Table: usage

Required Options

input: <application ELF filename>

Optional Options

map: <filename>

device: <device part number>

include-section: <ELF section>

exclude-section: <ELF section>