Primary Git Repository for the Zephyr Project. Zephyr is a new generation, scalable, optimized, secure RTOS for multiple hardware architectures.
Go to file
Grzegorz Swiderski c323cc6fb1 sysbuild: Support relative ordering of images
Fixes #53650

The existing solution for image ordering involves the `IMAGES` variable,
which sysbuild originally provided to let users manually add a new image
in a desired order. This isn't very flexible for the following reasons:

* The order in which `IMAGES` is updated across multiple modules and
  `sysbuild.cmake` files is not well defined.
* Having a single variable means that the same order is used for both
  configuration and flashing. Usually, there is no reason for the
  flashing order to be the same as the configuration order.

Introduce the `sysbuild_add_dependencies()` function for more fine-tuned
ordering of images. It makes one image depend on other images in either
configuration or flashing order. Its usage is similar to the standard
CMake function `add_dependencies()`, but with an extra parameter to
distinguish between two types of dependencies:

 sysbuild_add_dependencies(CONFIGURE my_sample sample_a sample_b)
 sysbuild_add_dependencies(FLASH     my_sample sample_c sample_d)

CONFIGURE dependencies determine the order in which sysbuild configures
(runs CMake for) the individual images. This is useful if there is some
information from one application's build which needs to be available to
another application.

FLASH dependencies control the sequence of images used by `west flash`.
This could be used if a specific flashing order is required by an SoC,
a runner, or something else. Note that these dependencies are not valid
for images specified as `BUILD_ONLY`.

The internal `sysbuild_images_order()` function is responsible for
assembling two sorted lists of images based on the added dependencies,
with the help of `topological_sort()`.

Signed-off-by: Grzegorz Swiderski <grzegorz.swiderski@nordicsemi.no>
2023-09-05 15:27:04 +02:00
.github ci: bsim: Improve path triggers for bsim tests 2023-09-04 13:00:52 -04:00
arch native simulator: Add property to collect libraries to link w runner 2023-09-04 13:16:58 +02:00
boards tests: drivers: spi: spi_loopback: Added intel_adl_crb overlay 2023-09-05 11:41:46 +02:00
cmake cmake: extensions: Add zephyr_topological_sort() 2023-09-05 15:27:04 +02:00
doc kernel: Modify the signature of k_mem_slab_free() 2023-09-03 18:20:59 -04:00
drivers bluetooth: hci: spi: warn about l2cap MTU values 2023-09-05 11:41:33 +02:00
dts dts: x86: intel: alder_lake: Added SPI instances 2023-09-05 11:41:46 +02:00
include/zephyr Bluetooth: audio: Fix BT_AUDIO_CODEC_CFG_LC3_DATA sampling frequency 2023-09-05 10:06:09 +02:00
kernel kernel: mem_slab: Add assert to k_mem_slab_free() 2023-09-03 18:20:59 -04:00
lib libc: Default to picolibc where supported 2023-09-04 15:29:13 -04:00
misc
modules mcuboot: Use tweak version for final signing version field 2023-09-01 17:44:28 +02:00
samples samples: subsys: display: lvgl: Remove lvgl-pointer-input in overlays 2023-09-05 10:05:50 +02:00
scripts scripts: tests: twister: Testsuite test expansion 2023-09-05 11:41:08 +02:00
share sysbuild: Support relative ordering of images 2023-09-05 15:27:04 +02:00
snippets
soc soc: arm: atmel_sam0: common: bossa: add missing init.h 2023-09-05 12:19:04 +02:00
submanifests
subsys ipc: rpmsg_service: s/device.h/init.h 2023-09-05 12:01:01 +02:00
tests tests: drivers: build_all: adc: add support for native_posix_64 2023-09-05 11:57:44 +02:00
.checkpatch.conf
.clang-format
.codecov.yml
.editorconfig
.gitattributes
.gitignore
.gitlint
.mailmap
.yamllint
CMakeLists.txt cmake: add Zephyr image output files as byproducts 2023-08-22 12:31:43 +02:00
CODEOWNERS CODEOWNERS/MAINTAINERS: change drivers/dai ownership 2023-09-04 21:31:46 +02:00
CODE_OF_CONDUCT.md
CONTRIBUTING.rst
Kconfig
Kconfig.zephyr Kconfig.zephyr: check priorities by default 2023-08-24 15:35:37 +02:00
LICENSE
MAINTAINERS.yml CODEOWNERS/MAINTAINERS: change drivers/dai ownership 2023-09-04 21:31:46 +02:00
README.rst
VERSION
version.h.in kernel: banner: Allow for customising version 2023-08-21 10:09:46 +02:00
west.yml nrf52_bsim: Update HW models to latest and align with them 2023-09-04 13:18:01 +02:00
zephyr-env.cmd
zephyr-env.sh

README.rst

.. raw:: html

   <a href="https://www.zephyrproject.org">
     <p align="center">
       <picture>
         <source media="(prefers-color-scheme: dark)" srcset="doc/_static/images/logo-readme-dark.svg">
         <source media="(prefers-color-scheme: light)" srcset="doc/_static/images/logo-readme-light.svg">
         <img src="doc/_static/images/logo-readme-light.svg">
       </picture>
     </p>
   </a>

   <a href="https://bestpractices.coreinfrastructure.org/projects/74"><img
   src="https://bestpractices.coreinfrastructure.org/projects/74/badge"></a>
   <a
   href="https://github.com/zephyrproject-rtos/zephyr/actions/workflows/twister.yaml?query=branch%3Amain">
   <img
   src="https://github.com/zephyrproject-rtos/zephyr/actions/workflows/twister.yaml/badge.svg?event=push"></a>


The Zephyr Project is a scalable real-time operating system (RTOS) supporting
multiple hardware architectures, optimized for resource constrained devices,
and built with security in mind.

The Zephyr OS is based on a small-footprint kernel designed for use on
resource-constrained systems: from simple embedded environmental sensors and
LED wearables to sophisticated smart watches and IoT wireless gateways.

The Zephyr kernel supports multiple architectures, including ARM (Cortex-A,
Cortex-R, Cortex-M), Intel x86, ARC, Nios II, Tensilica Xtensa, and RISC-V,
SPARC, MIPS, and a large number of `supported boards`_.

.. below included in doc/introduction/introduction.rst


Getting Started
***************

Welcome to Zephyr! See the `Introduction to Zephyr`_ for a high-level overview,
and the documentation's `Getting Started Guide`_ to start developing.

.. start_include_here

Community Support
*****************

Community support is provided via mailing lists and Discord; see the Resources
below for details.

.. _project-resources:

Resources
*********

Here's a quick summary of resources to help you find your way around:

* **Help**: `Asking for Help Tips`_
* **Documentation**: http://docs.zephyrproject.org (`Getting Started Guide`_)
* **Source Code**: https://github.com/zephyrproject-rtos/zephyr is the main
  repository; https://elixir.bootlin.com/zephyr/latest/source contains a
  searchable index
* **Releases**: https://github.com/zephyrproject-rtos/zephyr/releases
* **Samples and example code**: see `Sample and Demo Code Examples`_
* **Mailing Lists**: users@lists.zephyrproject.org and
  devel@lists.zephyrproject.org are the main user and developer mailing lists,
  respectively. You can join the developer's list and search its archives at
  `Zephyr Development mailing list`_. The other `Zephyr mailing list
  subgroups`_ have their own archives and sign-up pages.
* **Nightly CI Build Status**: https://lists.zephyrproject.org/g/builds
  The builds@lists.zephyrproject.org mailing list archives the CI nightly build results.
* **Chat**: Real-time chat happens in Zephyr's Discord Server. Use
  this `Discord Invite`_ to register.
* **Contributing**: see the `Contribution Guide`_
* **Wiki**: `Zephyr GitHub wiki`_
* **Issues**: https://github.com/zephyrproject-rtos/zephyr/issues
* **Security Issues**: Email vulnerabilities@zephyrproject.org to report
  security issues; also see our `Security`_ documentation. Security issues are
  tracked separately at https://zephyrprojectsec.atlassian.net.
* **Zephyr Project Website**: https://zephyrproject.org

.. _Discord Invite: https://chat.zephyrproject.org
.. _supported boards: http://docs.zephyrproject.org/latest/boards/index.html
.. _Zephyr Documentation: http://docs.zephyrproject.org
.. _Introduction to Zephyr: http://docs.zephyrproject.org/latest/introduction/index.html
.. _Getting Started Guide: http://docs.zephyrproject.org/latest/develop/getting_started/index.html
.. _Contribution Guide: http://docs.zephyrproject.org/latest/contribute/index.html
.. _Zephyr GitHub wiki: https://github.com/zephyrproject-rtos/zephyr/wiki
.. _Zephyr Development mailing list: https://lists.zephyrproject.org/g/devel
.. _Zephyr mailing list subgroups: https://lists.zephyrproject.org/g/main/subgroups
.. _Sample and Demo Code Examples: http://docs.zephyrproject.org/latest/samples/index.html
.. _Security: http://docs.zephyrproject.org/latest/security/index.html
.. _Asking for Help Tips: https://docs.zephyrproject.org/latest/develop/getting_started/index.html#asking-for-help