mirror of https://github.com/ARMmbed/mbed-os.git
subprocess.PIPE is used to enable the parent process to communicate with the subprocess via pipes, which mean all stdout and stderr messages are captured and returned as part of Popen.communicate's result tuple. In our case, we want to display the error messages on the console, so we don't need to capture the output from stdout. Example of a typical error message before this change: ``` Traceback (most recent call last): File "platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_TFM/TARGET_TFM_LATEST/scripts/generate_mbed_image.py", line 197, in <module> sign_and_merge_tfm_bin(args.tfm_target, args.target_path, args.non_secure_bin, args.secure_bin) File "platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_TFM/TARGET_TFM_LATEST/scripts/generate_mbed_image.py", line 81, in sign_and_merge_tfm_bin " secure binary, Error code: " + str(retcode)) Exception: Unable to sign musca_b1 secure binary, Error code: 1 ``` Example of the error message after this change: ``` Traceback (most recent call last): File "/mbed-os/tools/psa/tfm/bin_utils/wrapper.py", line 13, in <module> import click ModuleNotFoundError: No module named 'click' Traceback (most recent call last): File "platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_TFM/TARGET_TFM_LATEST/scripts/generate_mbed_image.py", line 194, in <module> sign_and_merge_tfm_bin(args.tfm_target, args.target_path, args.non_secure_bin, args.secure_bin) File "platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_TFM/TARGET_TFM_LATEST/scripts/generate_mbed_image.py", line 80, in sign_and_merge_tfm_bin raise Exception("Unable to sign " + target_name + Exception: Unable to sign musca_b1 secure binary, Error code: 1 ``` This is a significant improvement as now you can see what the reason for the failure was. |
||
---|---|---|
.. | ||
arm_pack_manager | ||
bootloaders | ||
cmake | ||
config | ||
debug_tools/crash_log_parser | ||
export | ||
flash_algo | ||
host_tests | ||
importer | ||
notifier | ||
profiles | ||
psa | ||
resources | ||
targets | ||
test | ||
test_configs | ||
toolchains | ||
.mbedignore | ||
README.md | ||
__init__.py | ||
build.py | ||
build_api.py | ||
build_release.py | ||
default_settings.py | ||
detect_targets.py | ||
device_management.py | ||
get_config.py | ||
libraries.py | ||
make.py | ||
memap.py | ||
memap_flamegraph.html | ||
options.py | ||
paths.py | ||
project.py | ||
regions.py | ||
run_icetea.py | ||
settings.py | ||
singletest.py | ||
test.py | ||
test_api.py | ||
test_exporters.py | ||
tests.py | ||
utils.py |
README.md
Mbed OS Build Tools
This directory contains the python tools used for building Mbed OS and Mbed 2.
Quick navigation:
file/directory | Purpose/function |
---|---|
build.py |
implementation of mbed compile --library |
build_api.py |
full-project build operations |
build_release.py |
CLI for making an mbed 2 release |
config |
implementation of Config System |
debug_tools |
Crash log parsing |
default_settings.py |
Default version of project local settings.py |
detect_targets.py |
implementation of mbed detect |
device_management.py |
implementation of mbed device-management |
export |
Export plugins and API for woking with them |
flash_algo |
CMSIS flash algorithm parser |
get_config.py |
implementation of mbed compile --config |
host_tests |
location of pre-htrun host tests |
importer |
code importer for use with CMSIS, TFM/PSA etc. |
libraries.py |
constants for building mbed 2 libraries |
make.py |
implementation of mbed compile |
memap.py |
map file parser and summary generator |
notifier |
API for seting compile status to a frontend |
options.py |
Default option parser and option utilities |
paths.py |
constants for many paths used |
profiles |
location of the default build profiles |
project.py |
implementation of mbed export |
psa |
PSA |
regions.py |
merging from managed bootloader mode |
resources |
scans directories for files used in a project |
run_icetea.py |
implementation of mbed test --icetea |
settings.py |
project specific settings from env vars |
singletest.py |
location of pre-greentea greentea |
targets |
target description reader and post-build steps |
test |
unit tests for tools |
test_api.py |
part of pre-greentea greentea |
test_configs |
configuration files used by mbed test |
test_exporters.py |
part of pre-greentea greentea |
tests.py |
implementation of mbed test --greentea |
toolchains |
API for calling the selected compiler |
utils.py |
General purpose utilities like file moving |