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> |