跳到主要内容

pico-base

Raspberry Pi Pico SDK 的核心类型和宏定义。

详细描述

此头文件旨在被所有源代码包含,它按正确顺序包含配置头文件和覆盖文件。

此头文件可由汇编代码包含。

  • #define pico_board_cmake_set(x, y)
  • #define pico_board_cmake_set_default(x, y)

枚举

  • enum pico_error_codes { [PICO_OK] = 0, [PICO_ERROR_NONE] = 0, [PICO_ERROR_GENERIC] = -1, [PICO_ERROR_TIMEOUT] = -2, [PICO_ERROR_NO_DATA] = -3, [PICO_ERROR_NOT_PERMITTED] = -4, [PICO_ERROR_INVALID_ARG] = -5, [PICO_ERROR_IO] = -6, [PICO_ERROR_BADAUTH] = -7, [PICO_ERROR_CONNECT_FAILED] = -8, [PICO_ERROR_INSUFFICIENT_RESOURCES] = -9, [PICO_ERROR_INVALID_ADDRESS] = -10, [PICO_ERROR_BAD_ALIGNMENT] = -11, [PICO_ERROR_INVALID_STATE] = -12, [PICO_ERROR_BUFFER_TOO_SMALL] = -13, [PICO_ERROR_PRECONDITION_NOT_MET] = -14, [PICO_ERROR_MODIFIED_DATA] = -15, [PICO_ERROR_INVALID_DATA] = -16, [PICO_ERROR_NOT_FOUND] = -17, [PICO_ERROR_UNSUPPORTED_MODIFICATION] = -18, [PICO_ERROR_LOCK_REQUIRED] = -19, [PICO_ERROR_VERSION_MISMATCH] = -20, [PICO_ERROR_RESOURCE_IN_USE] = -21 }: pico_sdk 方法返回状态时的通用返回码。

宏定义文档

pico_board_cmake_set

#define pico_board_cmake_set(x, y)

在板级头文件中使用的标记,用于指定当使用该板级头文件时应在 CMake 构建中设置的 CMake 变量和值。

基于 PICO_BOARD CMake 变量,构建系统将扫描板级头文件中的 `[ value)] 并在构建配置过程的早期阶段设置这些变量。这允许从板级头文件中设置 CMake 变量(如 PICO_PLATFORM),从而影响(例如)构建所用编译器的选择。

使用此宏将覆盖已设置的 CMake 变量。

此宏的定义为空,不会对实际编译产生任何影响。

pico_board_cmake_set_default

#define pico_board_cmake_set_default(x, y)

在板级头文件中使用的标记,用于指定当使用该板级头文件时应在 CMake 构建中设置的 CMake 变量和值(前提是该 CMake 变量尚未被设置)。

基于 PICO_BOARD CMake 变量,构建系统将扫描板级头文件中的 `[ value)] 并在构建配置过程的早期阶段设置这些变量。这允许从板级头文件中设置 CMake 变量(如 PICO_PLATFORM),从而影响(例如)构建所用编译器的选择。

使用此宏不会覆盖已设置的 CMake 变量。

此宏的定义为空,不会对实际编译产生任何影响。

枚举类型文档

pico_error_codes

enum pico_error_codes

pico_sdk 方法返回状态时的通用返回码。

所有 PICO_ERROR_ 值均为负数,因此可从同时返回零或正数表示成功的函数中返回。

注意,这些错误码也可能通过 bootrom 函数返回。

枚举值说明
PICO_OK无错误;操作成功。
PICO_ERROR_NONE无错误;操作成功。
PICO_ERROR_GENERIC发生了未指定的错误。
PICO_ERROR_TIMEOUT函数因超时而失败。
PICO_ERROR_NO_DATA例如尝试从空缓冲区/FIFO 读取数据。
PICO_ERROR_NOT_PERMITTED权限违规,例如向只读 flash 分区写入,或安全违规。
PICO_ERROR_INVALID_ARG参数超出支持值的范围。
PICO_ERROR_IO发生了 I/O 错误。
PICO_ERROR_BADAUTH由于凭证错误,授权失败。
PICO_ERROR_CONNECT_FAILED连接失败。
PICO_ERROR_INSUFFICIENT_RESOURCES动态分配资源失败。
PICO_ERROR_INVALID_ADDRESS地址参数超出范围,或被确定为调用者无权访问的地址。
PICO_ERROR_BAD_ALIGNMENT地址未对齐(通常不在字边界上)。
PICO_ERROR_INVALID_STATE过去发生了某些事情或未能发生,导致当前无法处理请求。
PICO_ERROR_BUFFER_TOO_SMALL用户分配的缓冲区太小,无法容纳此函数的结果或工作状态。
PICO_ERROR_PRECONDITION_NOT_MET调用失败,因为必须先调用另一个函数。
PICO_ERROR_MODIFIED_DATA缓存数据被确定与实际数据版本不一致。
PICO_ERROR_INVALID_DATA数据结构验证失败。
PICO_ERROR_NOT_FOUND尝试访问不存在的内容;或搜索失败。
PICO_ERROR_UNSUPPORTED_MODIFICATION基于之前的写入操作,写入不可能完成;例如尝试清除 OTP 位。
PICO_ERROR_LOCK_REQUIRED未持有所需的锁。
PICO_ERROR_VERSION_MISMATCH发生版本不匹配(例如尝试在 RP2040 上运行 PIO 版本 1 代码)。
PICO_ERROR_RESOURCE_IN_USE由于所需资源不可用,调用无法继续。

中文翻译版以英文版相同知识授权方式共享:CC-BY-SA 4.0。交流 Q群:498908352