API Documentation
These are the libraries supplied in the Raspberry Pi Pico SDK
[detail level 1234]
 Hardware APIs
 hardware_adcAnalog to Digital Converter (ADC) API
 hardware_baseLow-level types and (atomic) accessors for memory-mapped hardware registers
 hardware_claimLightweight hardware resource management API
 hardware_clocksClock Management API
 hardware_dividerRP2040 Low Low-level hardware-divider API. Non-RP2040 platforms provide software versions of all the functions
 hardware_dcpAssembly macros for the Double Coprocessor
 hardware_dmaDMA Controller API
 hardware_exceptionMethods for setting processor exception handlers
 hardware_flashLow level flash programming and erase API
 hardware_gpioGeneral Purpose Input/Output (GPIO) API
 hardware_hazard3Accessors for Hazard3-specific RISC-V CSRs, and intrinsics for Hazard3 custom instructions
 hardware_i2cI2C Controller API
 hardware_interpHardware Interpolator API
 hardware_irqHardware interrupt handling API
 hardware_pioProgrammable I/O (PIO) API
 hardware_pllPhase Locked Loop control APIs
 hardware_powmanPower Management API
 hardware_pwmHardware Pulse Width Modulation (PWM) API
 hardware_resetsHardware Reset API
 hardware_riscvAccessors for standard RISC-V hardware (mainly CSRs)
 hardware_riscv_platform_timerAccessors for standard RISC-V platform timer (mtime/mtimecmp), available on Raspberry Pi microcontrollers with RISC-V processors
 hardware_rtcHardware Real Time Clock API
 hardware_rcpInline functions and assembly macros for the Redundancy Coprocessor
 hardware_spiHardware SPI API
 hardware_sha256Hardware SHA-256 Accelerator API
 hardware_syncLow level hardware spin locks, barrier and processor event APIs
 hardware_ticksHardware Tick API
 hardware_timerLow-level hardware timer API
 hardware_uartHardware UART API
 hardware_vregVoltage Regulation API
 hardware_watchdogHardware Watchdog Timer API
 hardware_xoscCrystal Oscillator (XOSC) API
 High Level APIs
 pico_aon_timerHigh Level "Always on Timer" Abstraction
 pico_async_contextAn 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
 pico_bootsel_via_double_resetOptional support to make fast double reset of the system enter BOOTSEL mode
 pico_flashHigh level flash API
 pico_i2c_slaveFunctions providing an interrupt driven I2C slave interface
 pico_multicoreAdds support for running code on, and interacting with the second processor core (core 1)
 pico_randRandom Number Generator API
 pico_sha256SHA-256 Hardware Accelerated implementation
 pico_stdlibAggregation of a core subset of Raspberry Pi Pico SDK libraries used by most executables along with some additional utility methods
 pico_syncSynchronization primitives and mutual exclusion
 pico_timeAPI for accurate timestamps, sleeping, and time based callbacks
 pico_unique_idUnique device ID access API
 pico_utilUseful data structures and utility functions
 Third-party Libraries
 tinyusb_deviceTinyUSB Device-mode support for the RP2040. The TinyUSB documentation site can be found here
 tinyusb_hostTinyUSB Host-mode support for the RP2040
 Networking Libraries
 pico_btstackIntegration/wrapper libraries for BTstack the documentation for which is here
 pico_lwipIntegration/wrapper libraries for lwIP the documentation for which is here
 pico_cyw43_driverA wrapper around the lower level cyw43_driver, that integrates it with pico_async_context for handling background work
 pico_cyw43_archArchitecture 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
 Runtime Infrastructure
 boot_stage2Second stage boot loaders responsible for setting up external flash
 pico_atomicHelper implementations for C11 atomics
 pico_baseCore types and macros for the Raspberry Pi Pico SDK
 pico_binary_infoBinary info is intended for embedding machine readable information with the binary in FLASH
 pico_bootromAccess to functions and data in the bootrom
 pico_bit_opsOptimized bit manipulation functions
 pico_cxx_optionsNon-code library controlling C++ related compile options
 pico_clib_interfaceProvides the necessary glue code required by the particular C/C++ runtime being used
 pico_crt0Provides the default linker scripts and the program entry/exit point
 pico_dividerOptimized 32 and 64 bit division functions accelerated by the RP2040 hardware divider
 pico_doubleOptimized double-precision floating point functions
 pico_floatOptimized single-precision floating point functions
 pico_int64_opsOptimized replacement implementations of the compiler built-in 64 bit multiplication
 pico_mallocMulti-core safety for malloc, calloc and free
 pico_mem_opsProvides optimized replacement implementations of the compiler built-in memcpy, memset and related functions
 pico_platformMacros 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_printfCompact replacement for printf by Marco Paland (info@.nosp@m.pala.nosp@m.nd.co.nosp@m.m)
 pico_runtimeBasic runtime support for running pre-main initializers provided by other libraries
 pico_runtime_initMain runtime initialization functions required to set up the runtime environment before entering main
 pico_stdioCustomized stdio support allowing for input and output from UART, USB, semi-hosting etc
 pico_standard_binary_infoIncludes default information about the binary that can be displayed by picotool
 pico_standard_linkSetup for link options for a standard SDK executable
 External API Headers
 boot_picobin_headersConstants for PICOBIN format
 boot_picoboot_headersHeader file for the PICOBOOT USB interface exposed by an RP2xxx chip in BOOTSEL mode
 boot_uf2_headersHeader file for the UF2 format supported by a RP2xxx chip in BOOTSEL mode
 pico_usb_reset_interface_headersDefinition for the reset interface that may be exposed by the pico_stdio_usb library