树莓派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)广泛应用于目标检测和实例分割,是目标…...
7.4.分块查找
一.分块查找的算法思想: 1.实例: 以上述图片的顺序表为例, 该顺序表的数据元素从整体来看是乱序的,但如果把这些数据元素分成一块一块的小区间, 第一个区间[0,1]索引上的数据元素都是小于等于10的, 第二…...
python打卡day49
知识点回顾: 通道注意力模块复习空间注意力模块CBAM的定义 作业:尝试对今天的模型检查参数数目,并用tensorboard查看训练过程 import torch import torch.nn as nn# 定义通道注意力 class ChannelAttention(nn.Module):def __init__(self,…...
rknn优化教程(二)
文章目录 1. 前述2. 三方库的封装2.1 xrepo中的库2.2 xrepo之外的库2.2.1 opencv2.2.2 rknnrt2.2.3 spdlog 3. rknn_engine库 1. 前述 OK,开始写第二篇的内容了。这篇博客主要能写一下: 如何给一些三方库按照xmake方式进行封装,供调用如何按…...
微软PowerBI考试 PL300-选择 Power BI 模型框架【附练习数据】
微软PowerBI考试 PL300-选择 Power BI 模型框架 20 多年来,Microsoft 持续对企业商业智能 (BI) 进行大量投资。 Azure Analysis Services (AAS) 和 SQL Server Analysis Services (SSAS) 基于无数企业使用的成熟的 BI 数据建模技术。 同样的技术也是 Power BI 数据…...
Admin.Net中的消息通信SignalR解释
定义集线器接口 IOnlineUserHub public interface IOnlineUserHub {/// 在线用户列表Task OnlineUserList(OnlineUserList context);/// 强制下线Task ForceOffline(object context);/// 发布站内消息Task PublicNotice(SysNotice context);/// 接收消息Task ReceiveMessage(…...
23-Oracle 23 ai 区块链表(Blockchain Table)
小伙伴有没有在金融强合规的领域中遇见,必须要保持数据不可变,管理员都无法修改和留痕的要求。比如医疗的电子病历中,影像检查检验结果不可篡改行的,药品追溯过程中数据只可插入无法删除的特性需求;登录日志、修改日志…...
Objective-C常用命名规范总结
【OC】常用命名规范总结 文章目录 【OC】常用命名规范总结1.类名(Class Name)2.协议名(Protocol Name)3.方法名(Method Name)4.属性名(Property Name)5.局部变量/实例变量(Local / Instance Variables&…...
Cloudflare 从 Nginx 到 Pingora:性能、效率与安全的全面升级
在互联网的快速发展中,高性能、高效率和高安全性的网络服务成为了各大互联网基础设施提供商的核心追求。Cloudflare 作为全球领先的互联网安全和基础设施公司,近期做出了一个重大技术决策:弃用长期使用的 Nginx,转而采用其内部开发…...
Rapidio门铃消息FIFO溢出机制
关于RapidIO门铃消息FIFO的溢出机制及其与中断抖动的关系,以下是深入解析: 门铃FIFO溢出的本质 在RapidIO系统中,门铃消息FIFO是硬件控制器内部的缓冲区,用于临时存储接收到的门铃消息(Doorbell Message)。…...
【SSH疑难排查】轻松解决新版OpenSSH连接旧服务器的“no matching...“系列算法协商失败问题
【SSH疑难排查】轻松解决新版OpenSSH连接旧服务器的"no matching..."系列算法协商失败问题 摘要: 近期,在使用较新版本的OpenSSH客户端连接老旧SSH服务器时,会遇到 "no matching key exchange method found", "n…...
