侧边栏壁纸

在Ubuntu配置树莓派pico C_C++开发环境

  • vegehunter 2024年01月22日 558阅读 0评论
  • 安装交叉编译相关工具

    安装cmake、gcc-arm交叉编译器和newlib库(C和C++)。

    sudo apt install cmake gcc-arm-none-eabi libnewlib-arm-none-eabi libstdc++-arm-none-eabi-newlib

    安装SDK

    开发环境是虚拟机,上github太卡,需要借助一下主机的https代理。

    export https_proxy=http://主机IP:端口号

    新建一个SDK相关的目录rpi_pico,拉取官方的pico-sdk仓库,并更新子模块。

    cd ~
    mkdir rpi_pico && cd rpi_pico
    git clone https://github.com/raspberrypi/pico-sdk.git
    cd pico-sdk
    git submodule update --init

    为当前用户添加SDK环境变量。

    echo "export PICO_SDK_PATH=/home/$USER/rpi_pico/pico-sdk" >> ~/.bashrc
    source ~/.bashrc

    更新SDK

    cd ~/rpi_pico/pico-sdk
    git pull
    git submodule update

    编译

    以例程blink为例,我们先拉取官方的例程仓库。

    cd ~/rpi_pico
    git clone https://github.com/raspberrypi/pico-examples.git

    pico-examples/blink为例,编译并烧录这个例程

    # 构建pico-examples,为每个例程生成makefile
    cd ~/rpi_pico/pico-examples/
    mkdir build && cd build
    cmake ..
    
    # 生成的每个例程的makefile在当前目录,去编译blink
    cd blink
    # -j4表示使用4个线程进行编译
    make -j4

    编译完成后,在当前目录下会看到一堆文件:

    blink.bin  blink.dis  blink.elf  blink.elf.map  blink.hex  blink.uf2  CMakeFiles  cmake_install.cmake  elf2uf2  Makefile

    其中,以.elf为后缀的是elf文件,以.elf.map为后缀的是elf文件对应的内存分布情况,以.uf2为后缀的是可以烧录的文件。


    烧录

    windows

    1. 按住树莓派PICO上的BOOTSEL按钮,插入USB连接线,电脑会识别出新的存储设备。
    2. .uf2文件放入该存储设备,就会开始烧录文件,烧录完成后自动弹出设备。

    linux

    查看树莓派PICO的盘符。

    sudo dmesg | tail
    # [ 4936.463022]  sdb: sdb1
    # [ 4936.478499] sd 33:0:0:0: [sdb] Attached SCSI removable disk

    挂载到/mnt/pico/

    sudo mkdir /mnt/pico
    sudo mount /dev/sdb1 /mnt/pico/
    ls /mnt/pico/
    # INDEX.HTM  INFO_UF2.TXT
    # 看到上述文件表示挂载成功了

    接下来把.uf2文件拷贝至/mnt/pico目录下即可。

    记得烧录完成后,卸载/mnt/pico

    sudo umount /mnt/pico

    参考

    Getting started with Raspberry Pi Pico

    0

    —— 评论区 ——

    昵称
    邮箱
    网址
    取消
    博主栏壁纸
    12 文章数
    13 标签数
    8 评论量
    最新评论