pico-sdk - Raspberry Pi Pico SDK(以下简称SDK)提供为基于RP2040的设备(如C,C++或汇编语言的Raspberry Pi Pico)编写程序所需的标头,库和构建系统。

Created at: 2021-01-21 01:30:11
Language: C
License: BSD-3-Clause

树莓派笔克 SDK

Raspberry Pi Pico SDK(以下简称SDK)提供为基于RP2040的设备(如C,C++或汇编语言的Raspberry Pi Pico)编写程序所需的标头,库和构建系统。

该 SDK 旨在提供非嵌入式 C 开发人员和嵌入式 C 开发人员都熟悉的 API 和编程环境。单个程序一次在设备上运行,并从常规方法开始。支持标准 C/C++ 库以及 C 级库/API,用于访问 RP2040 的所有硬件,包括 PIO(可编程 IO)。

main()

此外,SDK还提供了更高级别的库,用于处理计时器,同步,USB(TinyUSB)和多核编程以及各种实用程序。

SDK可用于构建任何东西,从简单的应用程序到成熟的运行时环境(如MicroPython),再到低级软件(如RP2040的片上bootrom本身)。

其他尚未准备好包含在 SDK 中的库/API 可以在 pico-extras 中找到。

文档

有关如何设置硬件、IDE/环境以及如何为树莓派 Pico 和其他基于 RP2040 的设备构建和调试软件的信息,请参阅树莓派 Pico 入门。

请参阅 Raspberry Pi Pico C/C++ SDK,了解有关使用 SDK 进行编程的更多信息,探索更高级的功能,以及完整的基于 PDF 的 API 文档。

请参阅在线树莓派 Pico SDK API 文档,了解基于 HTML 的 API 文档。

示例代码

有关可以构建的示例代码,请参阅 pico 示例。

快速启动你自己的项目

这些说明非常简洁,并且仅基于Linux。有关其他平台的详细步骤,说明,以及一般情况下,我们建议你查看Raspberry Pi Pico C / C++ SDK

  1. 安装 CMake(至少 3.13 版)和 GCC 交叉编译器

    sudo apt install cmake gcc-arm-none-eabi libnewlib-arm-none-eabi libstdc++-arm-none-eabi-newlib
    
  2. 将你的项目设置为指向使用树莓派 Pico SDK

    • 通过在本地克隆 SDK(最常见):

      1. git clone
        这个树莓派笔克SDK存储库

      2. 将pico_sdk_import.cmake 从 SDK 复制到项目目录中

      3. 设置为环境中的 SDK 位置,或稍后将其传递 () 到 cmake。

        PICO_SDK_PATH
        -DPICO_SDK_PATH=

      4. 设置赞:

        CMakeLists.txt

        cmake_minimum_required(VERSION 3.13)
        
        # initialize the SDK based on PICO_SDK_PATH
        # note: this must happen before project()
        include(pico_sdk_import.cmake)
        
        project(my_project)
        
        # initialize the Raspberry Pi Pico SDK
        pico_sdk_init()
        
        # rest of your project
        
    • 或者使用Raspberry Pi Pico SDK作为子模块:

      1. 将 SDK 克隆为名为

        pico-sdk

      2. 设置赞:

        CMakeLists.txt

        cmake_minimum_required(VERSION 3.13)
        
        # initialize pico-sdk from submodule
        # note: this must happen before project()
        include(pico-sdk/pico_sdk_init.cmake)
        
        project(my_project)
        
        # initialize the Raspberry Pi Pico SDK
        pico_sdk_init()
        
        # rest of your project
        
    • 或者从 GitHub 自动下载:

      1. 将pico_sdk_import.cmake 从 SDK 复制到项目目录中

      2. 设置赞:

        CMakeLists.txt

        cmake_minimum_required(VERSION 3.13)
        
        # initialize pico-sdk from GIT
        # (note this can come from environment, CMake cache etc)
        set(PICO_SDK_FETCH_FROM_GIT on)
        
        # pico_sdk_import.cmake is a single file copied from this SDK
        # note: this must happen before project()
        include(pico_sdk_import.cmake)
        
        project(my_project)
        
        # initialize the Raspberry Pi Pico SDK
        pico_sdk_init()
        
        # rest of your project
        
    • 或者通过在本地克隆 SDK,但不复制 :

      pico_sdk_import.cmake

      1. git clone
        这个树莓派笔克SDK存储库

      2. 设置赞:

        CMakeLists.txt

        cmake_minimum_required(VERSION 3.13)
        
        # initialize the SDK directly
        include(/path/to/pico-sdk/pico_sdk_init.cmake)
        
        project(my_project)
        
        # initialize the Raspberry Pi Pico SDK
        pico_sdk_init()
        
        # rest of your project
        
  3. 编写代码(有关详细信息,请参阅 pico 示例Raspberry Pi Pico C/C++ SDK 文档)

    你可以做的最简单的是单个源文件(例如hello_world.c)

    #include <stdio.h>
    #include "pico/stdlib.h"
    
    int main() {
        setup_default_uart();
        printf("Hello, world!\n");
        return 0;
    }

    并将以下内容添加到你的:

    CMakeLists.txt

    add_executable(hello_world
        hello_world.c
    )
    
    # Add pico_stdlib library which aggregates commonly used features
    target_link_libraries(hello_world pico_stdlib)
    
    # create map/bin/hex/uf2 file in addition to ELF.
    pico_add_extra_outputs(hello_world)

    请注意,此示例对标准输出使用默认的 UART;如果要使用默认 USB,请参阅 hello-usb 示例。

  4. 设置 CMake 生成目录。例如,如果不使用 IDE:

    $ mkdir build
    $ cd build
    $ cmake ..
    
  5. 从你创建的构建目录中创建目标。

    $ make hello_world
  6. 你现在必须通过调试器加载,或者可以通过拖放在Raspberry Pi Pico上安装和运行。

    hello_world.elf
    hello_world.uf2