zl程序教程

您现在的位置是:首页 >  系统

当前栏目

Raspberry-Pi-PICO系列--第二篇 开发环境搭建-Mac系统

系统Mac开发 环境 -- 系列 搭建 Pi
2023-09-11 14:21:44 时间

一、目的

        在上一篇《Raspberry-Pi-PICO系列--第一篇 初识RP2040》中我们简单介绍了一下Raspberry_Pi_PICO开发板以及RP2040的基本信息,那么本篇我们就开始搭建开发环境。

        Raspberry-Pi-PICO支持两种开发模式,一种是基于C/C++ SDK开发,一种是基于python开发,各有优劣。

        参考资料地址Raspberry Pi Documentation - Raspberry Pi Picohttps://www.raspberrypi.com/documentation/microcontrollers/raspberry-pi-pico.html        本人平时的工作基本上都是嵌入式linux C开发以及MCU RTOS开发,那么本篇就先介绍一下在Mac OS上C/C++ SDK开发环境的搭建过程,参考的资料地址如下

https://datasheets.raspberrypi.com/pico/getting-started-with-pico.pdfhttps://datasheets.raspberrypi.com/pico/getting-started-with-pico.pdf

                 注意:上述文档最开始讲解的是在raspberry pi上通过一个自动化脚本直接搭建环境(前提是你需要有个raspberry pi开发板)。

二、准备

        首先我们在Mac电脑上打开一个terminal,然后创建一个目录,专门存放跟raspberry_pi_pico有关的内容,如下

        1、创建工作目录

$ cd
$ mkdir -p ~/workspace/third/raspberry_pi_pico
$ cd ~/workspace/third/raspberry_pi_pico

        

        2、下载pico相关的代码仓库        

$ git clone -b master https://github.com/raspberrypi/pico-sdk.git
$ cd pico-sdk
$ git submodule update --init
$ cd ..
$ git clone -b master https://github.com/raspberrypi/pico-examples.git

         除了上面两个仓库,raspberry_pi_pico还有一些仓库存放高级应用的工程代码,例如

$ git clone -b master https://github.com/raspberrypi/pico-extras.git

        

           安装brew工具

$ /bin/bash -c "$(curl -fsSL
https://raw.githubusercontent.com/Homebrew/install/master/install.sh)"

        下面我们需要安装一下tinyUSB这个依赖库,可以直接通过以下命令安装

$ brew install libusb

        3、安装CMake

$ brew install cmake
$ cmake --version

         如果cmake版本低于3.12.0则需要更新,直接从官网下载安装包即可

Download | CMakehttps://cmake.org/download/

         

        4、下载工具链

GNU Toolchain | GNU Arm Embedded Toolchain Downloads – Arm Developerhttps://developer.arm.com/tools-and-software/open-source-software/developer-tools/gnu-toolchain/gnu-rm/downloads

         下载完成后,解压到~/workspace/third/raspberry_pi_pico/toolchain目录下

$ cd ~/workspace/third/raspberry_pi_pico
$ mkdir toolchain
$ cd toolchain
$ mv ~/Downloads/gcc-arm-none-eabi-10.3-2021.10-mac.tar.bz2 .
$ tar -jxvf gcc-arm-none-eabi-10.3-2021.10-mac.tar.bz2

        验证一下工具链可用,我们可以执行一下命令

$ cd ~/workspace/third/raspberry_pi_pico/toolchain/gcc-arm-none-eabi-10.3-2021.10/bin

$ ./arm-none-eabi-gcc -v

        屏幕输出以下内容

        

        5、设置环境变量PICO_SDK_PATH/PICO_TOOLCHAIN_PATH

                为了避免每次都要重新设置,我们将这两个环境变量设置到profile文件中,这样每当我们开启一个新的terminal的时候这些环境变量就已经设置好了。

$ vim ~/.bash_profile

         在其末尾添加如下两行

export PICO_SDK_PATH="/Users/你的用户名/workspace/third/raspberry_pi_pico/pico-sdk"
export PICO_TOOLCHAIN_PATH="/Users/你的用户名/workspace/third/raspberry_pi_pico/toolchain/gcc-arm-none-eabi-10.3-2021.10"

        设置完成后重新打开一个terminal,输入

$ env | grep PICO

        如果能看到如下内容说明操作成功

PICO_TOOLCHAIN_PATH=/Users/你的用户名/workspace/third/raspberry_pi_pico/toolchain/gcc-arm-none-eabi-10.3-2021.10
PICO_SDK_PATH=/Users/你的用户名/workspace/third/raspberry_pi_pico/pico-sdk

三、实战

        如果上面的操作都没有问题,下面就让我们编译一个最简单的程序。

        

$ cd ~/workspace/third/raspberry_pi_pico/pico-examples
$ mkdir build
$ cd build
$ cmake ..

        如果之前都正确配置的话,你应该可以看到如下结果

        编译blink工程

        

$ cd ~/workspace/third/raspberry_pi_pico/pico-examples/build/blink
$ make

        编译成功时屏幕输出

Performing build step for 'ELF2UF2Build'
Scanning dependencies of target elf2uf2
[ 50%] Building CXX object CMakeFiles/elf2uf2.dir/main.cpp.o
[100%] Linking CXX executable elf2uf2
[100%] Built target elf2uf2
No install step for 'ELF2UF2Build'
Completed 'ELF2UF2Build'
Built target ELF2UF2Build
Scanning dependencies of target bs2_default
Building ASM object pico-sdk/src/rp2_common/boot_stage2/CMakeFiles/bs2_default.dir/compile_time_choice.S.obj
Linking ASM executable bs2_default.elf
Built target bs2_default
Scanning dependencies of target bs2_default_padded_checksummed_asm
Generating bs2_default.bin
Generating bs2_default_padded_checksummed.S
Built target bs2_default_padded_checksummed_asm
Scanning dependencies of target blink
Building C object blink/CMakeFiles/blink.dir/blink.c.obj

...

Linking CXX executable blink.elf
Built target blink

        并且在目录下有文件blink.uf2、blink.elf、blink.bin,分别对应不同烧写方式用的文件。

        .uf2格式可以直接通过板载USB下载

        .elf格式可以通过SWD接口下载

        .bin格式可以直接flash烧写器烧写到flash中

        烧写程序

                本篇只介绍烧写.uf2格式的固件,后面博文中会介绍通过SWD下载.elf格式的文件以及调试代码

                将开发板上的白色按钮按住,然后将USB线接在开发板上,此时PC上会识别出U盘(PICO开发板会被识别成USB大容量存储设备),如图

        将blink.uf2文件拷贝到此目录下,设备就会自动重启,并且板载LED开始闪烁。

至此,我们完成了Mac上开发环境的搭建。

下篇我们介绍如何在Ubuntu上面搭建开发环境。