Find a file
Andy Ross b8ffd9acd6 sys_clock: Make clock_always_on true by default
This flag is an indication to the timer driver that the OS doesn't
care about rollover conditions of the tick count while idling, so the
system doesn't need to wake up once per counter flip[1].  Obviously in
that circumstance values returned from k_uptime_get_32() are going to
be wrong, so the implementation had an assert to check for misuse.

But no one understood that from the docs, so the only place these APIs
were used in practice were as "guards" around code that needed to call
k_uptime_get_32(), even though that's 100% wrong per docs!

Clarify the docs.  Remove the incorrect guards.  Change the flag to
initialize to true so that uptime isn't broken-by-default in tickless
mode.  Also move the implemenations of the functions out of the
header, as there's no good reason for these to need to be inlined.

[1] Which can be significant.  A 100MHz ARM using the 24 bit SysTick
    counter rolls over at about 6 Hz, and if it had to come out of
    idle at that rate it would be a significant power issue that would
    swamp the gains from tickless.  Obviously systems with slow
    counters like nRF or 64 bit ones like RISC-V or x86's TSC aren't
    as affected.

Signed-off-by: Andy Ross <andrew.j.ross@intel.com>
2018-10-16 15:03:10 -04:00
.known-issues doc: known issues: Fix regexes for Windows 2018-07-12 23:11:46 -04:00
arch sys_clock: Make sys_clock_hw_cycles_per_tick() a proper API 2018-10-16 15:03:10 -04:00
boards boards: same70: Enable SPI0 on dts 2018-10-16 14:01:29 -05:00
cmake cmake: Fix 'run' command of native_posix 2018-10-16 10:50:29 -04:00
doc tests/samples: cleanup tags 2018-10-16 09:17:51 -04:00
drivers sys_clock: Make sys_clock_hw_cycles_per_tick() a proper API 2018-10-16 15:03:10 -04:00
dts drivers: add SSD1673 EPD controller driver 2018-10-16 14:54:47 -04:00
ext drivers: wdt: Migrate qmsi wdt driver api to new wdt api interface. 2018-10-14 14:16:03 -04:00
include sys_clock: Make clock_always_on true by default 2018-10-16 15:03:10 -04:00
kernel sys_clock: Make clock_always_on true by default 2018-10-16 15:03:10 -04:00
lib libc: minimal: fcntl.h: Fix include guards for the current path 2018-10-10 16:38:13 -04:00
misc coccicnelle: Ignore return of memset 2018-09-14 16:55:37 -04:00
samples sys_clock: Make clock_always_on true by default 2018-10-16 15:03:10 -04:00
scripts sanitycheck: whitelist font entry section 2018-10-16 14:54:47 -04:00
soc boards: same70: Enable SPI0 on dts 2018-10-16 14:01:29 -05:00
subsys sys_clock: Make clock_always_on true by default 2018-10-16 15:03:10 -04:00
tests sys_clock: Make sys_clock_hw_cycles_per_tick() a proper API 2018-10-16 15:03:10 -04:00
.checkpatch.conf checkpatch: define typedefsfile to deal with a few false positives 2017-10-09 10:43:05 -04:00
.codecov.yml ci: add .codecov.yml for codecov.io configuration 2018-01-03 13:12:03 -05:00
.gitattributes First commit 2015-04-10 16:44:37 -07:00
.gitignore .gitignore: only ignore build directories 2018-10-12 11:37:48 +02:00
.gitlint gitlint: use custom rule for line length violations 2018-02-07 15:28:36 -05:00
.mailmap mailmap: add entry for ruuddw 2018-07-05 09:57:23 -04:00
.shippable.yml shippable: Add support for nrf52_bsim board 2018-10-15 09:36:37 -04:00
.uncrustify.cfg uncrustify: Add a rule to remove space inside function argument 2018-10-16 09:50:03 -04:00
CMakeLists.txt Revert "linker: warn about orphan sections" 2018-10-14 12:14:04 -04:00
CODEOWNERS CODEOWNERS: update logging and shell code owners 2018-10-15 09:15:44 -04:00
CONTRIBUTING.rst docs: fixed documenation pointers 2018-09-12 12:03:18 -04:00
Kconfig license: Replace Apache boilerplate with SPDX tag 2017-01-19 03:50:58 +00:00
Kconfig.zephyr build: enable shields dir treatment 2018-09-21 18:51:26 -04:00
LICENSE add top level Apache 2.0 license file 2016-02-05 20:24:37 -05:00
Makefile doc: document build target for PDF 2018-09-11 14:55:43 -04:00
README.rst docs: fixed documenation pointers 2018-09-12 12:03:18 -04:00
VERSION release: Post-release patch level update 2018-09-10 22:42:12 -04:00
version.h.in Introduce cmake-based rewrite of KBuild 2017-11-08 20:00:22 -05:00
zephyr-env.cmd scripts: fix west launcher for macOS 2018-09-26 00:33:45 +02:00
zephyr-env.sh env: Remove usage of -P in grep 2017-07-15 11:12:35 -07:00

.. 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
***************

To start developing Zephyr applications refer to the `Getting Started Guide`_
in the `Zephyr Documentation`_ pages.
A brief introduction to Zephyr can be found in the  `Zephyr Introduction`_
page.

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

The Zephyr Project Developer Community includes developers from member
organizations and the general community all joining in the development of
software within the Zephyr Project. Members contribute and discuss ideas,
submit bugs and bug fixes, and provide training. They also help those in need
through the community's forums such as mailing lists and IRC channels. Anyone
can join the developer community and the community is always willing to help
its members and the User Community to get the most out of the Zephyr Project.

Welcome to the Zephyr community!

Resources
*********

Here's a quick summary of resources to find your way around the Zephyr Project
support systems:

* **Zephyr Project Website**: The https://zephyrproject.org website is the
  central source of information about the Zephyr Project. On this site, you'll
  find background and current information about the project as well as all the
  relevant links to project material.

* **Releases**: Source code for Zephyr kernel releases are available at
  https://zephyrproject.org/developers/#downloads. On this page,
  you'll find release information, and links to download or clone source
  code from our GitHub repository.  You'll also find links for the Zephyr
  SDK, a moderated collection of tools and libraries used to develop your
  applications.

* **Source Code in GitHub**: Zephyr Project source code is maintained on a
  public GitHub repository at https://github.com/zephyrproject-rtos/zephyr.
  You'll find information about getting access to the repository and how to
  contribute to the project in this `Contribution Guide`_ document.

* **Samples Code**: In addition to the kernel source code, there are also
  many documented `Sample and Demo Code Examples`_ that can help show you
  how to use Zephyr services and subsystems.

* **Documentation**: Extensive Project technical documentation is developed
  along with the Zephyr kernel itself, and can be found at
  http://docs.zephyrproject.org.  Additional documentation is maintained in
  the `Zephyr GitHub wiki`_.

* **Cross-reference**: Source code cross-reference for the Zephyr
  kernel and samples code is available at
  https://elixir.bootlin.com/zephyr/latest/source.

* **Issue Reporting and Tracking**: Requirements and Issue tracking is done in
  the Github issues system: https://github.com/zephyrproject-rtos/zephyr/issues.
  You can browse through the reported issues and submit issues of your own.

* **Security-related Issue Reporting and Tracking**: For security-related
  inquiries or reporting suspected security-related bugs in the Zephyr OS,
  please send email to vulnerabilities@zephyrproject.org.  We will assess and
  fix flaws according to our security policy outlined in the Zephyr Project
  `Security Overview`_.

  Security related issue tracking is done in JIRA.  The location of this JIRA
  is https://zephyrprojectsec.atlassian.net.

* **Mailing List**: The `Zephyr Development mailing list`_ is perhaps the most convenient
  way to track developer discussions and to ask your own support questions to
  the Zephyr project community.  There are also specific `Zephyr mailing list
  subgroups`_ for announcements, builds, marketing, and Technical
  Steering Committee notes, for example.
  You can read through the message archives to follow
  past posts and discussions, a good thing to do to discover more about the
  Zephyr project.

* **IRC Chatting**: You can chat online with the Zephyr project developer
  community and other users in our IRC channel #zephyrproject on the
  freenode.net IRC server. You can use the http://webchat.freenode.net web
  client or use a client-side application such as pidgin.


.. _supported boards: http://docs.zephyrproject.org/latest/boards/boards.html
.. _Zephyr Documentation: http://docs.zephyrproject.org
.. _Zephyr Introduction: http://docs.zephyrproject.org/latest/introduction/introducing_zephyr.html
.. _Getting Started Guide: http://docs.zephyrproject.org/latest/getting_started/getting_started.html
.. _Contribution Guide: http://docs.zephyrproject.org/latest/contribute/contribute_guidelines.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/samples.html
.. _Security Overview: http://docs.zephyrproject.org/latest/security/security-overview.html