No description
Find a file
Stephanos Ioannidis 9672858c19 cmake: compiler: Add flag template for disabling strict aliasing rule
This commit adds a template for specifying the C/C++ compiler flag for
disabling the strict aliasing rule.

It also enables this flag globally because the Zephyr codebase does not
strictly adhere to the aliasing rules specified by the C/C++ standards
and the optimisation strategies that assume these rules may end up
generating invalid code.

For instance, GCC 11 and above tend to optimise more aggressively
assuming the strict adherence to the standard aliasing rules and may
generate invalid code, when compiling Zephyr with `-fstrict-aliasing`,
that results in various run-time failures.

Note that the footprint and performance ramifications of disabling the
strict aliasing rule are negligible.

Signed-off-by: Stephanos Ioannidis <root@stephanos.io>
2022-08-11 17:45:58 +02:00
.github ci: run bug snapshot daily 2022-08-10 11:59:55 +02:00
arch arch: arm: aarch32: cortex_m: fault: Prevent BusFault from HardFault 2022-08-10 11:59:38 +02:00
boards boards: thingy53_nrf5340: Disable BMI270 in DTS 2022-08-11 09:47:08 -05:00
cmake cmake: compiler: Add flag template for disabling strict aliasing rule 2022-08-11 17:45:58 +02:00
doc bluetooth: host: Increase long workqueue stack size 2022-08-11 17:01:08 +02:00
drivers drivers: flash: sam: Fix driver support 2022-08-11 07:41:09 -05:00
dts drivers: flash: sam: Fix driver support 2022-08-11 07:41:09 -05:00
include/zephyr devicetree: s/devicetree_unfixed/devicetree_generated 2022-08-11 12:17:02 +02:00
kernel kernel: Init the base.slice_ticks for dummy_thread 2022-08-04 19:44:24 -04:00
lib picolibc: Don't select TLS without toolchain support 2022-08-11 12:20:20 +02:00
misc misc: generated: update configs.c template with <zephyr/...> prefix 2022-05-09 12:45:29 -04:00
modules net: openthread: allow to configure OPENTHREAD_MESSAGE_BUFFER_SIZE 2022-08-10 12:01:18 +02:00
samples samples: i2s: echo: exclude litex_vexriscv 2022-08-11 12:20:33 +02:00
scripts footprint: Add Hearing Access Hearing Aid BT Audio sample 2022-08-10 13:08:18 +02:00
share cmake: sysbuild: signing support 2022-08-03 16:05:07 +02:00
soc soc: stm32l5: power: Factorize some code pm_state_set 2022-08-11 13:22:58 +01:00
submanifests west.yml: allow users to easily add more modules 2021-10-07 13:45:42 +02:00
subsys bluetooth: host: Increase long workqueue stack size 2022-08-11 17:01:08 +02:00
tests ztest: add test summary after all suites finish running 2022-08-11 09:01:12 -04:00
.checkpatch.conf checkpatch: Ignore IS_ENABLED_CONFIG warnings 2021-10-18 08:28:01 -04:00
.clang-format clang-format: do not merge blocks/functions into single line 2022-07-15 19:18:28 -04:00
.codecov.yml
.editorconfig editorconfig: Improve verbosity 2022-04-28 08:55:39 -04:00
.gitattributes gitattributes: consider SVG files generated 2021-10-14 12:42:44 -04:00
.gitignore .gitignore: exempt scripts/build from ignore 2022-07-30 08:29:29 -05:00
.gitlint gitlint: Stop ignoring merge, revert, fixup and squash commits 2022-01-10 08:13:36 -05:00
.mailmap mailmap: update mailmap file with some stray emails 2021-06-17 14:15:41 -04:00
CMakeLists.txt cmake: compiler: Add flag template for disabling strict aliasing rule 2022-08-11 17:45:58 +02:00
CODE_OF_CONDUCT.md
CODEOWNERS cmake: initial sysbuild / multi image support 2022-08-03 16:05:07 +02:00
CONTRIBUTING.rst doc: Fixed a link in CONTRIBUTING.rst 2019-02-28 12:46:04 -08:00
Kconfig kconfig: Clean up header comments and make them consistent 2019-11-04 17:31:27 -05:00
Kconfig.zephyr Kconfig: flag LEGACY_INCLUDE_PATH as deprecated 2022-08-05 13:03:54 +02:00
LICENSE
MAINTAINERS.yml maintainers: Add Al Semjonovs as collaborator for testing/emul 2022-08-10 13:10:02 -04:00
README.rst readme: Update stale documentation links 2022-06-06 12:07:12 +02:00
VERSION version: Fix the EXTRAVERSION field 2022-06-05 20:11:17 +02:00
version.h.in cmake: version.h generation performed at build time 2022-02-08 07:50:24 -05:00
west.yml manifest: hal_nordic: update nrf_802154 2022-08-11 10:27:01 +02:00
zephyr-env.cmd
zephyr-env.sh everywhere: fix typos 2022-03-18 13:24:08 -04:00

.. raw:: html

   <a href="https://www.zephyrproject.org">
     <p align="center">
       <img src="doc/_static/images/logo-readme.svg">
     </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