当前位置: 首页 > news >正文

树莓派Pico|RP2040|官方文档|在MS Windows上构建“Hello World”及环境配置

9.2. 在MS Windows上构建

在Microsoft Windows 10或Windows 11上安装工具链与其他平台有些不同。然而安装后,RP2040的构建代码基本类似。
 警告
官方不支持在Windows 7或8上使用Raspberry Pi Pico,但在Windows 7或8上可以使其工作。

9.2.1. 安装工具链

如果您正在Microsoft Windows上为Raspberry Pi Pico进行开发,那么可以使用
Windows Pico Installer。
继续从Github (https://github.com/raspberrypi/pico-setupwindows)下载最新版本的安装程序,并运行它。安装向导(参见图15)将指导您安装工具链。
向导完成安装后,它将提示您是否应该显示教程,或者是否应该选择克隆并从Github构建pico-examples存储库。
包括软件:
• Arm GNU Toolchain
• CMake
• Ninja
• Python 3.9
• Git for Windows
• Visual Studio Code
• OpenOCD

9.2.1.1. 开始编写Visual Studio代码

在开始菜单中,在Raspberry Pi Pico SDK 文件夹中寻找Pico - Visual Studio Code快捷方式。的
快捷方式设置所需的环境变量,然后启动Visual Studio Code。
注意
如果您以前安装过Visual Studio Code,我们经常会看到由于插入的随机设置而导致的问题。其他扩展,或由用户,在现有的安装。如果是这种情况,请转到Pico安装程序获取已知问题和解决方案的清单。

9.2.1.2. 打开例子

第一次使用开始菜单快捷方式启动Visual Studio Code时,它将打开pico-examples存储库。
要稍后重新打开示例存储库,可以打开安装在C:\ProgramData\Raspberry Pi \Pico的SDK副本 \pico -examples。

9.2.1.3. 构建示例

当你第一次打开pico-examples项目时,Visual Studio Code会询问你是否要配置它;点击确定
提示继续。(如果你错过了提示,请查找右下角的“铃铛”图标。)然后系统会提示您
选择一个工具包-选择Pico ARM GCC - Pico SDK Toolchain,其中包含GCC ARM -none-eabi条目。如果Pico ARM GCC条目是
不存在,选择“未指定”以使SDK自动检测编译器。
要构建其中一个示例,请单击侧边栏上的“CMake”按钮的树形视图示例项目;展开要构建的项目,然后单击目标名称右侧的小构建图标构建特定的项目。
要构建所有内容,请单击CMake Project Outline视图顶部的“build All Projects”按钮。
注意
您可以在Windows的Pico设置教程中找到有关如何使用Visual Studio Code的更多信息。
重要
如果您在Windows下安装或使用工具链时遇到问题,在Pico安装Windows GitHub库中有可用的故障排除指南。

9.2.2. 可供选择的手动安装

警告
在MS Windows下手动安装工具链比较复杂,不建议使用。
要构建,您需要安装一些额外的工具。
• Arm GNU Toolchain (you need the filename ending with -arm-none-eabi.exe)
• CMake
• Build Tools for Visual Studio 2022
• Python 3.10
• Git
从上面的链接下载每个程序的可执行安装程序,然后仔细按照以下部分将这五个软件包安装到您的Windows计算机上。

9.2.2.1. 安装Arm GNU Toolchain

在安装过程中,您应该勾选该框,当提示这样做时可以将Arm编译器的路径加入系统path。

9.2.2.2. 安装CMake

在安装过程中,当安装程序提示时,将CMake添加到所有用户的系统路径中。

9.2.2.3. 安装Visual Studio 2022的构建工具

当由Visual Studio安装程序的构建工具提示时,您只需要安装c++构建工具。
注意
你必须安装完整的“Windows 10 SDK”包,因为SDK需要在本地构建pioasm和elf2uf2工具。
将它从已安装项目列表中删除将意味着您将无法构建Raspberry Pi Pico二进制文件

9.2.2.4. 安装Python 3.10

在安装过程中,确保它是“为所有用户”安装的,并在提示时将Python 3.10添加到系统PATH
安装程序。您还应该在Python末尾提示时禁用MAX_PATH长度限制
安装。

9.2.2.5. 安装Git

在安装Git时,您应该确保将默认编辑器从vim更改为缺省编辑器,如图21所示。
图21。安装Git
确保勾选复选框以允许从第三方软件使用Git,除非您有充分的理由
否则,在安装Git时,你也应该勾选“按原样签出,按原样提交”,选择“使用Windows”。
“默认控制台窗口”和“启用对伪控制台的实验支持”。

9.2.2.6. 获取SDK和示例

C:\Users\pico\Downloads> git clone https://github.com/raspberrypi/pico-sdk.git --branch master
C:\Users\pico\Downloads> cd pico-sdk
C:\Users\pico\Downloads\pico-sdk> git submodule update --init
C:\Users\pico\Downloads\pico-sdk> cd …
C:\Users\pico\Downloads> git clone https://github.com/raspberrypi/pico-examples.git --branch
master

9.2.2.7. 从命令行构建“Hello World”

通过选择Windows > Visual,从Windows菜单中打开开发人员命令提示符窗口
Studio 2022 > VS 2022的开发者命令提示符
然后设置SDK的路径,如下所示:
C:\Users\pico\Downloads> setx PICO_SDK_PATH “…\pico-sdk”
您现在需要关闭当前的命令提示符窗口并打开第二个开发人员命令提示符
窗口,在继续之前将在其中正确设置此环境变量。
导航到pico-examples文件夹,并按如下方式构建“Hello World”示例:
C:\Users\pico\Downloads> cd pico-examples
C:\Users\pico\Downloads\pico-examples> mkdir build
C:\Users\pico\Downloads\pico-examples> cd build
C:\Users\pico\Downloads\pico-examples\build> cmake -G “NMake Makefiles” …
C:\Users\pico\Downloads\pico-examples\build> nmake
来构建目标。这将产生elf、bin和uf2目标,您可以在hello_world/serial和中找到它们构建目录中的Hello_world /usb目录。UF2二进制文件可以直接拖放到
RP2040板连接到您的计算机使用USB。

9.2.2.8. 从Visual Studio Code构建“Hello World”

现在您已经安装了工具链,您可以安装Visual Studio Code并在该环境中构建您的项目而不是从命令行。
继续下载并安装Visual Studio Code for Windows。安装后打开Developer Command通过选择Windows > Visual Studio 2022 > Developer Command Prompt for VS2022,从Windows菜单中打开提示符窗口
菜单上的。然后输入,
C: >代码
听提示。这将打开Visual Studio Code,并设置所有正确的环境变量,以便工具链正确配置。
警告
如果您通过单击其桌面图标启动Visual Studio Code,或者直接从开始菜单启动构建环境配置不正确。虽然这可以在CMake工具设置中手动完成,
配置Visual Studio Code环境最简单的方法就是通过Developer Command打开它提示窗口,其中已经设置了这些环境变量。
现在我们需要安装CMake Tools扩展。单击左侧工具栏中的Extensions图标(或键入Ctrl +Shift + X),然后搜索“CMake Tools”,点击列表中的条目,然后点击安装按钮。
然后单击界面左侧导航栏底部的齿轮并选择“设置”。然后在设置窗格中单击“扩展”,然后单击“CMake工具”。然后向下滚动到“Cmake”:配置环境”。点击“Add Item”,将PICO_SDK_PATH设置为…\…\pico-sdk,如图22所示。
此外,您需要向下滚动到“Cmake: Generator”,并在框中输入“NMake Makefiles”。
重要
如果你不更改“Cmake: Generator”,Visual Studio将默认为ninja,并且作为GCC构建可能会失败以ninja无法理解的稍微不正确的格式输出依赖信息。
现在关闭设置页面,转到文件菜单,单击“打开文件夹”,导航到pico-examples repo和点击“选择文件夹”。系统将提示您配置项目,参见图23。选择“GCC for arm-none-eabi”
编译器。
点击窗口底部蓝色栏中的“Build”按钮(带有齿轮)。这将创建
运行CMake并构建示例项目,包括“Hello World”。
这将产生elf、bin和uf2目标,您可以在hello_world/serial和hello_world/usb目录中找到它们
在新创建的构建目录中。UF2二进制文件可以直接拖放到RP2040板上
用USB连接到电脑上。

9.2.2.9. 闪烁并运行“Hello World”

使用micro-USB电缆将树莓派Pico连接到树莓派上,确保按住
BOOTSEL按钮强制进入USB大容量存储模式。该板应自动显示为外部驱动器。你现在可以将UF2二进制文件拖放到外部驱动器上。
Raspberry Pi Pico将重新启动,并卸载自己作为外部驱动器,并开始运行闪存代码。
正如我们在第4章中所做的那样,您可以构建Hello World示例,将工作室路由到USB CDC(串行)或UART0在GP0和GP1引脚上。如果您使用USB CDC作为目标输出构建,则不需要安装驱动程序,因为它是一个class-compliant设备。

9.2.2.9.1. UART输出

可选的,如果您想要连接到Raspberry Pi Pico标准UART来查看您需要的输出使用USB到UART串行转换器(例如SparkFun FTDI)将树莓派Pico连接到计算机
基本板,见图24。

相关文章:

树莓派Pico|RP2040|官方文档|在MS Windows上构建“Hello World”及环境配置

9.2. 在MS Windows上构建 在Microsoft Windows 10或Windows 11上安装工具链与其他平台有些不同。然而安装后,RP2040的构建代码基本类似。  警告 官方不支持在Windows 7或8上使用Raspberry Pi Pico,但在Windows 7或8上可以使其工作。 9.2.1. 安装工具…...

全球公链进展| 2023/7/31

一周速览 过去一周,明星项目动态如下: 第114次以太坊核心开发者共识会议:Devnet #8 最早下周推出 Layer2网络Shibarium跨链桥已上线公开测试 Optimism 推出「Law of Chains」v0.1 版本 Sui 通过 SIP#6 ,允许开发人员构建流动…...

Spring源码(三)Spring Bean生命周期

Bean的生命周期就是指:在Spring中,一个Bean是如何生成的,如何销毁的 Bean生命周期流程图 1、生成BeanDefinition Spring启动的时候会进行扫描,会先调用org.springframework.context.annotation.ClassPathScanningCandidateCompo…...

【iOS】Cydia Impactor 错误:file http.hpp; line:37; what: _assert(code == 200)

Cydia Impactor 报错,信息如下 file http.hpp; line:37; what: _assert(code 200)解决方案:Cydia Impactor 已被弃用,切换到sideloadly 即可,亲测成功,并且支持双重验证登录 csdn备份地址 HERE...

3ds MAX绘制茶壶

综合一下之前的内容画个茶壶 长方形,然后转化为可编辑多边形,添加节点并设置圆角,如下图 车削生成一个圆环,其实这一步也可以用一个圆柱体和两个圆角圆柱体解决 效果如下: 茶壶的底座绘制好了 接下来是茶壶的上半边 …...

【element-plus】 table表格每行圆角解决方案 element也通用

系列文章目录 【Vue3ViteTselement-plus】使用tsx实现左侧栏菜单无限层级封装 前言 我们在使用element-plus或element 的table时是否有时UI给到的UI效果是如下面这样的,但是我们翻遍了组件库的文档 调整了很多次样式 发现在 左右侧栏固定的时候 普通的方法是完全…...

【状态估计】基于UKF、AUKF的电力系统负荷存在突变时的三相状态估计研究(Matlab代码实现)

💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️座右铭&a…...

webstorm格式化代码后单引号转成了双引号

webStorm格式化js代码时单引号变成了双引号,问题如下: 格式化前: 格式化后: 解决办法: window: File -> Settings -> Editor -> Code Style -> Javascript; mac: webStorm -> Preference …...

在langchain中使用带简短知识内容的prompt template

简介 langchain中有个比较有意思的prompt template叫做FewShotPromptTemplate。 他是这句话的简写:“Prompt template that contains few shot examples.” 什么意思呢?就是说在Prompt template带了几个比较简单的例子。然后把这些例子发送给LLM&…...

java医院电子病历系统源码:云端SaaS服务 前后端分离模式开发和部署

电子病历系统是什么? 电子病历是指医务人员在医疗活动过程中,使用医疗机构信息系统生成的文字、符号、图表、图形、数据、影像等数字化信息,并能实现存储、管理、传输和重现的医疗记录,是病历的一种记录形式。 医院通过电子病历以电子化方式记录患者就诊的信息&…...

【Golang 接口自动化01】使用标准库net/http发送Get请求

目录 发送Get请求 响应信息 拓展 资料获取方法 发送Get请求 使用Golang发送get请求很容易,我们还是使用http://httpbin.org作为服务端来进行演示。 package mainimport ("bytes""fmt""log""net/http""net/url&qu…...

Excel透视表与python实现

目录 一、Excel透视表 1、源数据 2、数据总分析 3、数据top分析 二、python实现 1、第一张表演示 2、第二张表演示 一、Excel透视表 1、源数据 1)四个类目,每类50条数据 2)数据内容 2、数据总分析 1)选择要分析的字段&…...

二级制部署kubernetes(1.20)

😘作者简介:一名运维工作人员。 👊宣言:人生就是B(birth)和D(death)之间的C(choise),做好每一个选择。 🙏创作不易,动动小…...

云曦暑期学习第二周——文件上传漏洞

1.文件上传 1.1原理 一些web应用程序中允许上传图片、视频、头像和许多其他类型的文件到服务器中。 文件上传漏洞就是利用服务端代码对文件上传路径变量过滤不严格将可执行的文件上传到一个到服务器中 ,再通过URL去访问以执行恶意代码。 1.2为什么存在文件上传漏…...

软件测试右移的意义与关键点

测试右移是将测试延伸到研发阶段之后的阶段,一般在产品发布上线后进行的测试,包括在线测试,在线监控和日志分析,甚至包括α测试、β测。测试右移描述的是软件测试工作重心的转变,而不是某项具体的测试技术。 测试右移的含义 测试…...

VLAN原理(Virtual LAN 虚拟局域网)

VLAN(Virtual LAN 虚拟局域网) 1、广播/广播域 2、广播的危害:增加网络/终端负担,传播病毒, 3、如何控制广播?? ​ 控制广播隔离广播域 ​ 路由器物理隔离广播 ​ 路由器隔离广播缺点&…...

YOLOv8 如何进行目标追踪

检测模型 YOLOv8n 追踪效果 YOLOv8 检测-追踪 分割模型 YOLOv8n-seg 追踪效果 YOLOv8 分割-追踪 关键点模型 YOLOv8n-pose 追踪效果 YOLOv8 检测-追踪 原理解析 目标检测是指在图像或视频中定位并识别出一个或多个目标物体的位置和类别。 目标检测算法通常会输出目标的边界框…...

【暑期每日一练】 day10

目录 选择题 (1) 解析: (2) 解析: (3) 解析: (4) 解析: (5) 解析: 编程题 题一 …...

antd中的Cascader级联选择框怎么清空重置React

项目场景: React项目,使用antd中的Cascader级联选择框 问题描述: 通过其他按钮无法重置选择框中的项 原因分析:(对应解决办法一和二) 1、级联选择框的数据默认是根据options绑定的数组中的value值来进行…...

复现YOLOv5改进最新MPDIoU:有效和准确的边界盒回归的损失,打败G/E/CIoU,效果明显!!!

MPDIoU: A Loss for Efficient and Accurate Bounding Box Regression 论文简介MPDIoU核心设计思路论文方法实验部分加入YOLOv5代码论文地址:https://arxiv.org/pdf/2307.07662.pdf 论文简介 边界盒回归(Bounding box regression, BBR)广泛应用于目标检测和实例分割,是目标…...

华为云AI开发平台ModelArts

华为云ModelArts:重塑AI开发流程的“智能引擎”与“创新加速器”! 在人工智能浪潮席卷全球的2025年,企业拥抱AI的意愿空前高涨,但技术门槛高、流程复杂、资源投入巨大的现实,却让许多创新构想止步于实验室。数据科学家…...

Vue2 第一节_Vue2上手_插值表达式{{}}_访问数据和修改数据_Vue开发者工具

文章目录 1.Vue2上手-如何创建一个Vue实例,进行初始化渲染2. 插值表达式{{}}3. 访问数据和修改数据4. vue响应式5. Vue开发者工具--方便调试 1.Vue2上手-如何创建一个Vue实例,进行初始化渲染 准备容器引包创建Vue实例 new Vue()指定配置项 ->渲染数据 准备一个容器,例如: …...

srs linux

下载编译运行 git clone https:///ossrs/srs.git ./configure --h265on make 编译完成后即可启动SRS # 启动 ./objs/srs -c conf/srs.conf # 查看日志 tail -n 30 -f ./objs/srs.log 开放端口 默认RTMP接收推流端口是1935,SRS管理页面端口是8080,可…...

【android bluetooth 框架分析 04】【bt-framework 层详解 1】【BluetoothProperties介绍】

1. BluetoothProperties介绍 libsysprop/srcs/android/sysprop/BluetoothProperties.sysprop BluetoothProperties.sysprop 是 Android AOSP 中的一种 系统属性定义文件(System Property Definition File),用于声明和管理 Bluetooth 模块相…...

论文浅尝 | 基于判别指令微调生成式大语言模型的知识图谱补全方法(ISWC2024)

笔记整理:刘治强,浙江大学硕士生,研究方向为知识图谱表示学习,大语言模型 论文链接:http://arxiv.org/abs/2407.16127 发表会议:ISWC 2024 1. 动机 传统的知识图谱补全(KGC)模型通过…...

JVM 内存结构 详解

内存结构 运行时数据区: Java虚拟机在运行Java程序过程中管理的内存区域。 程序计数器: ​ 线程私有,程序控制流的指示器,分支、循环、跳转、异常处理、线程恢复等基础功能都依赖这个计数器完成。 ​ 每个线程都有一个程序计数…...

在Mathematica中实现Newton-Raphson迭代的收敛时间算法(一般三次多项式)

考察一般的三次多项式,以r为参数: p[z_, r_] : z^3 (r - 1) z - r; roots[r_] : z /. Solve[p[z, r] 0, z]; 此多项式的根为: 尽管看起来这个多项式是特殊的,其实一般的三次多项式都是可以通过线性变换化为这个形式…...

RSS 2025|从说明书学习复杂机器人操作任务:NUS邵林团队提出全新机器人装配技能学习框架Manual2Skill

视觉语言模型(Vision-Language Models, VLMs),为真实环境中的机器人操作任务提供了极具潜力的解决方案。 尽管 VLMs 取得了显著进展,机器人仍难以胜任复杂的长时程任务(如家具装配),主要受限于人…...

Golang——9、反射和文件操作

反射和文件操作 1、反射1.1、reflect.TypeOf()获取任意值的类型对象1.2、reflect.ValueOf()1.3、结构体反射 2、文件操作2.1、os.Open()打开文件2.2、方式一:使用Read()读取文件2.3、方式二:bufio读取文件2.4、方式三:os.ReadFile读取2.5、写…...

Rust 开发环境搭建

环境搭建 1、开发工具RustRover 或者vs code 2、Cygwin64 安装 https://cygwin.com/install.html 在工具终端执行: rustup toolchain install stable-x86_64-pc-windows-gnu rustup default stable-x86_64-pc-windows-gnu ​ 2、Hello World fn main() { println…...