diff options
Diffstat (limited to 'docs/index.rst')
-rw-r--r-- | docs/index.rst | 141 |
1 files changed, 94 insertions, 47 deletions
diff --git a/docs/index.rst b/docs/index.rst index 98e7805e8..eb3b74644 100644 --- a/docs/index.rst +++ b/docs/index.rst @@ -1,44 +1,45 @@ .. _docs-root: .. highlight:: sh -.. TODO(b/256680603) Remove query string from issue tracker link. +.. TODO: b/256680603 - Remove query string from issue tracker link. .. toctree:: :maxdepth: 1 :hidden: Home <self> - docs/getting_started + docs/overview + docs/get_started/index docs/concepts/index - module_guides - docs/release_notes/index + targets + Modules <module_guides> + docs/module_structure + changelog Mailing List <https://groups.google.com/forum/#!forum/pigweed> Chat Room <https://discord.gg/M9NSeTA> - docs/os_abstraction_layers + docs/os/index docs/size_optimizations - FAQ <docs/faq> + Code Editor Support <docs/editors> third_party_support Source Code <https://cs.pigweed.dev/pigweed> Code Reviews <https://pigweed-review.googlesource.com> Issue Tracker <https://issues.pigweed.dev/issues?q=status:open> - docs/contributing - docs/code_of_conduct - docs/embedded_cpp_guide - Style Guide <docs/style_guide> + docs/contributing/index + docs/infra/index Automated Analysis <automated_analysis> - targets Build System <build_system> SEEDs <seed/0000-index> - docs/module_structure + kudzu/docs + Eng Blog <docs/blog/index> ======= Pigweed ======= Pigweed is an open source collection of embedded-targeted libraries--or as we -like to call them, modules. These modules are building blocks and -infrastructure that enable faster and more reliable development on -small-footprint MMU-less 32-bit microcontrollers like the STMicroelectronics -STM32L452 or the Nordic nRF52832. +like to call them, :ref:`modules <docs-glossary-module>`. These modules are +building blocks and infrastructure that enable faster and more reliable +development on small-footprint MMU-less 32-bit microcontrollers like the +STMicroelectronics STM32L452 or the Nordic nRF52832. .. attention:: @@ -47,15 +48,29 @@ STM32L452 or the Nordic nRF52832. in our `chat room <https://discord.gg/M9NSeTA>`_ or on the `mailing list <https://groups.google.com/forum/#!forum/pigweed>`_. +-------------------------- +Talk to us at Pigweed Live +-------------------------- +.. pigweed-live:: + +--------------------- +What's New In Pigweed +--------------------- +.. include:: changelog.rst + :start-after: .. changelog_highlights_start + :end-before: .. changelog_highlights_end + +See :ref:`docs-changelog-latest` in our changelog for details. + +--------------- Getting Started --------------- -Check out `Pigweed Sample Project <https://pigweed.googlesource.com/pigweed/sample_project/+/main/README.md>`_ -to see how to use Pigweed as a library in your broader project. - -Visit the :ref:`docs-getting-started` guide to learn how to bootstrap and -activate a Pigweed environment, build Pigweed for a specific host or device, -run tests, and more. +Check out our :ref:`docs-get-started` landing page. We've got a guide that +shows you how to use Pigweed in a new, Bazel-based project (the recommended +path), sample code for GN-based projects, a tutorial on getting set up to +contribute to upstream Pigweed, and more. +------------------------ What does Pigweed offer? ------------------------ There are many modules in Pigweed; this section showcases a selection that @@ -63,7 +78,7 @@ produce visual output. For more information about the different Pigweed module offerings, refer to :ref:`docs-module-guides` section. ``pw_watch`` - Build, flash, run, & test on save ------------------------------------------------- +================================================ In the web development space, file system watchers are prevalent. These watchers trigger a web server reload on source change, making development much faster. In the embedded space, file system watchers are less prevalent; @@ -78,12 +93,12 @@ and verifying the test runs as expected. Once this is set up, you can attach multiple devices to run tests in a distributed manner to reduce the time it takes to run tests. -.. image:: docs/images/pw_watch_on_device_demo.gif +.. image:: https://storage.googleapis.com/pigweed-media/pw_watch_on_device_demo.gif :width: 800 :alt: pw watch running on-device tests ``pw_presubmit`` - Vacuum lint on every commit ----------------------------------------------- +============================================== Presubmit checks are essential tools, but they take work to set up, and projects don’t always get around to it. The :ref:`module-pw_presubmit` module provides tools for setting up high quality presubmit checks for any project. We @@ -96,12 +111,12 @@ With ``pw format``, you can format C, C++, Python, GN, and Go code according to configurations defined by your project. ``pw format`` leverages existing tools like ``clang-format``, and it’s simple to add support for new languages. -.. image:: pw_presubmit/docs/pw_presubmit_demo.gif +.. image:: https://storage.googleapis.com/pigweed-media/pw_presubmit_demo.gif :width: 800 :alt: pw presubmit demo ``pw_env_setup`` - Cross platform embedded compiler setup ---------------------------------------------------------- +========================================================= A classic problem in the embedded space is reducing the **time from git clone to having a binary executing on a device**. An entire suite of tools is needed for building non-trivial production embedded projects, and need to be @@ -127,12 +142,12 @@ turn inflates a virtual environment. The tooling is installed into your workspace, and makes no changes to your system. This tooling is designed to be reused by any project. -.. image:: docs/images/pw_env_setup_demo.gif +.. image:: https://storage.googleapis.com/pigweed-media/pw_env_setup_demo.gif :width: 800 :alt: pw environment setup demo ``pw_unit_test`` - Embedded testing for MCUs --------------------------------------------- +============================================ Unit testing is important, and Pigweed offers a portable library that’s broadly compatible with `Google Test <https://github.com/google/googletest>`_. Unlike Google Test, :ref:`module-pw_unit_test` is built on top of embedded friendly @@ -147,34 +162,66 @@ build, the result is a flexible and powerful setup that enables easily developing code on your desktop (with tests), then running the same tests on-device. -.. image:: docs/images/pw_status_test.png +.. image:: https://storage.googleapis.com/pigweed-media/pw_status_test.png :width: 800 :alt: pw_status test run natively on host And more! ---------- +========= Here is a selection of interesting modules: -- :ref:`module-pw_cpu_exception_cortex_m` - Robust low level hardware fault - handler for ARM Cortex-M; the handler even has unit tests written in assembly - to verify nested-hardware-fault handling! +.. grid:: 3 + + .. grid-item-card:: :octicon:`cpu` pw_cpu_exception + :link: module-pw_cpu_exception_cortex_m + :link-type: ref + + An interface for entering CPU exception handlers. Includes robust low + level hardware fault handling for ARM Cortex-M; the handler even has unit + tests written in assembly to verify nested-hardware-fault handling! + + .. grid-item-card:: :octicon:`code-square` pw_polyfill + :link: module-pw_polyfill + :link-type: ref + + This module makes it easier to work with different C++ standards in one + codebase. + + .. grid-item-card:: :octicon:`container` pw_tokenizer + :link: module-pw_tokenizer + :link-type: ref + + Replace string literals from log statements with 32-bit tokens, to reduce + flash use, reduce logging bandwidth, and save formatting cycles from log + statements at runtime. + +.. grid:: 3 + + .. grid-item-card:: :octicon:`database` pw_kvs + :link: module-pw_kvs + :link-type: ref + + A key-value-store implementation for flash-backed persistent storage with + integrated wear levelling. This is a lightweight alternative to a file + system for embedded devices. + + .. grid-item-card:: :octicon:`paper-airplane` pw_protobuf + :link: module-pw_protobuf + :link-type: ref -- :ref:`module-pw_polyfill` - Similar to JavaScript “polyfill” libraries, this - module provides selected C++17 standard library components that are compatible - with C++14. + An early preview of our wire-format-oriented protocol buffer + implementation. This protobuf compiler makes a different set of + implementation tradeoffs than the most popular protocol buffer library in + this space, nanopb. -- :ref:`module-pw_tokenizer` - Replace string literals from log statements with - 32-bit tokens, to reduce flash use, reduce logging bandwidth, and save - formatting cycles from log statements at runtime. + .. grid-item-card:: :octicon:`device-desktop` pw_console + :link: module-pw_console + :link-type: ref -- :ref:`module-pw_kvs` - A key-value-store implementation for flash-backed - persistent storage with integrated wear levelling. This is a lightweight - alternative to a file system for embedded devices. + Interactive Python repl and log viewer designed to be a a complete + solution for interacting with hardware devices using :ref:`module-pw_rpc` + over a :ref:`module-pw_hdlc` transport. -- :ref:`module-pw_protobuf` - An early preview of our wire-format-oriented - protocol buffer implementation. This protobuf compiler makes a different set - of implementation tradeoffs than the most popular protocol buffer library in - this space, nanopb. See the :ref:`docs-module-guides` for the complete list of modules and their documentation. |