Zephyr Project Documentation 发发发布布布 1.9.0

Zephyr Project Documentation 发发发布布布 1.9.0

Zephyr Project Documentation 发发发布布布 1.9.0 many 8月月月 28, 2017 Contents 1 目目目UUU 3 2 249 i ii Zephyr Project Documentation, 发发发布布布 1.9.0 ÐÐÐ:::: SMH,的-文Hc(û译S-,¨可以( 这里 查看v它H,。 s于é期发布的v它H,的áo,请查阅 zephyr_release_notes。 Zephyr OS 的;Sã码uª开源O® Apache 2.0 license ,¨可以通Ç查看 GitHub 仓库 -的 LINCENSE 文件 查看该O®的wS内¹。ddK外,Zephyr OS 还导e/引(了一些o件包、脚,以Êv它文件,这些文件u ªO® Zephyr_Licensing。 Zephyr y目的源ã码维¤( GitHub 仓库 -。 Contents 1 Zephyr Project Documentation, 发发发布布布 1.9.0 2 Contents CHAPTER 1 目U Introducing Zephyr 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. The full list of supported boards can be found here. Licensing Zephyr uses the Apache 2.0 license (as found in the LICENSE file in the project’s GitHub repo). There are some imported or reused components of the Zephyr project that use other licensing, as described in Zephyr_Licensing. Distinguishing Features The Zephyr kernel offers a number of features that distinguish it from other small-footprint OSes: 1. Single address-space. Combines application-specific code with a custom kernel to create a monolithic image that gets loaded and executed on a system’s hardware. Both the application code and kernel code execute in a single shared address space. 2. Highly configurable. Allows an application to incorporate only the capabilities it needs as it needs them, and to specify their quantity and size. 3. Compile-time resource definition. Allows system resources to be defined at compile-time, which reduces code size and increases performance. 4. Minimal error checking. Provides minimal run-time error checking to reduce code size and increase perfor- mance. An optional error-checking infrastructure is provided to assist in debugging during application develop- ment. 5. Extensive suite of services. Offers a number of familiar services for development: 3 Zephyr Project Documentation, 发发发布布布 1.9.0 • Multi-threading Services for priority-based, non-preemptive and preemptive threads with optional round robin time-slicing. • Interrupt Services for compile-time registration of interrupt handlers. • Memory Allocation Services for dynamic allocation and freeing of fixed-size or variable-size memory blocks. • Inter-thread Synchronization Services for binary semaphores, counting semaphores, and mutex semaphores. • Inter-thread Data Passing Services for basic message queues, enhanced message queues, and byte streams. • Power Management Services such as tickless idle and an advanced idling infrastructure. Community Support The Zephyr Project Developer Community includes developers from member organizations and the general commu- nity 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 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 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. 4 Chapter 1. 目目目UUU Zephyr Project Documentation, 发发发布布布 1.9.0 Fundamental Terms and Concepts See glossary Getting Started Guide Use this guide to get started with your Zephyr development. Set Up the Development Environment The Zephyr project supports these operating systems: • Linux • Mac OS • Windows 8.1 Use the following procedures to create a new development environment. Development Environment Setup on Linux This section describes how to set up a Linux development system. After completing these steps, you will be able to compile and run your Zephyr applications on the following Linux distributions: • Ubuntu 16.04 LTS 64-bit • Fedora 25 64-bit Where needed, alternative instructions are listed for Ubuntu and Fedora. Installing the Host’s Operating System Building the project’s software components including the kernel has been tested on Ubuntu and Fedora systems. Instructions for installing these OSes are beyond the scope of this document. Update Your Operating System Before proceeding with the build, ensure your OS is up to date. On Ubuntu, you’ll first need to update the local database list of available packages before upgrading: $ sudo apt-get update $ sudo apt-get upgrade On Fedora: $ sudo dnf upgrade Note that having a newer version available for an installed package (and reported by dnf check-update) does not imply a subsequent dnf upgrade will install it, because it must also ensure dependencies and other restrictions are satisfied. 1.2. Getting Started Guide 5 Zephyr Project Documentation, 发发发布布布 1.9.0 Installing Requirements and Dependencies Install the following with either apt-get or dnf. Install the required packages in a Ubuntu host system with: $ sudo apt-get install git make gcc g++ ncurses-dev \ doxygen dfu-util device-tree-compiler python3-ply python3-pip Install the required packages in a Fedora host system with: $ sudo dnf group install "Development Tools" $ sudo dnf install git make gcc glibc-static \ libstdc++-static ncurses-devel \ doxygen dfu-util dtc python3-pip \ python3-ply python3-yaml dfu-util dtc python3-pykwalify Install additional packages required for development with Zephyr: $ pip3 install --user -r scripts/requirements.txt Installing the Zephyr Software Development Kit Zephyr’s SDK (Software Development Kit) contains all necessary tools and cross-compilers needed to build the kernel on all supported architectures. Additionally, it includes host tools such as a custom QEMU and a host compiler for building host tools if necessary. The SDK supports the following architectures: • X86 (Intel Architecture 32 bits) • X86 IAMCU ABI (Intel Architecture 32 bits IAMCU ABI) • ARM (Advanced RISC Machines) • ARC (Argonaut RISC Core) • NIOSII •X TENSA Follow these steps to install the SDK on your Linux host system. 1. Download the latest SDK self-extractable binary. Visit the Zephyr SDK archive to find all available SDK versions, including the latest version. Alternatively, you can use the following command to download the desired version (0.9.1 can be replaced with the version number you wish to download). $ wget https://github.com/zephyrproject-rtos/meta-zephyr-sdk/releases/download/0. ,!9.1/zephyr-sdk-0.9.1-setup.run 2. Run the installation binary, follow this example: ÍÍÍ要要要: Make sure you have installed all required packages for your host distribution as described in the previous section linux_required_software otherwise the SDK installation will fail. $ chmod +x zephyr-sdk-<version>-setup.run $ ./zephyr-sdk-<version>-setup.run 6 Chapter 1. 目目目UUU Zephyr Project Documentation, 发发发布布布 1.9.0 There is no need to use sudo if the SDK is installed in the current user’s home directory. 3. Follow the installation instructions on the screen. The toolchain’s default installation location is /opt/ zephyr-sdk/. To install in the default installation location, you will need to use sudo. It is recommended to install the SDK in your home directory and not in a system directory. 4. To use the Zephyr SDK, export the following

View Full Text

Details

  • File Type
    pdf
  • Upload Time
    -
  • Content Languages
    English
  • Upload User
    Anonymous/Not logged-in
  • File Pages
    253 Page
  • File Size
    -

Download

Channel Download Status
Express Download Enable

Copyright

We respect the copyrights and intellectual property rights of all users. All uploaded documents are either original works of the uploader or authorized works of the rightful owners.

  • Not to be reproduced or distributed without explicit permission.
  • Not used for commercial purposes outside of approved use cases.
  • Not used to infringe on the rights of the original creators.
  • If you believe any content infringes your copyright, please contact us immediately.

Support

For help with questions, suggestions, or problems, please contact us