zephyr/scripts/west_commands
Martí Bolívar 524853ecfa runners: nrfjprog: workaround for multi-core hex files
The nrfjprog utility is not capable of flashing a hex file which
affects the flash memories of both coprocessors of the nRF53 family of
SoCs.

However, the user is capable of creating such a hex file using the
HEX_FILES_TO_MERGE build system variable.

An example use case is to build a bluetooth controller application for
the network core, then use the zephyr.hex file in that build directory
as the HEX_FILES_TO_MERGE argument for a separate Bluetooth
application build targeting the app core.

Work around this by detecting the situation and doing the right thing
by splitting the hex file back up again, even if thats a bit awkward.
Splitting the hex into app and network core components allows them to
be flashed separately. This is the only way we can get the job done
with nrfjprog.

This is arguably nicer since there's just one 'west flash' invocation.
At least in the use case named above, you wouldn't need to rebuild the
controller application very often, so this is a simpler user workflow.

Signed-off-by: Martí Bolívar <marti.bolivar@nordicsemi.no>
2021-03-19 09:52:13 -04:00
..
completion boards/shields: re-work handling in cmake and west 2021-01-15 15:07:49 -05:00
runners runners: nrfjprog: workaround for multi-core hex files 2021-03-19 09:52:13 -04:00
tests runners: nrfjprog: workaround for multi-core hex files 2021-03-19 09:52:13 -04:00
boards.py boards/shields: re-work handling in cmake and west 2021-01-15 15:07:49 -05:00
build_helpers.py west build: fix --pristine on early build system failure 2020-10-14 07:22:32 -05:00
build.py west build: fix board detection 2021-02-02 14:08:57 -05:00
completion.py boards/shields: re-work handling in cmake and west 2021-01-15 15:07:49 -05:00
debug.py scripts: clean up west build/flash/debug help 2020-06-29 08:47:04 -04:00
export.py cmake: Zephyr CMake package clean-up and minor fix 2020-08-19 12:52:33 -04:00
flash.py scripts: clean up west build/flash/debug help 2020-06-29 08:47:04 -04:00
mypy.ini scripts: runners: add type checking for west_commands 2020-09-03 16:49:09 -05:00
README.txt scripts: runners: add type checking for west_commands 2020-09-03 16:49:09 -05:00
run_common.py scripts: run_common: improve error handling for missing runner 2021-03-17 11:30:45 +01:00
run_tests.py scripts: runners: add type checking for west_commands 2020-09-03 16:49:09 -05:00
sign.py board: cavs15: Add a option to control signing ways 2021-02-11 13:52:30 -05:00
zcmake.py scripts: zcmake: fix for prerelease cmake versions 2021-02-09 09:14:37 -05:00
zephyr_ext_common.py scripts: west_commands: remove unused helper 2020-08-19 09:51:13 -04:00

This directory contains implementations for west commands which are
tightly coupled to the zephyr tree. This includes the build, flash,
and debug commands.

Before adding more here, consider whether you might want to put new
extensions in upstream west. For example, any commands which operate
on the multi-repo need to be in upstream west, not here. Try to limit
what goes in here to Zephyr-specific features.

When extending this code, please keep the unit tests (in tests/) up to
date. The mypy static type checker is also run on the runners package.

To run these tests locally on Windows, run:

   py -3 run_tests.py

On macOS and Linux:

   ./run_tests.py

Note that these tests are run as part of Zephyr's CI when submitting
an upstream pull request, and pull requests which break the tests
cannot be merged.

Thanks!