树莓派Pico学习笔记-Win下Clion环境搭建
最近掏出了吃灰已久的合宙RP2040,打算先搭建好环境,借助它学习一下win下交叉编译与调试环境的搭建,以及CMake与Clion的使用。
下载安装
首先完成以下软件的安装:
- Clion
- CMake——C语言生成器(Clion自带)
- ninja——C语言构建器(同make,nmake功能)(Clion自带)
- git——主要用于从github下载代码
- arm-gcc工具链——编译代码
- mingw——win上的gcc,用来编译elf2uf2工具(Clion自带)
- OpenOCD——调试工具
- Pico-SDK
注意添加到环境变量。
基于Clion
创建工程目录
将SDK/external目录下的pico_sdk_import.cmake
复制到工程目录。
添加程序代码文件main.c
:
1 | /** |
添加CMakeLists.txt
:
1 | cmake_minimum_required(VERSION 3.13) |
添加工具链
这里基本与STM32环境的搭建过程一样。
在Clion的设置中构建、部署、执行->工具链
添加新工具链ARM-GCC
。
CMake自带,构建工具使用自带的Ninja。选择编译器和调试器为上面安装的ARM工具链中的。
其实无所谓,树莓派Pico的SDK已经指定好了,只需要将编译器添加到环境变量就可以直接用了,搞的我还以为mingw可以交叉编译了
之后点击CMake
,选择工具链
为刚刚创建的ARM-GCC
,在下面的环境
中添加PICO_SDK_PATH
环境变量。
编译下载调试
编译后在build中就会有uf2文件可以直接下载,或者使用调试器下载调试。
配置调试也与stm32相似,只需要注意一下配置文件的写法:
1 | #pico.cfg |
基于命令行的搭建——接触底层
添加环境变量
将PicoSDK目录添加到环境变量PICO_SDK_PATH
。
或者在使用CMake命令时使用-DPICO_SDK_PATH=
参数传递。
或者在txt中使用SET设置。
创建工程文件夹
将SDK/external目录下的pico_sdk_import.cmake
复制到工程目录。
添加程序代码文件main.c
:
1 | /** |
添加CMakeLists.txt
:
1 | cmake_minimum_required(VERSION 3.13) |
构建编译工程
创建build
文件夹,进入,在该文件夹下执行命令:
1 | cmake .. -G Ninja |
-G Ninja
是为了生成Ninja使用的文件。否则,在Windos下,会优先使用VS的nmake
。这里没有装vs,会提示nmake
找不到。
当然也可以使用mingw自带的msys2
,修改-G的参数即可。
也可以在这里传入PICO_SDK_PATH。
构建完成后,执行命令:
1 | cmake --build . |
这里需要注意安装一个c语言编译器,因为这里会编译elf2uf2工具。
之后就可以在目录下看见uf2文件了。
下载elf文件并调试
详见参考文章。
这里注意,openocd的配置文件已经在其目录下了,可以自行查看支持种类。
使用GDB远程调试功能连接到OpenOCD进行调试。