▼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_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_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 | Third party libraries for implementing high level functionality |
tinyusb_device | TinyUSB Device-mode support for the RP2040 |
tinyusb_host | TinyUSB Host-mode support for the RP2040 |
▼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 |
pico_binary_info | Binary info is intended for embedding machine readable information with the binary in FLASH |
pico_bit_ops | Optimized bit manipulation functions |
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 |
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 |
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 |
CMSIS Global Defines | IO Type Qualifiers are used |
▼Defines and Type Definitions | Type definitions and defines for Cortex-M processor based devices |
▼Status and Control Registers | Core Register type definitions |
▼Nested Vectored Interrupt Controller (NVIC) | Type definitions for the NVIC Registers |
▼System Control Block (SCB) | Type definitions for the System Control Block Registers |
▼System Tick Timer (SysTick) | Type definitions for the System Timer Registers |
▼Core Debug Registers (CoreDebug) | Cortex-M0+ Core Debug Registers (DCB registers, SHCSR, and DFSR) are only accessible over DAP and not via processor |
▼Core register bit field macros | Macros for use with bit field definitions (xxx_Pos, xxx_Msk) |
▼Core Definitions | Definitions for base addresses, unions, and structures |
▼Functions and Instructions Reference | |
▼CMSIS Core Register Access Functions | |
▼CMSIS Core Instruction Interface | Access to dedicated instructions |
CMSIS SIMD Intrinsics | Access to dedicated SIMD instructions |
▼NVIC Functions | Functions that manage interrupts and exceptions via the NVIC |
▼FPU Functions | Function that provides FPU type |
SysTick Functions | Functions that configure the System |
▼NVIC Functions | Functions that manage interrupts and exceptions via the NVIC |
▼FPU Functions | Function that provides FPU type |
SysTick Functions | Functions that configure the System |