▼Hardware APIs | This group of libraries provides a thin and efficient C API / abstractions to access the RP2040 hardware without having to read and write hardware registers directly |
hardware_adc | Analog to Digital Converter (ADC) API |
hardware_base | Low-level types and (atomic) accessors for memory-mapped hardware registers |
hardware_claim | Lightweight hardware resource management |
hardware_clocks | Clock Management API |
hardware_divider | Low-level hardware-divider access |
▼hardware_dma | DMA Controller API |
channel_config | DMA channel configuration |
hardware_exception | Methods for setting processor exception handlers |
hardware_flash | Low level flash programming and erase API |
hardware_gpio | General Purpose Input/Output (GPIO) API |
hardware_i2c | I2C Controller API |
▼hardware_interp | Hardware Interpolator API |
interp_config | Interpolator configuration |
hardware_irq | Hardware interrupt handling |
▼hardware_pio | Programmable I/O (PIO) API |
sm_config | PIO state machine configuration |
pio_instructions | PIO instruction encoding |
hardware_pll | Phase Locked Loop control APIs |
hardware_pwm | Hardware Pulse Width Modulation (PWM) API |
hardware_resets | Hardware Reset API |
hardware_rtc | Hardware Real Time Clock API |
hardware_spi | Hardware SPI API |
hardware_sync | Low level hardware spin locks, barrier and processor event APIs |
hardware_timer | Low-level hardware timer API |
hardware_uart | Hardware UART API |
hardware_vreg | Voltage Regulation API |
hardware_watchdog | Hardware Watchdog Timer API |
hardware_xosc | Crystal Oscillator (XOSC) API |
▼High Level APIs | This group of libraries provide higher level functionality that isn't hardware related or provides a richer set of functionality above the basic hardware interfaces |
▼pico_async_context | An async_context provides a logically single-threaded context for performing work, and responding to asynchronous events. Thus an async_context instance is suitable for servicing third-party libraries that are not re-entrant |
async_context_freertos | |
async_context_poll | |
async_context_threadsafe_background | |
▼pico_multicore | Adds support for running code on the second processor core (core 1) |
fifo | Functions for the inter-core FIFOs |
lockout | Functions to enable one core to force the other core to pause execution in a known state |
pico_i2c_slave | Functions providing an interrupt driven I2C slave interface |
pico_rand | Random Number Generator API |
pico_stdlib | Aggregation of a core subset of Raspberry Pi Pico SDK libraries used by most executables along with some additional utility methods. Including pico_stdlib gives you everything you need to get a basic program running which prints to stdout or flashes a LED |
▼pico_sync | Synchronization primitives and mutual exclusion |
critical_section | Critical Section API for short-lived mutual exclusion safe for IRQ and multi-core |
lock_core | Base synchronization/lock primitive support |
mutex | Mutex API for non IRQ mutual exclusion between cores |
sem | Semaphore API for restricting access to a resource |
▼pico_time | API for accurate timestamps, sleeping, and time based callbacks |
timestamp | Timestamp functions relating to points in time (including the current time) |
sleep | Sleep functions for delaying execution in a lower power state |
alarm | Alarm functions for scheduling future execution |
repeating_timer | Repeating Timer functions for simple scheduling of repeated execution |
pico_unique_id | Unique device ID access API |
▼pico_util | Useful data structures and utility functions |
datetime | Date/Time formatting |
pheap | Pairing Heap Implementation |
queue | Multi-core and IRQ safe queue implementation |
▼Third-party Libraries | Third party libraries for implementing high level functionality |
tinyusb_device | TinyUSB Device-mode support for the RP2040. The TinyUSB documentation site can be found here |
tinyusb_host | TinyUSB Host-mode support for the RP2040 |
▼Networking Libraries | Functions for implementing networking |
pico_btstack | Integration/wrapper libraries for BTstack the documentation for which is here |
▼pico_lwip | Integration/wrapper libraries for lwIP the documentation for which is here |
pico_lwip_arch | LwIP compiler adapters. This is not included by default in pico_lwip in case you wish to implement your own |
pico_lwip_freertos | Glue library for integration lwIP in NO_SYS=0 mode with the SDK. Simple init and deinit are all that is required to hook up lwIP (with full blocking API support) via an async_context instance |
pico_lwip_nosys | Glue library for integration lwIP in NO_SYS=1 mode with the SDK. Simple init and deinit are all that is required to hook up lwIP via an async_context instance |
▼pico_cyw43_driver | A wrapper around the lower level cyw43_driver, that integrates it with pico_async_context for handling background work |
Pico_bstack_cyw43 | Low-level Bluetooth HCI support |
▼pico_cyw43_arch | Architecture for integrating the CYW43 driver (for the wireless on Pico W) and lwIP (for TCP/IP stack) into the SDK. It is also necessary for accessing the on-board LED on Pico W |
▼cyw43_driver | Driver used for Pico W wireless |
cyw43_ll | Low Level CYW43 driver interface |
▼Runtime Infrastructure | Libraries that are used to provide efficient implementation of certain language level and C library functions, as well as CMake INTERFACE libraries abstracting the compilation and link steps in the SDK |
boot_stage2 | Second stage boot loaders responsible for setting up external flash |
pico_base | Core types and macros for the Raspberry Pi Pico SDK. This header is intended to be included by all source code as it includes configuration headers and overrides in the correct order |
pico_binary_info | Binary info is intended for embedding machine readable information with the binary in FLASH |
pico_bit_ops | Optimized bit manipulation functions. Additionally provides replacement implementations of the compiler built-ins __builtin_popcount, __builtin_clz and __bulitin_ctz |
pico_bootrom | Access to functions and data in the RP2040 bootrom |
pico_bootsel_via_double_reset | When the 'pico_bootsel_via_double_reset' library is linked, a function is injected before main() which will detect when the system has been reset twice in quick succession, and enter the USB ROM bootloader (BOOTSEL mode) when this happens. This allows a double tap of a reset button on a development board to be used to enter the ROM bootloader, provided this library is always linked |
pico_cxx_options | Non-code library controlling C++ related compile options |
pico_divider | Optimized 32 and 64 bit division functions accelerated by the RP2040 hardware divider. Additionally provides integration with the C / and % operators |
pico_double | Optimized double-precision floating point functions |
pico_float | Optimized single-precision floating point functions |
pico_int64_ops | Optimized replacement implementations of the compiler built-in 64 bit multiplication |
pico_malloc | Multi-core safety for malloc, calloc and free |
pico_mem_ops | Provides optimized replacement implementations of the compiler built-in memcpy, memset and related functions: |
pico_platform | Macros and definitions (and functions when included by non assembly code) for the RP2 family device / architecture to provide a common abstraction over low level compiler / platform specifics |
pico_printf | Compact replacement for printf by Marco Paland (info@.nosp@m.pala.nosp@m.nd.co.nosp@m.m) |
pico_runtime | Aggregate runtime support including pico_bit_ops, pico_divider, pico_double, pico_int64_ops, pico_float, pico_malloc, pico_mem_ops and pico_standard_link |
▼pico_stdio | Customized stdio support allowing for input and output from UART, USB, semi-hosting etc |
pico_stdio_semihosting | Experimental support for stdout using RAM semihosting |
pico_stdio_uart | Support for stdin/stdout using UART |
pico_stdio_usb | Support for stdin/stdout over USB serial (CDC) |
pico_standard_link | Standard link step providing the basics for creating a runnable binary |
▼External API Headers | Headers for interfaces that are shared with code outside of the SDK |
boot_picoboot | Header file for the PICOBOOT USB interface exposed by an RP2040 in BOOTSEL mode |
boot_uf2 | Header file for the UF2 format supported by an RP2040 in BOOTSEL mode |
pico_usb_reset_interface | Definition for the reset interface that may be exposed by the pico_stdio_usb library |