【RP2040】香瓜树莓派RP2040之搭建开发环境(windows)
本文最后修改时间:2022年08月23日 01:57
一、本节简介
本节以树莓派pico开发板为例,搭建windows下的编译环境。
二、实验平台
1、硬件平台
1)树莓派pico开发板
①树莓派pico开发板
②micro usb数据线
2)电脑
2、软件平台
暂无
三、版权声明
1)作者:甜甜的大香瓜
2)声明:喝水不忘挖井人,转载请注明出处。
3)纠错/业务合作:897503845@qq.com
4)香瓜嵌入式之树莓派群:512598061
5)本文出处:原创连载资料《简单粗暴学树莓派》
6)完整开源资料下载地址(电脑端打开):
opengua.taobao.com
四、实验前提
1、在进行本文步骤前,请先阅读以下章节:
1)《简单粗暴学树莓派》的“第一章至第二章”章节。
2)《Raspberry Pi Pico : C/C++ SDK and Toolchain Setup in Windows 10》:
Raspberry Pi Pico : C/C++ SDK and Toolchain Setup in Windows 10 - Arnab Kumar Das
3)《Raspberry-Pi-PICO系列--第四篇 开发环境搭建-Windows系统 + Visual Studio Code开发》:Raspberry-Pi-PICO系列--第四篇 开发环境搭建-Windows系统 + Visual Studio Code开发_coder.mark的博客-CSDN博客
4)《getting-started-with-pico》的《9.2. Building on MS Windows》
2、在进行本文步骤前,请先实现以下章节:
暂无
五、基础知识
1、pico是什么?
答:
pico是树莓派公司在21年1月出的一款单片机开发板,价格大概在4美金(20多元人民币)。
目前型号有pico、pico H(pico焊上插针)、pico W(pico基础上增加wifi模块)、pico WH(pico W焊上插针)。
2、pico能在几个平台做开发?
答:
可以在树莓派(比如树莓派4等)、mac、windows下做开发。
3、windows下需要装哪些软件?
答:
其实要下载安装的软件有很多,上图的只是让你能命令行编译的软件。详情看本文具体操作步骤(或看目录快速浏览)。
六、实验步骤
1、安装Arm GNU Toolchain
1)下载链接
Downloads | GNU Arm Embedded Toolchain Downloads – Arm Developer
2)安装注意事项
这里特别注意要打上勾。
可以在命令行里输入“arm-none-eabi-gcc -v”来判断是否装好。
2、安装CMake
1)下载链接
https://objects.githubusercontent.com/github-production-release-asset-2e65be/537699/658da1cd-1df4-4ba8-ae1f-24f8f742f29d?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAIWNJYAX4CSVEH53A%2F20220805%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220805T124236Z&X-Amz-Expires=300&X-Amz-Signature=2fd92b6a8dd08e92e247972e293098ef571ac9f44bce61c1a15171fe4ede8d76&X-Amz-SignedHeaders=host&actor_id=0&key_id=0&repo_id=537699&response-content-disposition=attachment%3B%20filename%3Dcmake-3.24.0-windows-x86_64.msi&response-content-type=application%2Foctet-stream
2)安装注意事项
需如上选择。
3、安装Visual Studio2022
1)下载链接
下载 Visual Studio Tools - 免费安装 Windows、Mac、Linux
2)安装注意事项
要注意文件很大,看看C盘够不够空间。
4、安装Python3.10
1)下载链接
Python Releases for Windows | Python.org
2)安装注意事项
5、安装Git
1)下载链接
https://git-scm.com/download/win
2)安装注意事项(其他按默认)
6、下载pico的SDK和例程
1)在D盘新建一个文件夹,命名为“GUA_PICO”。
2)在GUA_PICO里,点右键,选择“Git Bash Here”。
3)依次输入:
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 |
7、设置SDK的环境变量
1)右键“我的电脑”属性,点击“高级系统设置”,点击系统属性里“高级”中的“环境变量”。
填入“PICO_SDK_PATH”、“D:\GUA_PICO\pico-sdk”
8、创建编译文件夹并编译
1)打开一个新的Developer Command Prompt for VS 2022。
2)输入:
D: cd D:\GUA_PICO\pico-examples mkdir build cd build cmake -G "NMake Makefiles" .. nmake |
其中nmake是编译所有例程,时间会比较久。
注意,如果更换了Arm GNU Toolchain的版本,需要删掉build文件夹里的东西,重新编译
注意:
如上图则表示“cmake -G "NMake Makefiles" ..”执行正确了。
如果是报错,有可能是环境变量的路径没设置对,或者要先把build文件夹内的文件删除干净。
如上图,就说明命令行的编译环境已建好。
9、安装Visual Studio Code
1)下载链接
https://code.visualstudio.com/download
2)安装注意事项
默认就有添加PATH,都按默认装即可。
10、配置Visual Studio Code
1)用Developer Command Prompt for VS 2022打开Visual Studio Code
注意这里不能直接打开VS CODE,一定要用命令行打开。
2)在VS CODE里按Ctrl + Shift + X,安装CMake Tool(注意不是CMake)
3)添加环境变量
点击右下角设置选择extensions setting
与前面一样填入“PICO_SDK_PATH”、“D: \GUA_PICO\pico-sdk”。如下图
往下找到Cmake: Generator,输入“NMake Makefiles”,然后关闭Settings。
4)安装cortex-Debug插件
11、使用VS CODE编译
导入工程,File->Open Folder,选择pico-examples的路径。香瓜的路径是“D:\ GUA_PICO\pico-examples”,如下图
点击“all”选择“blink”工程,我们只选择编译这个工程,否则时间非常久。如下图
此时可以随便修改一下blink(不改的话编译文件不会生成),点build编译,如下图
如果有弹出安装C的指令,点击安装
查看uf2编译文件的时间是否被更新了,如果更新了,说明编译成功,如下图
12、下载uf2编译文件到pico
1)按着PICO上的BOOTSEL按键,插入usb供电,然后松开。
2)电脑会弹出或识别出一个盘,将刚刚编译的blink.uf2放进新盘内,会自动关闭。
3)pico的led开始闪烁,说明代码已下载成功。
4)可通过调整LED的闪烁时间,来进一步验证是否下载的是自己修改的代码。
至此,就已经装好了VS CODE编译环境,接下来是实现仿真功能。
13、安装MSYS2
1)下载链接
https://www.msys2.org/
2)安装注意事项
全部默认安装后,在弹出的框内填入
pacman -Syu |
装好后窗口会自动关闭,然后重新打开MSYS2。
输入
pacman -Su |
安装完成后输入
pacman -S mingw-w64-x86_64-toolchain git make libtool pkg-config autoconf automake texinfo mingw-w64-x86_64-libusb gcc |
然后要装很久……装好后手动关闭。
14、下载openocd编译文件并执行
1)将香瓜提供的openocd文件夹复制到“D: \GUA_PICO”下
2)打开x64版本的
输入指令(注意是“/”,不是“\”)
cd D:/GUA_PICO/openocd ./openocd.exe |
15、下载picoprobe固件进pico
1)按着pico的BOOTSEL按键,插入USB,松开按键。等待电脑识别pico为一个盘。
2)将picoprobe固件拖拽进pico识别的盘里,会自动关闭,即下载成功。
16、安装Zadig驱动
1)下载地址
https://zadig.akeo.ie/
2)已下好picoprobe固件的pico,连接电脑。
3)
拔插pico的usb,查看驱动是否装好。
这样出现COM口就说明已经装好了。
17、VS debug环境配置
1)在pico-examples目录下右击鼠标, Git Bash Here
2)输入如下指令,会将pico-examples/ide内的文件拷贝到.vscode目录并修改
cp ide/vscode/launch-raspberrypi-swd.json .vscode/launch.json |
3)用文本打开“D: \GUA_PICO\pico-examples\.vscode”路径下的launch.json文件,并改成如下图所示,图后附上修改后的代码
{ // Use IntelliSense to learn about possible attributes. // Hover to view descriptions of existing attributes. // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387 "version": "0.2.0", "configurations": [ { "name": "Cortex Debug", "cwd": "${workspaceRoot}", "executable": "${workspaceRoot}/build/blink/blink.elf", "request": "launch", "type": "cortex-debug", "servertype": "openocd", "device": "Pico2040", "runToMain": true, "configFiles": ["interface/picoprobe.cfg", "target/rp2040.cfg"], "searchDir": ["D:/GUA_PICO/openocd/tcl"], "svdFile": "D:/GUA_PICO/pico-sdk/src/rp2040/hardware_regs/rp2040.svd", } ] } |
注意searchDir是新加的,需要改成自己电脑中的路径。
4)修改Cortex-Debug插件的配置项目
添加如下路径(根据自己openocd.exe所在路径),修改后关闭,记得点保存
{ "cmake.configureEnvironment": { "PICO_SDK_PATH": "D:\\GUA_PICO\\pico-sdk" }, "cmake.generator": "NMake Makefiles", "cmake.configureOnOpen": true,
"cortex-debug.openocdPath":"D:/GUA_PICO/openocd/openocd.exe", "cortex-debug.gdbPath": "arm-none-eabi-gdb", } |
18、下载libusb
1)下载地址
https://libusb.info/
2)复制文件,具体操作如下图
19、下载python27.dll
1、下载并复制“python27.dll”到“C:\Windows\SysWOW64”
2、使用命令行执行:
regsvr32 python27.dll -s |
相关文章:

【RP2040】香瓜树莓派RP2040之搭建开发环境(windows)
本文最后修改时间:2022年08月23日 01:57 一、本节简介 本节以树莓派pico开发板为例,搭建windows下的编译环境。 二、实验平台 1、硬件平台 1)树莓派pico开发板 ①树莓派pico开发板 ②micro usb数据线 2)电脑 2、软件平台 …...

基于springboot线上礼品商城
博主主页:猫头鹰源码 博主简介:Java领域优质创作者、CSDN博客专家、公司架构师、全网粉丝5万、专注Java技术领域和毕业设计项目实战 主要内容:毕业设计(Javaweb项目|小程序等)、简历模板、学习资料、面试题库、技术咨询 文末联系获取 项目介绍…...

开源,微信小程序 美食便签地图(FoodNoteMap)的设计与开发
目录 0 前言 1 美食便签地图简介 2 美食便签地图小程序端开发 2.1技术选型 2.2前端UI设计 2.3主页界面 2.4个人信息界面 2.5 添加美食界面 2.6美食便签界面 2.8 美食好友界面 2.9 美食圈子界面 2.10 子页面-店铺详情界面 2.11 后台数据缓存 2.12 订阅消息通知 2.1…...

kubernetes集群(k8s)之安装部署Calico 网络
目录 安装部署Calico 网络 (一)环境准备 (二)部署docker环境 (三)部署kubernetes集群 (四)部署Calico网络插件 安装部署Calico 网络 (一)环境准备 IP地…...

【C/C++】C++11 Lambda 表达式捕获变量使用技巧
在 C11 中,lambda 表达式可以通过捕获列表来捕获指定的变量。捕获列表是放在 lambda 表达式参数列表之前的一对方括号 [] 中,用来指定 lambda 表达式捕获哪些变量。 捕获列表有以下几种形式: []:不捕获任何变量。[&]&#x…...

大势智慧软硬件技术答疑第八期
1.DasViewer可以使用同一个账号登录多台电脑,然后同时进行格式转换操作吗? 答:可以的 2.在DasViewer里面添加了标注点,能手动修改标注点坐标、手动输入坐标值 吗? 答:目前DasViewer暂不支持手动输入坐标 …...

jvm-jvm与java体系结构
1.JAVA及JVM简介 jvm发展历程 sun classic vm jdk1.4时完全被淘汰 2.虚拟机与JAVA虚拟机 java虚拟机就是二进制字节码的运行环境,负责装载字节码到其内部,解释/编译为对应平台上的机器指令执行,每一条java指令,java虚拟机中都有…...

Three.js 实现材质边缘通道发光效果
相关API的使用: 1. EffectComposer(渲染后处理的通用框架,用于将多个渲染通道(pass)组合在一起创建特定的视觉效果) 2. RenderPass(是用于渲染场景的通道。它将场景和相机作为输入,使用Three.…...

【MFC】10.MFC六大机制:RTTI(运行时类型识别),动态创建机制,窗口切分,子类化-笔记
运行时类信息(RTTI) C: ##是拼接 #是替换成字符串 // RTTI.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。 // #include <iostream> #include <afxwin.h>#ifdef _DEBUG #define new DEBUG_NEW #endifCWinApp th…...

ui设计师个人年终工作总结2020最新范文5篇
ui设计师个人年终工作总结(一) 我于20年x育人x日成为公司的试用员工,安排在技术研发中心担任UI界面设计一职,现将我的工作情况分为三个阶段来总结如下汇报: 一、萌芽阶段 记得初次应聘时,我对公司的认识仅仅局限于行业之一&#x…...

开源数据库Mysql_DBA运维实战 (修改root密码)
MySQL——修改root密码的4种方法 本文以windows为例为大家详细介绍下MySQL修改root密码的4种方法,大家可以可以根据的自己的情况自由选择,希望对大家有所帮助 方法1: 用SET PASSWORD命令 首先登录MySQL。 格式:mysql> set pass…...

javap获取Kotlin方法JNI方法签名
获取Kotlin方法签名和JAVA不一样的地方就是需要使用Kotlin 命令行编译器生成.class文件: 编写一个Kotlin类,添加JNI方法: class TestLib {external fun init(callBack: CallBack)interface CallBack{fun onData(count:Int,data:String)} }在…...

ARM-M0内核MCU,内置24bit ADC,采样率4KSPS,传感器、电子秤、体脂秤专用,国产IC
ARM-M0内核MCU 内置24bit ADC ,采样率4KSPS flash 64KB,SRAM 32KB 适用于传感器,电子秤,体脂秤等等...

【STM32】FreeRTOS消息队列和信号量学习
一、消息队列(queue) 队列是一种用于实现任务与任务之间,任务与中断之间消息交流的机制。 注意:1.数据的操作是FIFO模式。 2.队列需要明确数据的大小和队列的长度。 3.写和读都会出现堵塞。 实验:创建一个消息队列…...

初始C语言(6)——详细讲解表达式求值以及其易错点
系列文章目录 第一章 “C“浒传——初识C语言(1)(更适合初学者体质哦!) 第二章 初始C语言(2)——详细认识分支语句和循环语句以及他们的易错点 第三章 初阶C语言(3)——…...

【数据结构】树和二叉树
一、树的概念及结构 1、树的概念 树 是一种非线性的数据结构,它是由n(n>0)个有限结点组成一个具有层次关系的集合。把它叫做树是因 为它看起来像一棵倒挂的树,也就是说它是根朝上,而叶朝下的。 有一个特殊的结点&a…...

GPIO 配置 和 PINCTRL有啥区别
GPIO(通用输入/输出)和 PINCTRL(引脚控制器)是在嵌入式系统中用于管理和控制硬件引脚的关键概念。它们在硬件层面上起着不同的作用。 GPIO配置: GPIO 是一种通用的硬件接口,用于控制和读取数字信号。每个 …...

GPT法律领域
法律领域 LaWGPT Github: https://github.com/pengxiao-song/LaWGPT 简介:基于中文法律知识的大语言模型。 数据:基于中文裁判文书网公开法律文书数据、司法考试数据等数据集展开,利用Stanford_alpaca、self-instruct方式生成对话问答数据…...

【C++11保姆级教程】Type aliases(类型别名)、alignof and alignas(类型对齐))
文章目录 前言一、类型别名(Type aliases)1.1类型别名是什么?1.2使用方法1.3实际使用1.4优势 二、类型对齐(alignof and alignas)2.1类型对齐的概念2.2类型对齐快速理解2.3具体使用2.4示例代码 总结 前言 在C11标准中…...

地址解析协议-ARP
ARP协议 无论网络层使用何种协议,在实际网络的链路上传输数据帧时,最终必须使用硬件地址 地址解析协议(Address Resolution Protocol,ARP):完成IP地址到MAC地址的映射,每个主机都有一个ARP高速缓…...

Java线程
文章目录 一、Thread类1.1创建线程1.2Thread类中的一些构造方法1.3Thread类中的一些属性1.4线程的终止/打断1.5线程等待1.6获取当前线程的引用1.7休眠当前线程 二、线程的状态 一、Thread类 线程是操作系统的概念,操作系统内核实现了线程这样的机制,系统…...

C语言如何实现DES加密与解密
C语言实现DES加密解密 #include "des.h" //移位表 static Table_size const shiftTable[NumberOfKeys] {1, 1, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 1}; //E扩展表 static Table_size const eTable[des_key_pc2_standard]{32, 1, 2, 3, 4, 5, 4, 5, 6, …...

【笔记】优先队列(priority_queue/set)
目录 大根堆 小根堆 set(小根堆) 大根堆 题目链接:洛谷 P3243 菜肴制作 题目描述 知名美食家小 A 被邀请至 ATM 大酒店,为其品评菜肴。ATM 酒店为小 A 准备了 n 道菜肴,酒店按照为菜肴预估的质量从高到低给予 1 到…...

看看安森美深力科NSI45090JDT4G 是如何点亮汽车内外照明系统解决方案
关于线性恒流调节器(CCR):是一种用于控制电流的稳定输出。它通常由一个功率晶体管和一个参考电流源组成。CCR的工作原理是通过不断调节功率晶体管的导通时间来维持输出电流的恒定。当输出电流超过设定值时,CCR会减少功率晶体管的导…...

Linux进阶之Shell-sed
基本用法: sed 选项 “指令” 文件 常用选项: -e --它告诉sed将下一个参数解释为一个sed指令,只有当命令行上给出多个sed指令时使用 -f --后跟保存了sed指令的文件 -i --直接对内容进行修改,不加 i 时默认只是预…...

前端高频面试题 Day02
面试题 var 和 let const 的区别 var 是 ES5 及之前的语法,let const 是 ES6 语法var 和 let 是变量,可修改;const 是常量,不可修改var 有变量提升,let const 没有var 没有块级作用域,let const 有 &…...

MYSQL完全卸载、安装与账号创建、权限控制
一、卸载mysql CentOS 卸载 MySQL 1. 查看安装情况 使用以下命令查看当前安装mysql情况,查找以前是否装有mysql rpm -qa|grep -i mysql这里显示我安装的 MySQL 服务有有: 2. 停止 mysql 服务、删除之前安装的 mysql 删除命令:rpm -e –n…...

get与post如何拼接url与数据的灵活处理,循环的重要性。
get与post拼接url地址不同: let postData {method: "post",data: {op: "/api/setting/maintenanceperiod?period"this.authorizationCode,loadingConfig: {},data: {period:this.authorizationCode}}}; if(this.editData.id){let postData …...

Remote Sensing,2023 | 基于SBL的分布式毫米波相干雷达成像的高效实现
Remote Sensing,2023 | 基于SBL的分布式毫米波相干雷达成像的高效实现 注1:本文系“无线感知论文速递”系列之一,致力于简洁清晰完整地介绍、解读无线感知领域最新的顶会/顶刊论文(包括但不限于 Nature/Science及其子刊; MobiCom, Sigcom, MobiSys, NSDI…...

Android学习之路(5) UI控件之Button (按钮)与 ImageButton (图像按钮)
本节引言: 今天给大家介绍的Android基本控件中的两个按钮控件,Button普通按钮和ImageButton图像按钮; 其实ImageButton和Button的用法基本类似,至于与图片相关的则和后面ImageView相同,所以本节 只对Button进行讲解&am…...