mirror of
https://github.com/zephyrproject-rtos/zephyr
synced 2025-09-06 01:51:59 +00:00
Introduce a configurable boot delay option (defaulting to none) that happens right after printing a boot delay banner, #before calling main() in kernel/init.c:_main(), before taking timestamps for _main() and once all the infrastructure is in place. Move also the boot banner to happen after this delay. The rationale for this is some boards will boot really fast and print out some test case output in the serial port before the system that is monitoring the serial port is able to read from the serial port. This happens in MCUs whose serial port is embedded in a USB connection which also is used to power the MCU board. When powering it on by powering the USB port, there is a time it takes the host system to detect the USB connection, enumerate the serial port, configure it and load, start and read from the serial port. At this time, it might have printed the output of the serial port. While manually it is possible to press a reset button, on automation setups this adds a lot of overhead and cabling or modifications to the MCU that are easier (and cheaper) to overcome with this delay. Other options (like using a separate serial line) might not be possible or add a lot of cabling and cost, plus it'd also add extra build configuration. Change-Id: I2f4d1ba356de6cefa19b4ef5c9f19f87885d4dfd Signed-off-by: Inaky Perez-Gonzalez <inaky.perez-gonzalez@intel.com> |
||
---|---|---|
.known-issues | ||
arch | ||
boards | ||
doc | ||
drivers | ||
dts | ||
ext | ||
include | ||
kernel | ||
lib | ||
misc | ||
samples | ||
scripts | ||
subsys | ||
tests | ||
.checkpatch.conf | ||
.gitattributes | ||
.gitignore | ||
.gitlint | ||
.gitreview | ||
.mailmap | ||
.shippable.yml | ||
CODEOWNERS | ||
Kbuild | ||
Kconfig | ||
Kconfig.zephyr | ||
LICENSE | ||
MAINTAINERS | ||
Makefile | ||
Makefile.inc | ||
Makefile.test | ||
README.rst | ||
zephyr-env.sh |
Zephyr Project ############## 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 and RISC V, and a large number of `supported boards`_. 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. For a quick start, refer to the `Zephyr Introduction`_ and `Getting Started Guide`_. * **Releases**: Source code for Zephyr kernel releases are available at https://zephyrproject.org/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`_ wiki article. * **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 https://zephyrproject.org/doc. Additional documentation is maintained in the `Zephyr GitHub wiki`_. * **Issue Reporting and Tracking**: Requirements and Issue tracking is done in our JIRA system: https://jira.zephyrproject.org. You can browse through the reported issues and submit issues of your own. * **Mailing List**: The `Zephyr Mailing Lists`_ are perhaps the most convenient way to track developer discussions and to ask your own support questions to the Zephyr project community. You can also read through 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: https://www.zephyrproject.org/doc/boards/boards.html .. _Zephyr Introduction: https://www.zephyrproject.org/doc/introduction/introducing_zephyr.html .. _Getting Started Guide: https://www.zephyrproject.org/doc/getting_started/getting_started.html .. _Contribution Guide: https://github.com/zephyrproject-rtos/zephyr/wiki/Contribution-Guide .. _Zephyr GitHub wiki: https://github.com/zephyrproject-rtos/zephyr/wiki .. _Zephyr Mailing Lists: https://lists.zephyrproject.org/ .. _Sample and Demo Code Examples: https://www.zephyrproject.org/doc/samples/samples.html