Linux编译树莓派Pico示例

本教程演示在Ubuntu下编译树莓派Pico 1/Pico 2官方C/C++示例。

1. 安装环境

  • Ubuntu 22.04
  • pico-sdk
  • picotool
  • pico-examples

安装基础开发环境:

$ sudo apt install build-essential flex bc gawk texinfo file liblz4-dev ssh git libssl-dev libncurses-dev cmake

安装工具链:

$ sudo apt install gcc-arm-none-eabi libnewlib-arm-none-eabi libstdc++-arm-none-eabi-newlib pkg-config libusb-1.0-0-dev

2. 下载源码

$ mkdir -p ~/pico
$ cd ~/pico
$ git clone https://github.com/raspberrypi/pico-sdk.git
$ git clone https://github.com/raspberrypi/picotool.git
$ git clone https://github.com/raspberrypi/pico-examples.git

Check出pico-sdk的依赖:

$ cd ~/pico/pico-sdk
$ git submodule update --init

上述命令会下载以下文件(约266MB):

~/pico/pico-sdk/lib/
├── btstack
├── cyw43-driver
├── lwip
├── mbedtls
└── tinyusb

 3. 编译安装picotool

声明sdk路径:

$ export PICO_SDK_PATH=$HOME/pico/pico-sdk/

每次重启终端,编译之前都要运行这个,如果嫌麻烦,可以把这条命令加入到'~/.bashrc'的末尾,然后重启终端。

$ cd ~/pico/picotool/
$ mkdir build
$ cd build/
$ cmake ..
$ make -j4
$ sudo make install

它将会安装picotool及相关文件到/usr目录下。

4. 编译pico-examples

$ cd ~/pico/pico-examples/
$ mkdir build
$ cd build

构建raspberry pi pico 1:

$ cmake ..

或者,构建raspberry pi pico 2:

$ cmake .. -DPICO_BOARD=pico2

可选:pico、pico_w、pico2、pico2_w等。

如果要编译示例:

$ cd ~/pico/pico-examples/build/
$ make -j4

也可以单独编译其中的一个,比如blink:

$ cd ~/pico/pico-examples/build/blink/
$ make -j4

我们以blink为例,编译后目录如下:

$ cd ~/pico/pico-examples/build/blink/
$ ls
CMakeFiles  Makefile  blink.bin  blink.dis  blink.elf  blink.elf.map  blink.hex  blink.uf2  cmake_install.cmake

查看一下文件架构:

$ file blink.elf
blink.elf: ELF 32-bit LSB executable, ARM, EABI5 version 1 (SYSV), statically linked, with debug_info, not stripped

可知,是32位ARM架构,小端模式。

我们把树莓派pico1或pico2以大容量usb的方式连接电脑(按着boot键同时插入usb),把'blink.uf2'拖进pico的存储空间,一般就开始运行了(出现问题就重新上电试试)。

posted @ 2025-04-15 16:11  this毛豆  阅读(306)  评论(0)    收藏  举报