Primary Git Repository for the Zephyr Project. Zephyr is a new generation, scalable, optimized, secure RTOS for multiple hardware architectures.
Go to file
Marc Herbert 725abdf430 gen_app_partitions.py: make generated/app_smem_*.ld files deterministic
Dictionaries are not ordered in Python 3.5 and before, so building twice
in a row could lead to a different partition order, different
build/zephyr/include/generated/app_smem_*.ld files and different
binaries.

Fix with a minor change to the "for" loop in the output function:
make it iterate on sorted(partitions.items()) instead of the raw and
randomly ordered partitions dictionary.

It is easy to reproduce the issue even without downgrading to an
obsolete Python version; pick a test like samples/userspace/shared_mem/
and simply change the code to this:

--- a/scripts/gen_app_partitions.py
+++ b/scripts/gen_app_partitions.py
@@ -159,10 +159,12 @@ def parse_elf_file(partitions):
                     partitions[partition_name][SZ] += size

+import random
 def generate_final_linker(linker_file, partitions):
     string = linker_start_seq
     size_string = ''
-    for partition, item in sorted(partitions.items()):
+    for partition, item in sorted(partitions.items(),
+                                  key=lambda x: random.random()):
         string += data_template.format(partition)
         if LIB in item:
             for lib in item[LIB]:

Signed-off-by: Marc Herbert <marc.herbert@intel.com>
2019-06-27 07:18:09 -04:00
.github/ISSUE_TEMPLATE templates: Update issue templates 2018-12-07 08:27:20 -05:00
.known-issues doc: introduce final structure 2019-02-05 07:04:40 -05:00
arch arc: logging: fix logging expression 2019-06-26 09:51:14 -04:00
boards boards: frdm-k64f: Enable CAN support 2019-06-26 16:05:51 -05:00
cmake cmake: toolchain_cc_imacros: don't use space separated arguments 2019-06-25 23:29:22 -04:00
doc Doc: Use SDK 0.10.1 instead of 0.10.0. 2019-06-27 07:15:19 -04:00
drivers drivers: sensor: Update DT symbols in qdec_nrfx driver 2019-06-27 07:16:33 -04:00
dts soc: nxp: k6x: Add CAN support 2019-06-26 16:05:51 -05:00
ext ext: hal: nordic: Update DT symbols in nrfx config file 2019-06-27 07:16:33 -04:00
include usb: sort usb config data by section 2019-06-27 12:18:05 +02:00
kernel lifo/fifo: first word is not always first 4 bytes 2019-06-26 09:08:42 -04:00
lib libc: types: Remove wrong definition 2019-06-27 07:17:04 -04:00
misc license: cleanup: add SPDX Apache-2.0 license identifier 2019-04-07 08:45:22 -04:00
modules modules/hal_st: Add stmemsc HAL library 2019-06-26 15:41:40 -04:00
samples usb: sort usb config data by section 2019-06-27 12:18:05 +02:00
scripts gen_app_partitions.py: make generated/app_smem_*.ld files deterministic 2019-06-27 07:18:09 -04:00
soc soc: nxp: k6x: Add CAN support 2019-06-26 16:05:51 -05:00
subsys Bluetooth: Mesh: Fix provisioning send error handling 2019-06-27 12:18:33 +02:00
tests usb: sort usb config data by section 2019-06-27 12:18:05 +02:00
.checkpatch.conf scripts/checkpatch.pl: fix root dir detection and enable it 2019-05-22 12:40:20 -04:00
.clang-format clang-format: add support for clang-format 2018-11-19 09:31:44 -05:00
.codecov.yml ci: add .codecov.yml for codecov.io configuration 2018-01-03 13:12:03 -05:00
.editorconfig editorconfig: Set insert_final_newline true 2019-04-10 14:15:38 +02:00
.gitattributes First commit 2015-04-10 16:44:37 -07:00
.gitignore gitignore: ignore IDE files 2018-11-21 15:05:07 +01:00
.gitlint gitlint: match max title length restriction with checkpatch 2019-05-29 14:43:16 -04:00
.mailmap mailmap: Fix entry needing both name and email replace 2019-06-26 13:54:03 -04:00
.shippable.yml ci: move to new docker with new SDK 2019-06-14 09:26:40 -04:00
.uncrustify.cfg uncrustify: Add a rule to remove space inside function argument 2018-10-16 09:50:03 -04:00
CMakeLists.txt stdint.h: streamline type definitions 2019-06-25 23:29:22 -04:00
CODEOWNERS boards: arm: Add 96Boards Avenger96 board support 2019-06-26 07:37:35 -04:00
CODE_OF_CONDUCT.md coc: move to markdown format 2019-01-24 15:37:15 -05:00
CONTRIBUTING.rst doc: Fixed a link in CONTRIBUTING.rst 2019-02-28 12:46:04 -08:00
Kconfig license: Replace Apache boilerplate with SPDX tag 2017-01-19 03:50:58 +00:00
Kconfig.zephyr docs: fix misspelling across the tree 2019-06-19 15:34:13 -05:00
LICENSE add top level Apache 2.0 license file 2016-02-05 20:24:37 -05:00
Makefile doc: add clean target to Makefile 2019-02-05 16:58:14 -05:00
README.rst doc: add references to builds mailing list 2019-05-21 21:40:20 -04:00
VERSION release: Post-release patch level update 2019-04-16 15:50:31 -05:00
version.h.in cmake: explain BUILD_VERSION and KERNEL_VERSION_* 2019-05-09 11:52:05 +02:00
west.yml modules/hal_st: Add stmemsc HAL library 2019-06-26 15:41:40 -04:00
zephyr-env.cmd scripts: remove west from scripts/ 2019-01-29 10:15:01 +01:00
zephyr-env.sh env: ignore unset var 2019-05-20 09:26:31 -04:00

README.rst

.. raw:: html

   <a href="https://www.zephyrproject.org">
     <p align="center">
       <img src="doc/images/Zephyr-Project.png">
     </p>
   </a>

   <a href="https://bestpractices.coreinfrastructure.org/projects/74"><img
   src="https://bestpractices.coreinfrastructure.org/projects/74/badge"></a>
   <img
   src="https://api.shippable.com/projects/58ffb2b8baa5e307002e1d79/badge?branch=master">


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-M,
Intel x86, ARC, Nios II, Tensilica Xtensa, and RISC-V, and a large number of
`supported boards`_.

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

.. start_include_here

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.

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

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

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://zephyrproject.org/developers/#downloads
* **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
  (shippable) nightly build results.
* **Chat**: Zephyr's Slack workspace is https://zephyrproject.slack.com.  Use
  this `Slack 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

.. _Slack Invite: https://tinyurl.com/yarkuemx
.. _supported boards: http://docs.zephyrproject.org/latest/boards
.. _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/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/guides/getting-help.html