xref: /aosp_15_r20/external/pigweed/targets/rp2040/target_docs.rst (revision 61c4878ac05f98d0ceed94b57d316916de578985)
1.. _target-rp2040:
2
3===================
4Raspberry Pi RP2040
5===================
6.. _Raspberry Pi RP2040: https://www.raspberrypi.com/documentation/microcontrollers/rp2040.html
7.. _Raspberry Pi Pico: https://www.raspberrypi.com/products/raspberry-pi-pico/
8
9This page explains Pigweed's support for the `Raspberry Pi RP2040`_ microcontroller
10and for boards built on top of the RP2040, such as the `Raspberry Pi Pico`_.
11
12--------------
13Intended usage
14--------------
15Pigweed's :ref:`mission <docs-mission>` is to help large teams
16develop embedded systems sustainably, robustly, and rapidly.
17Our support for the RP2040 revolves around making it easier for
18these teams to develop complex prototypes or mass market products
19on top of the RP2040. Our main goals are to make it easy to:
20
21.. _C/C++ SDK: https://www.raspberrypi.com/documentation/microcontrollers/c_sdk.html
22
23* Do your end-to-end development lifecycle (building, flashing, testing, etc.)
24  in Bazel.
25* Author your embedded system in portable C++. You can write most of your
26  system on top of Pigweed's hardware-agnostic :ref:`modules <docs-glossary-module>`.
27  If there's anything not covered by Pigweed's modules, you can fallback
28  to using the official `C/C++ SDK`_ directly.
29
30.. _MicroPython SDK: https://www.raspberrypi.com/documentation/microcontrollers/micropython.html
31
32If you're building relatively simple stuff solely for the RP2040 and just want
33to get everything working very quickly and easily, then Pigweed probably won't
34be a good fit for you. You'll probably be happier with the official
35`MicroPython SDK`_ or the official `C/C++ SDK`_.
36
37--------
38Examples
39--------
40.. _Sense showcase: https://pigweed.googlesource.com/pigweed/showcase/sense/
41
42The `Sense showcase`_ is our work-in-progress demonstration of using
43the RP2040, Bazel, and Pigweed together. The showcase is scheduled to be
44completed in July 2024.
45
46-------
47Modules
48-------
49Most Pigweed :ref:`modules <docs-glossary-module>` work on all
50hardware platforms. A few areas such as I2C require integrating with
51a specific Pigweed module.
52
53.. csv-table::
54   :header: "Description", "Module"
55
56   "Time primitives", ":ref:`module-pw_chrono_rp2040`"
57   "GPIO (digital I/O)", ":ref:`module-pw_digital_io_rp2040`"
58   "I2C", ":ref:`module-pw_i2c_rp2040`"
59   "SPI", ":ref:`module-pw_spi_rp2040`"
60   "Basic I/O for bringup and debugging", ":ref:`module-pw_sys_io_rp2040`"
61
62.. toctree::
63   :maxdepth: 1
64   :hidden:
65
66   Upstream Pigweed <upstream>
67