Loading...
Searching...
No Matches
API Documentation
These are the libraries supplied in the Raspberry Pi Pico SDK
 Hardware APIs
  hardware_adcAnalog to Digital Converter (ADC) API
  hardware_baseLow-level types and (atomic) accessors for memory-mapped hardware registers
  hardware_boot_lockHelpers for locking and unlocking hardware boot locks
  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
   channel_configDMA channel configuration
  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
   interp_configInterpolator configuration
  hardware_irqHardware interrupt handling API
  hardware_pioProgrammable I/O (PIO) API
   sm_configPIO state machine configuration
   pio_instructionsPIO instruction encoding
  hardware_pllPhase Locked Loop control APIs
  hardware_powmanPower Management API
  hardware_psramLow level PSRAM setup functions
  hardware_pwmHardware Pulse Width Modulation (PWM) API
  hardware_rcpInline functions and assembly macros for the Redundancy Coprocessor
  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_roscRing Oscillator (ROSC) API
  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_xip_cacheLow-level cache maintenance operations for the XIP cache
  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
   async_context_freertosAsync_context_freertos provides an implementation of async_context that handles asynchronous work in a separate FreeRTOS task
   async_context_pollAsync_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_backgroundAsync_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_resetOptional support to make fast double reset of the system enter BOOTSEL mode
  pico_fixMiscellaneous device specifc workarounds/fixes
  pico_flashHigh level flash API
  pico_i2c_slaveFunctions providing an interrupt driven I2C slave interface
  pico_low_powerAPIs for using lower power states
  pico_multicoreAdds support for running code on, and interacting with the second processor core (core 1)
   fifoFunctions for the inter-core FIFOs
   doorbellFunctions related to doorbells which a core can use to raise IRQs on itself or the other core
   lockoutFunctions to enable one core to force the other core to pause execution in a known state
  pico_randRandom Number Generator API
  pico_sha256SHA-256 Hardware Accelerated implementation
  pico_status_ledEnables access to the on-board status LED(s)
  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
   critical_sectionCritical Section API for short-lived mutual exclusion safe for IRQ and multi-core
   lock_coreBase synchronization/lock primitive support
   mutexMutex API for non IRQ mutual exclusion between cores
   semSemaphore API for restricting access to a resource
  pico_timeAPI for accurate timestamps, sleeping, and time based callbacks
   timestampTimestamp functions relating to points in time (including the current time)
   sleepSleep functions for delaying execution in a lower power state
   alarmAlarm functions for scheduling future execution
   repeating_timerRepeating Timer functions for simple scheduling of repeated execution
  pico_unique_idUnique device ID access API
  pico_usb_resetFunctionality to enable the RP-series microcontroller to be reset over the USB interface
  pico_utilUseful data structures and utility functions
   datetimeDate/Time formatting
   fixed_bitsetSimple fixed-size bitset implementation
   pheapPairing Heap Implementation
   queueMulti-core and IRQ safe queue implementation
 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
  pico_mbedtlsPico-sdk wrapper library for mbedtls the documentation for which is here
 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_lwip_archLwIP compiler adapters. This is not included by default in pico_lwip in case you wish to implement your own
   pico_lwip_httpLwIP HTTP client and server library
   pico_lwip_freertosGlue library for integration lwIP in NO_SYS=0 mode with the SDK
   pico_lwip_nosysGlue library for integration lwIP in NO_SYS=1 mode with the SDK
  pico_cyw43_driverA wrapper around the lower level cyw43_driver, that integrates it with pico_async_context for handling background work
   pico_btstack_cyw43Low-level Bluetooth HCI support
  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
   cyw43_driverDriver used for Pico W wireless
    cyw43_llLow Level CYW43 driver interface
 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 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_stdio_semihostingExperimental support for stdout using RAM semihosting
   pico_stdio_uartSupport for stdin/stdout using UART
   pico_stdio_rttSupport for stdin/stdout using SEGGER RTT
   pico_stdio_usbSupport for stdin/stdout over USB serial (CDC)
  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
  pico_thread_localC/C++ __thread/thread_local support
 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