blob: 34cca1429f748c8ab696ce4cf28c965149fdc2ac [file] [log] [blame]
.. _target-rp2040:
===================
Raspberry Pi RP2040
===================
.. _Raspberry Pi RP2040: https://www.raspberrypi.com/documentation/microcontrollers/rp2040.html
.. _Raspberry Pi Pico: https://www.raspberrypi.com/products/raspberry-pi-pico/
This page explains Pigweed's support for the `Raspberry Pi RP2040`_ microcontroller
and for boards built on top of the RP2040, such as the `Raspberry Pi Pico`_.
--------------
Intended usage
--------------
Pigweed's :ref:`mission <docs-mission>` is to help large teams
develop embedded systems sustainably, robustly, and rapidly.
Our support for the RP2040 revolves around making it easier for
these teams to develop complex prototypes or mass market products
on top of the RP2040. Our main goals are to make it easy to:
.. _C/C++ SDK: https://www.raspberrypi.com/documentation/microcontrollers/c_sdk.html
* Do your end-to-end development lifecycle (building, flashing, testing, etc.)
in Bazel.
* Author your embedded system in portable C++. You can write most of your
system on top of Pigweed's hardware-agnostic :ref:`modules <docs-glossary-module>`.
If there's anything not covered by Pigweed's modules, you can fallback
to using the official `C/C++ SDK`_ directly.
.. _MicroPython SDK: https://www.raspberrypi.com/documentation/microcontrollers/micropython.html
If you're building relatively simple stuff solely for the RP2040 and just want
to get everything working very quickly and easily, then Pigweed probably won't
be a good fit for you. You'll probably be happier with the official
`MicroPython SDK`_ or the official `C/C++ SDK`_.
--------
Examples
--------
.. _RP2040 showcase: https://pigweed.googlesource.com/pigweed/showcase/rp2/
The `RP2040 showcase`_ is our work-in-progress demonstration of using
the RP2040, Bazel, and Pigweed together. The showcase is scheduled to be
completed in July 2024.
-------
Modules
-------
Most Pigweed :ref:`modules <docs-glossary-module>` work on all
hardware platforms. A few areas such as I2C require integrating with
a specific Pigweed module.
.. csv-table::
:header: "Description", "Module"
"Time primitives", ":ref:`module-pw_chrono_rp2040`"
"GPIO (digital I/O)", ":ref:`module-pw_digital_io_rp2040`"
"I2C", ":ref:`module-pw_i2c_rp2040`"
"SPI", ":ref:`module-pw_spi_rp2040`"
"Basic I/O for bringup and debugging", ":ref:`module-pw_sys_io_rp2040`"
.. toctree::
:maxdepth: 1
:hidden:
Upstream Pigweed <upstream>