一、目的
在上一篇《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开发环境的搭建过程,参考的资料地址如下
注意:上述文档最开始讲解的是在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、下载工具链
下载完成后,解压到~/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上面搭建开发环境。