▼Hardware APIs | |
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 API |
hardware_clocks | Clock Management API |
hardware_divider | RP2040 Low Low-level hardware-divider API. Non-RP2040 platforms provide software versions of all the functions |
hardware_dcp | Assembly macros for the Double Coprocessor |
►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_hazard3 | Accessors for Hazard3-specific RISC-V CSRs, and intrinsics for Hazard3 custom instructions |
hardware_i2c | I2C Controller API |
►hardware_interp | Hardware Interpolator API |
interp_config | Interpolator configuration |
hardware_irq | Hardware interrupt handling API |
►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_powman | Power Management API |
hardware_pwm | Hardware Pulse Width Modulation (PWM) API |
hardware_resets | Hardware Reset API |
hardware_riscv | Accessors for standard RISC-V hardware (mainly CSRs) |
hardware_riscv_platform_timer | Accessors for standard RISC-V platform timer (mtime/mtimecmp), available on Raspberry Pi microcontrollers with RISC-V processors |
hardware_rtc | Hardware Real Time Clock API |
hardware_rcp | Inline functions and assembly macros for the Redundancy Coprocessor |
hardware_spi | Hardware SPI API |
hardware_sha256 | Hardware SHA-256 Accelerator API |
hardware_sync | Low level hardware spin locks, barrier and processor event APIs |
hardware_ticks | Hardware Tick API |
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 | |
pico_aon_timer | High Level "Always on Timer" Abstraction |
►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_freertos provides an implementation of async_context that handles asynchronous work in a separate FreeRTOS task |
async_context_poll | Async_context_poll provides an implementation of async_context that is intended for use with a simple polling loop on one core. It is not thread safe |
async_context_threadsafe_background | Async_context_threadsafe_background provides an implementation of async_context that handles asynchronous work in a low priority IRQ, and there is no need for the user to poll for work |
pico_bootsel_via_double_reset | Optional support to make fast double reset of the system enter BOOTSEL mode |
pico_flash | High level flash API |
pico_i2c_slave | Functions providing an interrupt driven I2C slave interface |
►pico_multicore | Adds support for running code on, and interacting with the second processor core (core 1) |
fifo | Functions for the inter-core FIFOs |
doorbell | Functions related to doorbells which a core can use to raise IRQs on itself or the other core |
lockout | Functions to enable one core to force the other core to pause execution in a known state |
pico_rand | Random Number Generator API |
pico_sha256 | SHA-256 Hardware Accelerated implementation |
pico_stdlib | Aggregation of a core subset of Raspberry Pi Pico SDK libraries used by most executables along with some additional utility methods |
►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 | |
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 | |
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 |
pico_lwip_nosys | Glue library for integration lwIP in NO_SYS=1 mode with the SDK |
►pico_cyw43_driver | A wrapper around the lower level cyw43_driver, that integrates it with pico_async_context for handling background work |
pico_btstack_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 | |
boot_stage2 | Second stage boot loaders responsible for setting up external flash |
pico_atomic | Helper implementations for C11 atomics |
pico_base | Core types and macros for the Raspberry Pi Pico SDK |
pico_binary_info | Binary info is intended for embedding machine readable information with the binary in FLASH |
pico_bootrom | Access to functions and data in the bootrom |
pico_bit_ops | Optimized bit manipulation functions |
pico_cxx_options | Non-code library controlling C++ related compile options |
pico_clib_interface | Provides the necessary glue code required by the particular C/C++ runtime being used |
pico_crt0 | Provides the default linker scripts and the program entry/exit point |
pico_divider | Optimized 32 and 64 bit division functions accelerated by the RP2040 hardware divider |
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 | Basic runtime support for running pre-main initializers provided by other libraries |
pico_runtime_init | Main runtime initialization functions required to set up the runtime environment before entering main |
►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_rtt | Support for stdin/stdout using SEGGER RTT |
pico_stdio_usb | Support for stdin/stdout over USB serial (CDC) |
pico_standard_binary_info | Includes default information about the binary that can be displayed by picotool |
pico_standard_link | Setup for link options for a standard SDK executable |
▼External API Headers | |
boot_picobin_headers | Constants for PICOBIN format |
boot_picoboot_headers | Header file for the PICOBOOT USB interface exposed by an RP2xxx chip in BOOTSEL mode |
boot_uf2_headers | Header file for the UF2 format supported by a RP2xxx chip in BOOTSEL mode |
pico_usb_reset_interface_headers | Definition for the reset interface that may be exposed by the pico_stdio_usb library |